From b55bdb419bebb9c50397ad4b2a9a8de1bcdc615e Mon Sep 17 00:00:00 2001 From: Jona Harmening Date: Thu, 17 Sep 2026 14:36:18 +0200 Subject: [PATCH] Add DE and JP road shields --- sprites/flavors/black.json | 27 +- sprites/flavors/dark.json | 25 + sprites/flavors/grayscale.json | 27 +- sprites/flavors/light.json | 25 + sprites/flavors/white.json | 27 +- sprites/refill.svg | 31975 +++++++++------- styles/src/base_layers.ts | 42 +- .../basemap/feature/CountryCoder.java | 6 + .../com/protomaps/basemap/locales/DE.java | 29 + .../com/protomaps/basemap/locales/JP.java | 59 + .../basemap/feature/CountryCoderTest.java | 4 + .../com/protomaps/basemap/locales/DETest.java | 41 + .../com/protomaps/basemap/locales/JPTest.java | 64 + 13 files changed, 18443 insertions(+), 13908 deletions(-) create mode 100644 tiles/src/main/java/com/protomaps/basemap/locales/DE.java create mode 100644 tiles/src/main/java/com/protomaps/basemap/locales/JP.java create mode 100644 tiles/src/test/java/com/protomaps/basemap/locales/DETest.java create mode 100644 tiles/src/test/java/com/protomaps/basemap/locales/JPTest.java diff --git a/sprites/flavors/black.json b/sprites/flavors/black.json index 38585a3dd..6605272f4 100644 --- a/sprites/flavors/black.json +++ b/sprites/flavors/black.json @@ -21,6 +21,31 @@ "NL:S-road-2char":"base", "NL:S-road-3char":"base", "NL:S-road-4char":"base", - "NL:S-road-5char":"base" + "NL:S-road-5char":"base", + "BAB-1char":"base", + "BAB-2char":"base", + "BAB-3char":"base", + "BAB-4char":"base", + "BAB-5char":"base", + "DE:national-1char":"base", + "DE:national-2char":"base", + "DE:national-3char":"base", + "DE:national-4char":"base", + "DE:national-5char":"base", + "JP:national-1char":"base", + "JP:national-2char":"base", + "JP:national-3char":"base", + "JP:national-4char":"base", + "JP:national-5char":"base", + "JP:prefectural-1char":"base", + "JP:prefectural-2char":"base", + "JP:prefectural-3char":"base", + "JP:prefectural-4char":"base", + "JP:prefectural-5char":"base", + "JP:E-1char":"base", + "JP:E-2char":"base", + "JP:E-3char":"base", + "JP:E-4char":"base", + "JP:E-5char":"base" } } \ No newline at end of file diff --git a/sprites/flavors/dark.json b/sprites/flavors/dark.json index 212eed4b2..8ec38fd30 100644 --- a/sprites/flavors/dark.json +++ b/sprites/flavors/dark.json @@ -28,6 +28,31 @@ "NL:S-road-3char":"base", "NL:S-road-4char":"base", "NL:S-road-5char":"base", + "BAB-1char":"base", + "BAB-2char":"base", + "BAB-3char":"base", + "BAB-4char":"base", + "BAB-5char":"base", + "DE:national-1char":"base", + "DE:national-2char":"base", + "DE:national-3char":"base", + "DE:national-4char":"base", + "DE:national-5char":"base", + "JP:national-1char":"base", + "JP:national-2char":"base", + "JP:national-3char":"base", + "JP:national-4char":"base", + "JP:national-5char":"base", + "JP:prefectural-1char":"base", + "JP:prefectural-2char":"base", + "JP:prefectural-3char":"base", + "JP:prefectural-4char":"base", + "JP:prefectural-5char":"base", + "JP:E-1char":"base", + "JP:E-2char":"base", + "JP:E-3char":"base", + "JP:E-4char":"base", + "JP:E-5char":"base", "beach":"green", "forest":"green", "marina":"green", diff --git a/sprites/flavors/grayscale.json b/sprites/flavors/grayscale.json index a79c222e7..1ca3b04a8 100644 --- a/sprites/flavors/grayscale.json +++ b/sprites/flavors/grayscale.json @@ -21,6 +21,31 @@ "NL:S-road-2char":"base", "NL:S-road-3char":"base", "NL:S-road-4char":"base", - "NL:S-road-5char":"base" + "NL:S-road-5char":"base", + "BAB-1char":"base", + "BAB-2char":"base", + "BAB-3char":"base", + "BAB-4char":"base", + "BAB-5char":"base", + "DE:national-1char":"base", + "DE:national-2char":"base", + "DE:national-3char":"base", + "DE:national-4char":"base", + "DE:national-5char":"base", + "JP:national-1char":"base", + "JP:national-2char":"base", + "JP:national-3char":"base", + "JP:national-4char":"base", + "JP:national-5char":"base", + "JP:prefectural-1char":"base", + "JP:prefectural-2char":"base", + "JP:prefectural-3char":"base", + "JP:prefectural-4char":"base", + "JP:prefectural-5char":"base", + "JP:E-1char":"base", + "JP:E-2char":"base", + "JP:E-3char":"base", + "JP:E-4char":"base", + "JP:E-5char":"base" } } \ No newline at end of file diff --git a/sprites/flavors/light.json b/sprites/flavors/light.json index 888f71d2c..7e67ed9d3 100644 --- a/sprites/flavors/light.json +++ b/sprites/flavors/light.json @@ -28,6 +28,31 @@ "NL:S-road-3char":"base", "NL:S-road-4char":"base", "NL:S-road-5char":"base", + "BAB-1char":"base", + "BAB-2char":"base", + "BAB-3char":"base", + "BAB-4char":"base", + "BAB-5char":"base", + "DE:national-1char":"base", + "DE:national-2char":"base", + "DE:national-3char":"base", + "DE:national-4char":"base", + "DE:national-5char":"base", + "JP:national-1char":"base", + "JP:national-2char":"base", + "JP:national-3char":"base", + "JP:national-4char":"base", + "JP:national-5char":"base", + "JP:prefectural-1char":"base", + "JP:prefectural-2char":"base", + "JP:prefectural-3char":"base", + "JP:prefectural-4char":"base", + "JP:prefectural-5char":"base", + "JP:E-1char":"base", + "JP:E-2char":"base", + "JP:E-3char":"base", + "JP:E-4char":"base", + "JP:E-5char":"base", "beach":"green", "forest":"green", "marina":"green", diff --git a/sprites/flavors/white.json b/sprites/flavors/white.json index d91237e15..cda87a350 100644 --- a/sprites/flavors/white.json +++ b/sprites/flavors/white.json @@ -21,6 +21,31 @@ "NL:S-road-2char":"base", "NL:S-road-3char":"base", "NL:S-road-4char":"base", - "NL:S-road-5char":"base" + "NL:S-road-5char":"base", + "BAB-1char":"base", + "BAB-2char":"base", + "BAB-3char":"base", + "BAB-4char":"base", + "BAB-5char":"base", + "DE:national-1char":"base", + "DE:national-2char":"base", + "DE:national-3char":"base", + "DE:national-4char":"base", + "DE:national-5char":"base", + "JP:national-1char":"base", + "JP:national-2char":"base", + "JP:national-3char":"base", + "JP:national-4char":"base", + "JP:national-5char":"base", + "JP:prefectural-1char":"base", + "JP:prefectural-2char":"base", + "JP:prefectural-3char":"base", + "JP:prefectural-4char":"base", + "JP:prefectural-5char":"base", + "JP:E-1char":"base", + "JP:E-2char":"base", + "JP:E-3char":"base", + "JP:E-4char":"base", + "JP:E-5char":"base" } } \ No newline at end of file diff --git a/sprites/refill.svg b/sprites/refill.svg index 25d462090..5ff2b4d81 100644 --- a/sprites/refill.svg +++ b/sprites/refill.svg @@ -1,13923 +1,18090 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sdk_solid_shield-5char - - - - - - sdk_solid_shield-4char - - - - - - sdk_solid_shield-3char - - - - - - sdk_solid_shield-2char - - - - - - sdk_solid_shield-1char - - - - - - US:I - - - - - - - - US:US - - - - - US:US - - - - US:US - - - - - - US:US - - - - - - US:US - - - - - - US:US - - - - - - US:I - - - - - - - - US:I - - - - - - - - US:I - - - - - - - - US:I - - - - - - - - sdk_shield-2char - - - - - - - sdk_shield-3char - - - - - - - sdk_shield-4char - - - - - - - sdk_shield-5char - - - - - - - sdk_shield-1char - - - - - - - gene - r - ic shield - - - - - - gene - r - ic shield - - - - - - gene - r - ic shield - - - - - - gene - r - ic shield - - - - - - gene - r - ic shield - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sdk_solid_shield-5char + + + + + + + + + + sdk_solid_shield-4char + + + + + + + + + + sdk_solid_shield-3char + + + + + + + + + + sdk_solid_shield-2char + + + + + + + + + + sdk_solid_shield-1char + + + + + + + + + + US:I + + + + + + + + + + + + US:US + + + + + + + + + US:US + + + + + + + + US:US + + + + + + + + + + US:US + + + + + + + + + + US:US + + + + + + + + + + US:US + + + + + + + + + + US:I + + + + + + + + + + + + US:I + + + + + + + + + + + + US:I + + + + + + + + + + + + US:I + + + + + + + + + + + + sdk_shield-2char + + + + + + + + + + + sdk_shield-3char + + + + + + + + + + + sdk_shield-4char + + + + + + + + + + + sdk_shield-5char + + + + + + + + + + + sdk_shield-1char + + + + + + + + + + + gene + + + r + + + ic shield + + + + + + + + + + gene + + + r + + + ic shield + + + + + + + + + + gene + + + r + + + ic shield + + + + + + + + + + gene + + + r + + + ic shield + + + + + + + + + + gene + + + r + + + ic shield + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + to + + + wnspot XL + + + + + + + + + + to + + + wnspot L + + + + + + + + + + to + + + wnspot M + + + + + + + + + + to + + + wnspot S + + + + + + + + + + to + + + wnspot XS + + + + + + + + + + to + + + wnspot XL + + + r + + + ev + + + + + + + + + + + + + + to + + + wnspot L + + + r + + + ev + + + + + + + + + + + + + + to + + + wnspot M + + + r + + + ev + + + + + + + + + + + + + + to + + + wnspot S + + + r + + + ev + + + + + + + + + + + + + + to + + + wnspot XS + + + r + + + ev + + + + + + + + + + + + + + capital XL + + + + + + + + + + + + + + + u + + + x + + + -t + + + r + + + ansi + + + t + + + -s + + + t + + + op + + + + + + + + + + + + + + + capital L + + + + + + + + + + + + + + + capital M + + + + + + + + + + + + + + + capital S + + + + + + + + + + + + + + + capital XS + + + + + + + + + + + + + + + sdk_c + + + r + + + oss + + + + + + + + + + + + + sdk_hea + + + r + + + t + + + + + + + + + + + + sdk_squa + + + r + + + e + + + + + + + + + + + + sdk_squa + + + r + + + e_st + + + r + + + oked + + + + + + + + + + + + + sdk_ci + + + r + + + cle + + + + + + + + + + + + sdk_ci + + + r + + + cle_st + + + r + + + oked + + + + + + + + + + + + + sdk_t + + + r + + + iangle + + + + + + + + + + + + sdk_t + + + r + + + iangle_st + + + r + + + oked + + + + + + + + + + + + + sdk_star + + + + + + + + + + + + sdk_star_st + + + r + + + oked + + + + + + + + + + + + + sdk_ma + + + r + + + ker + + + + + + + + + + + + sdk_ma + + + r + + + ker_alt1 + + + + + + + + + + + + sdk_ma + + + r + + + ker_st + + + r + + + oked_alt1 + + + + + + + + + + + + + + + + + + + + + closed + + + + + + + + + sdk_ma + + + r + + + ker_st + + + r + + + oked + + + + + + + + + + + + + gene + + + r + + + ic + + + + + + + + + + + gene + + + r + + + ic_ + + + r + + + ev + + + + + + + + + + + + a + + + tt + + + r + + + a + + + c + + + tion + + + + + + + + + + a + + + r + + + r + + + o + + + w + + + + + + + + + + + + in + + + f + + + o + + + r + + + m + + + a + + + tion + + + + + + + + + + + + + pizza + + + + + + + + + + + i + + + c + + + e_c + + + r + + + eam + + + + + + + + + + + hot_dog_joi + + + n + + + t + + + + + + + + + + + bie + + + r + + + ga + + + r + + + t + + + en + + + + + + + + + + + + + + + + d + + + r + + + in + + + k + + + ing_ + + + wa + + + t + + + er + + + + + + + + + + + + d + + + r + + + in + + + k + + + ing_ + + + wa + + + t + + + er_ + + + w + + + ell + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_d + + + r + + + in + + + k + + + ing_ + + + wa + + + t + + + er_no_pump + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_no_pump + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_ + + + pump_au + + + t + + + o + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_d + + + r + + + in + + + k + + + ing + + + _ + + + wa + + + t + + + er_pump_au + + + t + + + o + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_d + + + r + + + in + + + k + + + ing + + + _ + + + wa + + + t + + + er_pump_manual + + + + + + + + + + + + + + + + + wa + + + t + + + er_ + + + w + + + ell_ + + + pump_manual + + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_poi + + + n + + + t + + + + + + + + + + + + + + + wa + + + t + + + e + + + r + + + ing_pla + + + c + + + e + + + + + + + + + + be + + + v + + + e + + + r + + + ages + + + + + + + + + + + + + + + + + + + + + + wine + + + + + + + + + + + + + + wine_shop + + + + + + + + + + bagel_shop + + + + + + + + + + noodle_shop + + + + + + + + + + r + + + amen + + + + + + + + + + + fast_ + + + f + + + ood + + + + + + + + + + + + + + taque + + + r + + + ia + + + + + + + + + + + + + + + + + + + + + + + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + + + + donut + + + + + + + + + + + f + + + o + + + r + + + est + + + + + + + + + + + + + + + + + glacier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hanami + + + + + + + + + + + + + + + + + + + + + sin + + + k + + + hole + + + + + + + + + + + + s + + + t + + + one + + + + + + + + + hot_pot_ + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + + c + + + on + + + f + + + e + + + c + + + tione + + + r + + + y + + + + + + + + + + + + + cheese_shop + + + + + + + + + + b + + + r + + + eakfast + + + + + + + + + + s + + + t + + + ea + + + k + + + house + + + + + + + + + + bbq + + + + + + + + + + + fuel + + + + + + + + + + + + + + t + + + r + + + affic_si + + + g + + + nals + + + + + + + + + + + + + + + + + + + + c + + + ollege + + + + + + + + + + + + + f + + + ootball_stadium + + + + + + + + + + so + + + cc + + + er_stadium + + + + + + + + + + + clothes + + + + + + + + + + + + + + cinema + + + + + + + + + + + + + + + + + + + aqua + + + r + + + ium + + + + + + + + + + + + + + + + + + + + + + + + + + + + ca + + + r + + + ousel + + + + + + + + + + viewpoi + + + n + + + t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + oller_ + + + c + + + oas + + + t + + + er + + + + + + + + + b + + + o + + + wling_alley + + + + + + + + + + gaming + + + + + + + + + + + + + + + + s + + + t + + + o + + + r + + + age_tank + + + + + + + + + + + + + + + + + + + + + + + st + + + r + + + eet_lamp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pot + + + t + + + e + + + r + + + y + + + + + + + + + c + + + omedy_club + + + + + + + + + + + + + + + + + + + + + + + handic + + + r + + + a + + + f + + + t + + + + + + + + + c + + + on + + + c + + + e + + + r + + + t_hall + + + + + + + + + + basketball_stadium + + + + + + + + + + music_ + + + v + + + enue + + + + + + + + + + + the + + + a + + + t + + + r + + + e + + + + + + + + + + + + + + + + + enclosu + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + dam + + + + + + + + + + + + + + + + + + + + + + + + + ba + + + rr + + + ier + + + + + + + + + + + + + + + + + + swing_g + + + a + + + t + + + e + + + + + + + + + + + + + + + + + + + + + + + + g + + + a + + + t + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + y + + + cle_ba + + + rr + + + ier + + + + + + + + + + + + + + + + + + + + + + + + + wildli + + + f + + + e_pa + + + r + + + k + + + + + + + + + + + + + + + + + + + + + + + + + + + lock + + + + + + + + + + + + + + + + + + + + + + + + + ma + + + z + + + e + + + + + + + + + + + + + + + summer_ + + + t + + + oboggan + + + + + + + + + + + + + + + + + t + + + ele + + + c + + + ommunic + + + a + + + tion + + + + + + + + + + + + + + + + empl + + + o + + + yme + + + n + + + t_agen + + + c + + + y + + + + + + + + + + + + + + + + + + pedest + + + r + + + ian + + + + + + + + + + + + + + + + + + + + + + + + + + + + + village_ + + + g + + + r + + + een + + + + + + + + + c + + + a + + + v + + + e + + + + + + + + + + + + + + + + + + + + r + + + eef + + + + + + + + + + + + + + + + galle + + + r + + + y + + + + + + + + + + + + + + + + a + + + r + + + t + + + + + + + + + + + + + + + + + + + + + + + a + + + r + + + ts_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + + + + + + + + + a + + + r + + + t + + + w + + + o + + + r + + + k + + + + + + + + + nig + + + h + + + tli + + + f + + + e + + + + + + + + + + + bake + + + r + + + y + + + + + + + + + + + + + + + + ca + + + f + + + e + + + + + + + + + + + + + t + + + eahouse + + + + + + + + + + + + + + + + chinese_ + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + ca + + + rr + + + ibean_ + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + gast + + + r + + + opub + + + + + + + + + + cupcake_shop + + + + + + + + + + f + + + r + + + ied_chicken_joi + + + n + + + t + + + + + + + + + + ge + + + r + + + man_ + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + soup_pla + + + c + + + e + + + + + + + + + + t + + + ea_ + + + r + + + oom + + + + + + + + + + + wine + + + r + + + y + + + + + + + + + + + + + + + + + + wings_joi + + + n + + + t + + + + + + + + + + + building + + + + + + + + + + + + + + + + + + + + + + fa + + + c + + + t + + + o + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + fa + + + r + + + mland + + + + + + + + + health_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + post_offi + + + c + + + e + + + + + + + + + + + + + + pla + + + c + + + e_of_ + + + w + + + orship + + + + + + + + + + + + + + + + + + + w + + + a + + + y + + + side_sh + + + r + + + ine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hindu + + + + + + + + + + + + + + + + + bar + + + + + + + + + + + + + g + + + a + + + y_bar + + + + + + + + + + lounge + + + + + + + + + + whis + + + k + + + y_bar + + + + + + + + + + + spo + + + r + + + ts_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + + + ame + + + r + + + ican_ + + + f + + + ootball + + + + + + + + + + + + + + + + + c + + + r + + + icket + + + + + + + + + + + + + + + + + golf + + + + + + + + + + + + + + + + + horse_ + + + r + + + iding + + + + + + + + + + + + + + + + gambling + + + + + + + + + + + + + + + + + + + mini + + + a + + + tu + + + r + + + e_golf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + g + + + o + + + v + + + e + + + r + + + nme + + + n + + + t + + + + + + + + + + + + + + + + + + + + + + + + + animal + + + + + + + + + + ma + + + r + + + ina + + + + + + + + + + + + + + + + ha + + + r + + + bor + + + + + + + + + + + + + + + + + + + + e + + + n + + + t + + + r + + + an + + + c + + + e + + + + + + + + + + + + + + + + k + + + a + + + r + + + aoke + + + + + + + + + + + + wheelchair + + + + + + + + + + + + + + + + + + bu + + + r + + + eau_de_change + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + money_t + + + r + + + ans + + + f + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + o + + + py + + + shop + + + + + + + + + + + + + + + + + + + + + + + + + + + plumber + + + + + + + + + + + + + + + + + ga + + + r + + + dener + + + + + + + + + + + + + + + + + + l + + + a + + + w + + + y + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + nota + + + r + + + y + + + + + + + + + + + + + + + + + + + + metal_ + + + c + + + onstru + + + c + + + tion + + + + + + + + + + + + + + + s + + + t + + + onemason + + + + + + + + + + + + + + + + + + + + + + a + + + cc + + + ou + + + n + + + ta + + + n + + + t + + + + + + + + + + + fi + + + r + + + e_ + + + h + + + y + + + d + + + r + + + a + + + n + + + t + + + + + + + + + + + + + + + + + + p + + + o + + + w + + + er_ + + + to + + + w + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + p + + + o + + + w + + + er_ + + + to + + + w + + + er_small + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + li + + + f + + + t + + + g + + + a + + + t + + + e + + + + + + + + + + p + + + o + + + w + + + er_pole + + + + + + + + + + + + + + + + + + + + + + + + + + + + + e + + + n + + + t + + + r + + + an + + + c + + + e_alt1 + + + + + + + + + + + + + + + + vine + + + y + + + a + + + r + + + d + + + + + + + + + + + + + + + + + + + car_ + + + r + + + epair + + + + + + + + + + + + + + car_pa + + + r + + + ts + + + + + + + + + + + + + + + + + + + + bank + + + + + + + + + + + + + a + + + tm + + + + + + ATM + + + + + + + + + log + + + g + + + ing_alt1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + log + + + g + + + ing + + + + + + + + + + + + + + + + + + + + + + + + slaug + + + h + + + t + + + e + + + r + + + house + + + + + + + + + + + + + + + + + + + + + + + + + + + sui + + + t + + + case + + + + + + + + + + ca + + + r + + + pe + + + n + + + t + + + er + + + + + + + + + + + + + + + + + + fune + + + r + + + al_di + + + r + + + e + + + c + + + t + + + ors + + + + + + + + + + + + + + + + + + + + + + c + + + r + + + a + + + f + + + t + + + + + + + + + + + + + + + + + + + + studio + + + + + + + + + + + + + + bi + + + c + + + y + + + cle_ + + + r + + + e + + + n + + + tal + + + + + + + + + + + + + + + + + + + + + + + bi + + + c + + + y + + + cle + + + + + + + + + + + + + + + + books + + + + + + + + + + + + came + + + r + + + a_s + + + t + + + o + + + r + + + e + + + + + + + + + + + car + + + + + + + + + + car_sha + + + r + + + ing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + onsulting + + + + + + + + + + depa + + + r + + + tme + + + n + + + t_s + + + t + + + o + + + r + + + e + + + + + + + + + + + cha + + + r + + + g + + + ing_st + + + a + + + tion + + + + + + + + + + + + + + + + + + pa + + + r + + + k + + + ing + + + + + + + + + + + bi + + + c + + + y + + + cle_pa + + + r + + + k + + + ing + + + + + + + + + + + + + + + + + taxi + + + + + + + + + + + + + + + + + + + + ele + + + c + + + t + + + r + + + onics + + + + + + + + + + + + + + + + + + + + + + + + tax_advisor + + + + + + + + + fa + + + r + + + mers_ma + + + r + + + ket + + + + + + + + + + fish_ma + + + r + + + ket + + + + + + + + + + f + + + ood_ + + + c + + + ou + + + r + + + t + + + + + + + + + + + supe + + + r + + + ma + + + r + + + ket + + + + + + + + + + + + + + + + + + liquor + + + + + + + + + + + + + + + fu + + + r + + + nitu + + + r + + + e_s + + + t + + + o + + + r + + + e + + + + + + + + + + + + + + + + + swimming_pool + + + + + + + + + + + + + + + + + + + + + stadium + + + + + + + + + + + + + + + + + + + t + + + r + + + ack + + + + + + + + + + + t + + + ennis + + + + + + + + + + + + + s + + + k + + + i + + + + + + + + + + + + + + + s + + + k + + + i_jumping + + + + + + + + + + + + + + + + s + + + k + + + i_ + + + r + + + e + + + n + + + tal + + + + + + + + + + + + + + + + + + + + s + + + k + + + i_school + + + + + + + + + + + + + + + + + + + + + + + + + + + f + + + ou + + + n + + + tain + + + + + + + + + + + + + + + + + + pa + + + r + + + k + + + + + + + + + + pa + + + r + + + k + + + + + + + + + + + + + + + + + + + ch + + + r + + + istian + + + + + + + + + + sushi_ + + + r + + + estau + + + r + + + a + + + n + + + t + + + + + + + + + + + flo + + + r + + + ist + + + + + + + + + + + deli + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + se + + + r + + + vi + + + c + + + e_a + + + r + + + ea + + + + + + + + + + + + + + + g + + + i + + + f + + + t + + + + + + + + + + his + + + t + + + o + + + r + + + ical + + + + + + + + + + + + museum + + + + + + + + + + + + + + + + pool_hall + + + + + + + + + + + theme_pa + + + r + + + k + + + + + + + + + + + + + + + + + + + + + + + + ma + + + r + + + ketpla + + + c + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + z + + + oo + + + + + + + + + + + + + + + + b + + + r + + + idge + + + + + + + + + + + + + + t + + + oilets + + + + + + + + + + + + + + pa + + + r + + + k + + + ing_ga + + + r + + + age + + + + + + + + + + + + + + + r + + + oadblock + + + + + + + + + + + + one + + + w + + + a + + + y + + + + + + + + + + + + + + one + + + w + + + a + + + y + + + - + + + r + + + e + + + v + + + erse + + + + + + + + + + + + + cliff + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + apid + + + + + + + + + + + + + + + + + + + e + + + g + + + r + + + ess + + + + + + + + + + + + + + + + + + + put_in + + + + + + + + + + + + + + + + + + + + + + + + + put_in_e + + + g + + + r + + + ess + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + u + + + r + + + ban + + + + + + + + + + + + + + + haza + + + r + + + d + + + + + + + + + mo + + + t + + + o + + + r + + + c + + + y + + + cle_pa + + + r + + + k + + + ing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bolla + + + r + + + d + + + + + + + + + + + + + + + + + + + + + + mo + + + t + + + o + + + r + + + w + + + a + + + y_jun + + + c + + + tion + + + + + + + + + + camp_si + + + t + + + e + + + + + + + + + + + + + buddhist + + + + + + + + + + c + + + eme + + + t + + + e + + + r + + + y + + + + + + + + + + + + + + gr + + + a + + + v + + + e_ + + + y + + + a + + + r + + + d_ch + + + r + + + istian + + + + + + + + + + + + + + + gr + + + a + + + v + + + e_ + + + y + + + a + + + r + + + d_gene + + + r + + + ic + + + + + + + + + + + + + + + gr + + + a + + + v + + + e_ + + + y + + + a + + + r + + + d_jewish + + + + + + + + + + + + + + + + + gr + + + a + + + v + + + e_ + + + y + + + a + + + r + + + d_muslim + + + + + + + + + + + + + + + shi + + + n + + + t + + + oist + + + + + + + + + + + + + + + + + si + + + k + + + hist + + + + + + + + + + + + + + + + + + + + + + + + + + + + taoist + + + + + + + + + + + + + + + + + + + + + + + + + w + + + a + + + y + + + side_c + + + r + + + oss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + eli + + + g + + + ion + + + + + + + + + fa + + + r + + + m + + + + + + + + + + + + + + + + + + + landuse + + + + + + + + + + + + + + + + + + + + n + + + a + + + tu + + + r + + + al + + + + + + + + + + + + + + + + + pa + + + r + + + k_alt1 + + + + + + + + + + + + + + w + + + a + + + r + + + ehouse + + + + + + + + + + + + + + + + + + + + + alpine_hut + + + + + + + + + + + + + + + + + + + + + + + + guest_house + + + + + + + + + + + + + + + + + + + + + + + hu + + + n + + + ting_stand + + + + + + + + + + + + + + + + pla + + + c + + + e_squa + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chalet + + + + + + + + + + + + + + + + + + + + + + + + + + + + wilde + + + r + + + ness_hut + + + + + + + + + + + + + + + + + + p + + + ylon + + + + + + + + + + + + + + + + + + + + + + r + + + efugee_camp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + eso + + + r + + + t + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + w + + + o + + + r + + + kshop + + + + + + + + + + + + + + + + + + + + li + + + f + + + e_ + + + r + + + ing + + + + + + + + + + + + + + + + + + + + + + + + sn + + + o + + + w_cannon + + + + + + + + + + + + + + + + + + + + + + + sn + + + o + + + w_ + + + f + + + en + + + c + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + b + + + r + + + ea + + + k + + + wa + + + t + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + g + + + r + + + o + + + yne + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + windmill + + + + + + + + + home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mead + + + o + + + w + + + + + + + + + + ga + + + r + + + den + + + + + + + + + + + + + + beach + + + + + + + + + + + + + + + + beach_ + + + r + + + eso + + + r + + + t + + + + + + + + + + + + + + + + nig + + + h + + + t + + + club + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + + + elephone + + + + + + + + + + + + + + + w + + + as + + + t + + + e_basket + + + + + + + + + + + + + + + bucket + + + + + + + + + + + + + + + c + + + ommunic + + + a + + + tion_ + + + t + + + o + + + w + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + gene + + + rat + + + or_nuclear + + + + + + + + + + + + + + + gene + + + rat + + + or_solar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gene + + + rat + + + or_wind + + + + + + + + + + + + + + + + + + c + + + ommunic + + + a + + + tions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + li + + + f + + + egua + + + r + + + d_ + + + to + + + w + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + + + o + + + ff + + + sho + + + r + + + e_pl + + + a + + + t + + + f + + + o + + + r + + + m + + + + + + + + + + + + + + + + + + + + + + + + pet + + + r + + + oleum_ + + + w + + + ell + + + + + + + + + + + + + + + + + + + petting_ + + + z + + + oo + + + + + + + + + + + + + + + + + r + + + est_a + + + r + + + ea + + + + + + + + + + + + + + + + + + + + + + + t + + + oll_booth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + w + + + as + + + t + + + e_disposal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + g + + + r + + + oup_home + + + + + + + + + + + + + + + mast + + + + + + + + + + + + + + + + + + + + + + + + + + + soup_ + + + k + + + i + + + t + + + chen + + + + + + + + + + + + + + + + + + + + + + t + + + r + + + ail_ + + + r + + + iding_st + + + a + + + tion + + + + + + + + + + + + + + + + + + + + + + dai + + + r + + + y_ + + + k + + + i + + + t + + + chen + + + + + + + + + + + + + + + + + + + f + + + oo + + + t + + + w + + + a + + + y + + + + + + + + + + + + + + + + + + + + + + + + + w + + + al + + + k + + + ing_jun + + + c + + + tion + + + + + + + + + + bunker + + + + + + + + + + + + + offi + + + c + + + e + + + + + + + + + + + + + + + + + + + + school + + + + + + + + + + + + + + + + + + + + + + baseball + + + + + + + + + + + + + basketball + + + + + + + + + + + + + + + golf_ + + + c + + + ourse + + + + + + + + + + + + + + + hockey_field + + + + + + + + + + s + + + k + + + a + + + t + + + e_pa + + + r + + + k + + + + + + + + + + s + + + k + + + a + + + ting_ + + + r + + + ink + + + + + + + + + + + so + + + cc + + + er + + + + + + + + + + + + + + + + v + + + olleyball_ + + + c + + + ou + + + r + + + t + + + + + + + + + + + + + + + + + + + + + a + + + via + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + land + + + + + + + + + + + + + + + + + saddle + + + + + + + + + + sp + + + r + + + ing + + + + + + + + + + + + + + lig + + + h + + + thouse + + + + + + + + + + + + + + + peak + + + + + + + + + + + + + + + + + + + + + + + + + + + + bo + + + a + + + t_s + + + t + + + o + + + r + + + age + + + + + + + + + b + + + a + + + ttlefield + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_pa + + + r + + + k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er_slide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + scrub + + + + + + + + + t + + + r + + + ailhead + + + + + + + + + + + + + + + + + + + ou + + + t + + + door + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + - + + + do_and_se + + + e + + + , + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + - + + + a + + + tt + + + r + + + a + + + c + + + tion + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + - + + + e + + + a + + + t_and_d + + + r + + + ink + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + - + + + educ + + + a + + + tion_and_ + + + r + + + eli + + + g + + + ion + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + -health + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + -mobili + + + t + + + y + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -namespa + + + c + + + e + + + - + + + other + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -add + + + r + + + essing + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + - + + + civic + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + - + + + d + + + r + + + ink + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -fun + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -indust + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -money + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -n + + + a + + + tu + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + - + + + r + + + eli + + + g + + + ion + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -se + + + r + + + vi + + + c + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -shop + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -sleep + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + a + + + t + + + ego + + + r + + + y + + + -p + + + r + + + edic + + + a + + + t + + + e + + + -t + + + r + + + anspo + + + r + + + t + + + + + + + + + scuba_diving + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gas_canis + + + t + + + er + + + + + + + + + + + + + + + + + + + + r + + + ock + + + + + + + + + t + + + eles + + + c + + + ope + + + + + + + + + + + + + + + + + + bo + + + a + + + t_ + + + r + + + e + + + n + + + tal + + + + + + + + + + + + + + + + + allotme + + + n + + + ts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + etaining_ + + + w + + + all + + + + + + + + + r + + + ec + + + r + + + e + + + a + + + tion_t + + + r + + + ack + + + + + + + + + + + wa + + + t + + + er_ + + + t + + + o + + + w + + + er + + + + + + + + + + + + + + + + mo + + + t + + + o + + + r + + + c + + + y + + + cle + + + + + + + + + + + + + + + + + + + + + + + picnic_si + + + t + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + picnic_table + + + + + + + + + + + + + + + + + + r + + + anger_st + + + a + + + tion + + + + + + + + + + + + + + + + + + + + + + + + bbq + + + + + + + + + + + + + + + + + + + wa + + + t + + + e + + + r + + + fall + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dog_pa + + + r + + + k + + + + + + + + + + + + + + + + + fi + + + r + + + epit + + + + + + + + + + + + + + + + + + + + swimming_a + + + r + + + ea + + + + + + + + + + + + + + + + + + + + + fishing + + + + + + + + + + + + + + + + + + + + ca + + + r + + + a + + + v + + + an_si + + + t + + + e + + + + + + + + + + + + + + + + + + + + sh + + + o + + + w + + + er + + + + + + + + + + + + + + + + + + + + ga + + + r + + + den_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + + w + + + etland + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + er + + + + + + + + + + + + + + + + + + + + + + + + + + + wa + + + t + + + e + + + r + + + mill + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + assis + + + t + + + ed_living + + + + + + + + + + v + + + olcano + + + + + + + + + + + + adult_boutique + + + + + + + + + + a + + + n + + + tique_shop + + + + + + + + + + a + + + r + + + ts_c + + + r + + + a + + + f + + + ts + + + + + + + + + + st + + + a + + + tione + + + r + + + y + + + + + + + + + + + + + + + + t + + + r + + + a + + + v + + + el_agen + + + c + + + y + + + + + + + + + + + + + + + + + + + + + su + + + r + + + f_shop + + + + + + + + + + + c + + + o + + + n + + + v + + + enien + + + c + + + e + + + + + + + + + + + + + + + + c + + + osmetics_shop + + + + + + + + + + + d + + + r + + + y_cleaning + + + + + + + + + + + + beau + + + t + + + y + + + + + + + + + + + + + + + c + + + osmetics + + + + + + + + + + + + + + + + + pe + + + r + + + fume + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + + + childca + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + child + + + r + + + ens_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + + + + + + + r + + + esea + + + r + + + ch + + + + + + + + + + pha + + + r + + + ma + + + c + + + y + + + + + + + + + + + + + + + + + + + + + + t + + + r + + + ade + + + + + + + + + + bu + + + t + + + cher + + + + + + + + + + + + + sushi + + + + + + + + + + + + + + + + + + + + g + + + r + + + een + + + g + + + r + + + o + + + c + + + er + + + + + + + + + + + + + + + + + + + sea + + + f + + + ood + + + + + + + + + + + + + + + + + + + + + + c + + + o + + + ff + + + ee + + + + + + + + + + + + + + t + + + ea + + + + + + + + + + + + + + + + + + + + + + + + + + + f + + + ood_bank + + + + + + + + + ga + + + r + + + den_ + + + c + + + e + + + n + + + t + + + er + + + + + + + + + + + fitness + + + + + + + + + + + + + + + ha + + + r + + + d + + + w + + + a + + + r + + + e + + + + + + + + + + + + + minesha + + + f + + + t + + + + + + + + + + + + + + hob + + + b + + + y_shop + + + + + + + + + + hu + + + n + + + ting_supply + + + + + + + + + + + + + + + IT + + + + + + + + + + je + + + w + + + el + + + r + + + y + + + + + + + + + + + + + + + + laund + + + r + + + y + + + + + + + + + + + + ma + + + r + + + ijuana_dispensa + + + r + + + y + + + + + + + + + + v + + + a + + + r + + + ie + + + t + + + y_s + + + t + + + o + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + r + + + etail + + + + + + + + + + + + + + + + shoemaker + + + + + + + + + + + + + + mis + + + c + + + ellaneous_shop + + + + + + + + + + + mobile_phone + + + + + + + + + + + + + + + + + pl + + + a + + + y + + + g + + + r + + + ound + + + + + + + + + + + + + + + + + + + + + + + + + + + sc + + + r + + + ee + + + + + + + + + + + + + + + + + + + + post_b + + + o + + + x + + + + + + + + + + + + + + + + + + + + dune + + + + + + + + + b + + + r + + + idal_shop + + + + + + + + + + + + + + + + + + + + financial + + + + + + + + + + music + + + + + + + + - - + + + + + nail_salon + + + + - - + + + + + + ne + + + w + + + spaper + + + + + + + + + + + + + - - + + + + + + c + + + omme + + + r + + + cial + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - to - wnspot XL - - - - - - to - wnspot L - - - - - - to - wnspot M - - - - - - to - wnspot S - - - - - - to - wnspot XS - - - - - - to - wnspot XL - r - ev - - - - - - - - - - to - wnspot L - r - ev - - - - - - - - - - to - wnspot M - r - ev - - - - - - - - - - to - wnspot S - r - ev - - - - - - - - - - to - wnspot XS - r - ev - - - - - - - - - - capital XL - - - - - - - - - - - u - x - -t - r - ansi - t - -s - t - op - - - - - - - - - - - capital L - - - - - - - - - - - capital M - - - - - - - - - - - capital S - - - - - - - - - - - capital XS - - - - - - - - - - - sdk_c - r - oss - - - - - - - - - sdk_hea - r - t - - - - - - - - sdk_squa - r - e - - - - - - - - sdk_squa - r - e_st - r - oked - - - - - - - - - sdk_ci - r - cle - - - - - - - - sdk_ci - r - cle_st - r - oked - - - - - - - - - sdk_t - r - iangle - - - - - - - - sdk_t - r - iangle_st - r - oked - - - - - - - - - sdk_star - - - - - - - - sdk_star_st - r - oked - - - - - - - - - sdk_ma - r - ker - - - - - - - - sdk_ma - r - ker_alt1 - - - - - - - - sdk_ma - r - ker_st - r - oked_alt1 - - - - - - - - - - - - - - - - - closed - - - - - sdk_ma - r - ker_st - r - oked - - - - - - - - - gene - r - ic - - - - - - - gene - r - ic_ - r - ev - - - - - - - - a - tt - r - a - c - tion - - - - - - a - r - r - o - w - - - - - - - - in - f - o - r - m - a - tion - - - - - - - - - pizza - - - - - - - i - c - e_c - r - eam - - - - - - - hot_dog_joi - n - t - - - - - - - bie - r - ga - r - t - en - - - - - - - - - - - - d - r - in - k - ing_ - wa - t - er - - - - - - - - d - r - in - k - ing_ - wa - t - er_ - w - ell - - - - - - - - - - - - - wa - t - er_ - w - ell_d - r - in - k - ing_ - wa - t - er_no_pump - - - - - - - - - - - - - - - - - - - - - - - - - - wa - t - er_ - w - ell_no_pump - - - - - - - - - - - - - - - - - - - - - - - - - - wa - t - er_ - w - ell_ - pump_au - t - o - - - - - - - - - - - - - - - - wa - t - er_ - w - ell_d - r - in - k - ing - _ - wa - t - er_pump_au - t - o - - - - - - - - - - - - - - - - wa - t - er_ - w - ell_d - r - in - k - ing - _ - wa - t - er_pump_manual - - - - - - - - - - - - - wa - t - er_ - w - ell_ - pump_manual - - - - - - - - - - - - - - - - - - - - wa - t - er_poi - n - t - - - - - - - - - - - wa - t - e - r - ing_pla - c - e - - - - - - be - v - e - r - ages - - - - - - - - - - - - - - - - - - wine - - - - - - - - - - wine_shop - - - - - - bagel_shop - - - - - - noodle_shop - - - - - - r - amen - - - - - - - fast_ - f - ood - - - - - - - - - - taque - r - ia - - - - - - - - - - - - - - - - - - - - - r - estau - r - a - n - t - - - - - - - - - donut - - - - - - - f - o - r - est - - - - - - - - - - - - - glacier - - - - - - - - - - - - - - - - - - - - - - - - - - - - - hanami - - - - - - - - - - - - - - - - - sin - k - hole - - - - - - - - s - t - one - - - - - hot_pot_ - r - estau - r - a - n - t - - - - - - - c - on - f - e - c - tione - r - y - - - - - - - - - cheese_shop - - - - - - b - r - eakfast - - - - - - s - t - ea - k - house - - - - - - bbq - - - - - - - fuel - - - - - - - - - - t - r - affic_si - g - nals - - - - - - - - - - - - - - - - c - ollege - - - - - - - - - f - ootball_stadium - - - - - - so - cc - er_stadium - - - - - - - clothes - - - - - - - - - - cinema - - - - - - - - - - - - - - - aqua - r - ium - - - - - - - - - - - - - - - - - - - - - - - - ca - r - ousel - - - - - - viewpoi - n - t - - - - - - - - - - - - - - - - - - - - - - - - - r - oller_ - c - oas - t - er - - - - - b - o - wling_alley - - - - - - gaming - - - - - - - - - - - - s - t - o - r - age_tank - - - - - - - - - - - - - - - - - - - st - r - eet_lamp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pot - t - e - r - y - - - - - c - omedy_club - - - - - - - - - - - - - - - - - - - handic - r - a - f - t - - - - - c - on - c - e - r - t_hall - - - - - - basketball_stadium - - - - - - music_ - v - enue - - - - - - - the - a - t - r - e - - - - - - - - - - - - - enclosu - r - e - - - - - - - - - - - - - - - - - - dam - - - - - - - - - - - - - - - - - - - - - ba - rr - ier - - - - - - - - - - - - - - swing_g - a - t - e - - - - - - - - - - - - - - - - - - - - g - a - t - e - - - - - - - - - - - - - - - - - - - - - - - - - c - y - cle_ba - rr - ier - - - - - - - - - - - - - - - - - - + + + + + + shop + + + + + + + + + + + + + + t + + + y + + + r + + + es + + + + + + + + + + + + + + + + + hifi + + + + + + + + + + + + + + musical_instrume + + + n + + + t + + + + + + + + + + + + + + + + + + + ne + + + w + + + sage + + + n + + + t + + + + + + + + + + + + + + + + + + + + + + + shoes + + + + + + + + + + + + + + + + + + + + + + + t + + + oba + + + cc + + + o + + + + + + + + + + + + + bag + + + + + + + + + + + + + + + + + + optician + + + + + + + + + + + + + + + blood_bank + + + + + + + + + + + + + defib + + + r + + + ill + + + a + + + t + + + or + + + + + + + + + + + + + + + + + + + + hea + + + r + + + t + + + + + + + + + + + child + + + r + + + ens_hospital + - - wildli - f - e_pa - r - k - - - - + + + + - - + + - - - - - - - - - - - - - - lock - - - - - - - - - - - - - - - - - - - - - ma - z - e - - - - - - - - - - - summer_ - t - oboggan - - - - - - - - - - - - - t - ele - c - ommunic - a - tion - - - - - - - - - - - - empl - o - yme - n - t_agen - c - y - - - - - - - - - - - - - - pedest - r - ian - - - - - - - - - - - - - - - - - - - - - - - - - village_ - g - r - een - - - - - c - a - v - e - - - - - - - - - - - - - - - - r - eef - - - - - - - - - - - - galle - r - y - - - - - - - - - - - - a - r - t - - - - - - - - - - - - - - - - - - - a - r - ts_ - c - e - n - t - r - e - - - - - - - - - - - - - - - - - a - r - t - w - o - r - k - - - - - nig - h - tli - f - e - - - - - - - bake - r - y - - - - - - - - - - - - ca - f - e - - - - - - - - - t - eahouse - - - - - - - - - - - - chinese_ - r - estau - r - a - n - t - - - - - - ca - rr - ibean_ - r - estau - r - a - n - t - - - - - - gast - r - opub - - - - - - cupcake_shop - - - - - - f - r - ied_chicken_joi - n - t - - - - - - ge - r - man_ - r - estau - r - a - n - t - - - - - - soup_pla - c - e - - - - - - t - ea_ - r - oom - - - - - - - wine - r - y - - - - - - - - - - - - - - wings_joi - n - t - - - - - - - building - - - - - - - - - - - - - - - - - - fa - c - t - o - r - y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fa - r - mland - - - - - health_ - c - e - n - t - r - e - - - - - - - - - post_offi - c - e - - - - - - - - - - pla - c - e_of_ - w - orship - - - - - - - - - - - - - - - w - a - y - side_sh - r - ine - - - - - - - - - - - - - - - - - - - - - - - - - - - - hindu - - - - - - - - - - - - - bar - - - - - - - - - g - a - y_bar - - - - - - lounge - - - - - - whis - k - y_bar - - - - - - - spo - r - ts_ - c - e - n - t - r - e - - - - - - - - - - - ame - r - ican_ - f - ootball - - - - - - - - - - - - - c - r - icket - - - - - - - - - - - - - golf - - - - - - - - - - - - - horse_ - r - iding - - - - - - - - - - - - gambling - - - - - - - - - - - - - - - mini - a - tu - r - e_golf - - - - - - - - - - - - - - - - - - - - - - - - - - g - o - v - e - r - nme - n - t - - - - - - - - - - - - - - - - - - - - - animal - - - - - - ma - r - ina - - - - - - - - - - - - ha - r - bor - - - - - - - - - - - - - - - - e - n - t - r - an - c - e - - - - - - - - - - - - k - a - r - aoke - - - - - - - - wheelchair - - - - - - - - - - - - - - bu - r - eau_de_change - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - money_t - r - ans - f - er - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c - o - py - shop - - - - - - - - - - - - - - - - - - - - - - - plumber - - - - - - - - - - - - - ga - r - dener - - - - - - - - - - - - - - l - a - w - y - er - - - - - - - - - - - - - - - - - - - - - - - - nota - r - y - - - - - - - - - - - - - - - - metal_ - c - onstru - c - tion - - - - - - - - - - - s - t - onemason - - - - - - - - - - - - - - - - - - a - cc - ou - n - ta - n - t - - - - - - - fi - r - e_ - h - y - d - r - a - n - t - - - - - - - - - - - - - - p - o - w - er_ - to - w - er - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p - o - w - er_ - to - w - er_small - - - - - - - - - - - - - - - - - - - - - - - - - - - - - li - f - t - g - a - t - e - - - - - - p - o - w - er_pole - - - - - - - - - - - - - - - - - - - - - - - - - e - n - t - r - an - c - e_alt1 - - - - - - - - - - - - vine - y - a - r - d - - - - - - - - - - - - - - - car_ - r - epair - - - - - - - - - - car_pa - r - ts - - - - - - - - - - - - - - - - bank - - - - - - - - - a - tm - - ATM - - - - - - log - g - ing_alt1 - - - - - - - - - - - - - - - - - - - - - - - - log - g - ing - - - - - - - - - - - - - - - - - - - - slaug - h - t - e - r - house - - - - - - - - - - - - - - - - - - - - - - - sui - t - case - - - - - - ca - r - pe - n - t - er - - - - - - - - - - - - - - fune - r - al_di - r - e - c - t - ors - - - - - - - - - - - - - - - - - - c - r - a - f - t - - - - - - - - - - - - - - - - studio - - - - - - - - - - bi - c - y - cle_ - r - e - n - tal - - - - - - - - - - - - - - - - - - - bi - c - y - cle - - - - - - - - - - - - books - - - - - - - - came - r - a_s - t - o - r - e - - - - - - - car - - - - - - car_sha - r - ing - - - - - - - - - - - - - - - - - - - - - - - - - - - - c - onsulting - - - - - - depa - r - tme - n - t_s - t - o - r - e - - - - - - - cha - r - g - ing_st - a - tion - - - - - - - - - - - - - - pa - r - k - ing - - - - - - - bi - c - y - cle_pa - r - k - ing - - - - - - - - - - - - - taxi - - - - - - - - - - - - - - - - ele - c - t - r - onics - - - - - - - - - - - - - - - - - - - - tax_advisor - - - - - fa - r - mers_ma - r - ket - - - - - - fish_ma - r - ket - - - - - - f - ood_ - c - ou - r - t - - - - - - - supe - r - ma - r - ket - - - - - - - - - - - - - - liquor - - - - - - - - - - - fu - r - nitu - r - e_s - t - o - r - e - - - - - - - - - - - - - swimming_pool - - - - - - - - - - - - - - - - - stadium - - - - - - - - - - - - - - - t - r - ack - - - - - - - t - ennis - - - - - - - - - s - k - i - - - - - - - - - - - s - k - i_jumping - - - - - - - - - - - - s - k - i_ - r - e - n - tal - - - - - - - - - - - - - - - - s - k - i_school - - - - - - - - - - - - - - - - - - - - - - - f - ou - n - tain - - - - - - - - - - - - - - pa - r - k - - - - - - pa - r - k - - - - - - - - - - - - - - - ch - r - istian - - - - - - sushi_ - r - estau - r - a - n - t - - - - - - - flo - r - ist - - - - - - - deli - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - se - r - vi - c - e_a - r - ea - - - - - - - - - - - g - i - f - t - - - - - - his - t - o - r - ical - - - - - - - - museum - - - - - - - - - - - - pool_hall - - - - - - - theme_pa - r - k - - - - - - - - - - - - - - - - - - - - ma - r - ketpla - c - e - - - - - - - - - - - - - - - - - - - - - - - - z - oo - - - - - - - - - - - - b - r - idge - - - - - - - - - - t - oilets - - - - - - - - - - pa - r - k - ing_ga - r - age - - - - - - - - - - - r - oadblock - - - - - - - - one - w - a - y - - - - - - - - - - one - w - a - y - - - r - e - v - erse - - - - - - - - - cliff - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r - apid - - - - - - - - - - - - - - - e - g - r - ess - - - - - - - - - - - - - - - put_in - - - - - - - - - - - - - - - - - - - - - put_in_e - g - r - ess - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - u - r - ban - - - - - - - - - - - haza - r - d - - - - - mo - t - o - r - c - y - cle_pa - r - k - ing - - - - - - - - - - - - - - - - - - - - - - - - - - bolla - r - d - - - - - - - - - - - - - - - - - - mo - t - o - r - w - a - y_jun - c - tion - - - - - - camp_si - t - e - - - - - - - - - buddhist - - - - - - c - eme - t - e - r - y - - - - - - - - - - gr - a - v - e_ - y - a - r - d_ch - r - istian - - - - - - - - - - - gr - a - v - e_ - y - a - r - d_gene - r - ic - - - - - - - - - - - gr - a - v - e_ - y - a - r - d_jewish - - - - - - - - - - - - - gr - a - v - e_ - y - a - r - d_muslim - - - - - - - - - - - shi - n - t - oist - - - - - - - - - - - - - si - k - hist - - - - - - - - - - - - - - - - - - - - - - - - taoist - - - - - - - - - - - - - - - - - - - w - a - y - side_c - r - oss - - - - - - - - - - - - - - - - - - - - - - - - - - - - r - eli - g - ion - - - - - fa - r - m - - - - - - - - - - - - - - - landuse - - - - - - - - - - - - - - - - n - a - tu - r - al - - - - - - - - - - - - - pa - r - k_alt1 - - - - - - - - - - w - a - r - ehouse - - - - - - - - - - - - - - - - - alpine_hut - - - - - - - - - - - - - - - - - - - - guest_house - - - - - - - - - - - - - - - - - - - hu - n - ting_stand - - - - - - - - - - - - pla - c - e_squa - r - e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chalet - - - - - - - - - - - - - - - - - - - - - - - - wilde - r - ness_hut - - - - - - - - - - - - - - p - ylon - - - - - - - - - - - - - - - - - - r - efugee_camp - - - - - - - - - - - - - - - - - - - - - - - - - r - eso - r - t - - - - - - - - - - - - - - - - - - - - - - - - - - - w - o - r - kshop - - - - - - - - - - - - - - - - li - f - e_ - r - ing - - - - - - - - - - - - - - - - - - - - sn - o - w_cannon - - - - - - - - - - - - - - - - - - - sn - o - w_ - f - en - c - e - - - - - - - - - - - - - - - - - - - - - - - - b - r - ea - k - wa - t - er - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g - r - o - yne - - - - - - - - - - - - - - - - - - - - - - - - - - - windmill - - - - - home - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mead - o - w - - - - - - ga - r - den - - - - - - - - - - beach - - - - - - - - - - - - beach_ - r - eso - r - t - - - - - - - - - - - - nig - h - t - club - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t - elephone - - - - - - - - - - - w - as - t - e_basket - - - - - - - - - - - bucket - - - - - - - - - - - c - ommunic - a - tion_ - t - o - w - er - - - - - - - - - - - - - - - - - - - - - - - - gene - rat - or_nuclear - - - - - - - - - - - gene - rat - or_solar - - - - - - - - - - - - - - - - - - - - - - - - - gene - rat - or_wind - - - - - - - - - - - - - - c - ommunic - a - tions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - li - f - egua - r - d_ - to - w - er - - - - - - - - - - - - - - - - - - - - - - - - - o - ff - sho - r - e_pl - a - t - f - o - r - m - - - - - - - - - - - - - - - - - - - - pet - r - oleum_ - w - ell - - - - - - - - - - - - - - - petting_ - z - oo - - - - - - - - - - - - - r - est_a - r - ea - - - - - - - - - - - - - - - - - - - t - oll_booth - - - - - - - - - - - - - - - - - - - - - - - - - - - - w - as - t - e_disposal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g - r - oup_home - - - - - - - - - - - mast - - - - - - - - - - - - - - - - - - - - - - - soup_ - k - i - t - chen - - - - - - - - - - - - - - - - - - t - r - ail_ - r - iding_st - a - tion - - - - - - - - - - - - - - - - - - dai - r - y_ - k - i - t - chen - - - - - - - - - - - - - - - f - oo - t - w - a - y - - - - - - - - - - - - - - - - - - - - - w - al - k - ing_jun - c - tion - - - - - - bunker - - - - - - - - - offi - c - e - - - - - - - - - - - - - - - - school - - - - - - - - - - - - - - - - - - baseball - - - - - - - - - basketball - - - - - - - - - - - golf_ - c - ourse - - - - - - - - - - - hockey_field - - - - - - s - k - a - t - e_pa - r - k - - - - - - s - k - a - ting_ - r - ink - - - - - - - so - cc - er - - - - - - - - - - - - v - olleyball_ - c - ou - r - t - - - - - - - - - - - - - - - - - a - via - r - y - - - - - - - - - - - - - - - - - - - land - - - - - - - - - - - - - saddle - - - - - - sp - r - ing - - - - - - - - - - lig - h - thouse - - - - - - - - - - - peak - - - - - - - - - - - - - - - - - - - - - - - - bo - a - t_s - t - o - r - age - - - - - b - a - ttlefield - - - - - - - - - - - - - - - - - wa - t - er_pa - r - k - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - wa - t - er_slide - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - scrub - - - - - t - r - ailhead - - - - - - - - - - - - - - - ou - t - door - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - - - do_and_se - e - , - c - a - t - ego - r - y - -p - r - edic - a - t - e - - - a - tt - r - a - c - tion - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - - - e - a - t_and_d - r - ink - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - - - educ - a - tion_and_ - r - eli - g - ion - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - -health - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - -mobili - t - y - - - - - - - - - - - - - c - a - t - ego - r - y - -namespa - c - e - - - other - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -add - r - essing - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - - - civic - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - - - d - r - ink - - - - - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -fun - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -indust - r - y - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -money - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -n - a - tu - r - e - - - - - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - - - r - eli - g - ion - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -se - r - vi - c - e - - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -shop - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -sleep - - - - - - - - - - - - - - - - - - - - - - - - - - c - a - t - ego - r - y - -p - r - edic - a - t - e - -t - r - anspo - r - t - - - - - scuba_diving - - - - - - - - - - - - - - - - - - - - - - - - - gas_canis - t - er - - - - - - - - - - - - - - - - r - ock - - - - - t - eles - c - ope - - - - - - - - - - - - - - bo - a - t_ - r - e - n - tal - - - - - - - - - - - - - allotme - n - ts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - r - etaining_ - w - all - - - - - r - ec - r - e - a - tion_t - r - ack - - - - - - - wa - t - er_ - t - o - w - er - - - - - - - - - - - - mo - t - o - r - c - y - cle - - - - - - - - - - - - - - - - - - - picnic_si - t - e - - - - - - - - - - - - - - - - - - - - - - - - - - - - picnic_table - - - - - - - - - - - - - - r - anger_st - a - tion - - - - - - - - - - - - - - - - - - - - bbq - - - - - - - - - - - - - - - wa - t - e - r - fall - - - - - - - - - - - - - - - - - - - - - - - - - dog_pa - r - k - - - - - - - - - - - - - fi - r - epit - - - - - - - - - - - - - - - - swimming_a - r - ea - - - - - - - - - - - - - - - - - fishing - - - - - - - - - - - - - - - - ca - r - a - v - an_si - t - e - - - - - - - - - - - - - - - - sh - o - w - er - - - - - - - - - - - - - - - - ga - r - den_ - c - e - n - t - r - e - - - - - - - - - - - - - - - - - - - - - w - etland - - - - - - - - - - - - - - - - - - - wa - t - er - - - - - - - - - - - - - - - - - - - - - - - wa - t - e - r - mill - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - assis - t - ed_living - - - - - - v - olcano - - - - - - - - adult_boutique - - - - - - a - n - tique_shop - - - - - - a - r - ts_c - r - a - f - ts - - - - - - st - a - tione - r - y - - - - - - - - - - - - t - r - a - v - el_agen - c - y - - - - - - - - - - - - - - - su - r - f_shop - - - - - - - c - o - n - v - enien - c - e - - - - - - - - - - - - c - osmetics_shop - - - - - - - d - r - y_cleaning - - - - - - - - beau - t - y - - - - - - - - - - - c - osmetics - - - - - - - - - - - - - pe - r - fume - r - y - - - - - - - - - - - - - - - - - - - - - childca - r - e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - child - r - ens_ - c - e - n - t - r - e - - - - - - - - - - - - - - - r - esea - r - ch - - - - - - pha - r - ma - c - y - - - - - - - - - - - - - - - - - - t - r - ade - - - - - - bu - t - cher - - - - - - - - - sushi - - - - - - - - - - - - - - - - g - r - een - g - r - o - c - er - - - - - - - - - - - - - - - sea - f - ood - - - - - - - - - - - - - - - - - - c - o - ff - ee - - - - - - - - - - t - ea - - - - - - - - - - - - - - - - - - - - - - - f - ood_bank - - - - - ga - r - den_ - c - e - n - t - er - - - - - - - fitness - - - - - - - - - - - ha - r - d - w - a - r - e - - - - - - - - - minesha - f - t - - - - - - - - - - hob - b - y_shop - - - - - - hu - n - ting_supply - - - - - - - - - - - IT - - - - - - je - w - el - r - y - - - - - - - - - - - - laund - r - y - - - - - - - - ma - r - ijuana_dispensa - r - y - - - - - - v - a - r - ie - t - y_s - t - o - r - e - - - - - - - - - - - - - - - - - - - - r - etail - - - - - - - - - - - - shoemaker - - - - - - - - - - mis - c - ellaneous_shop - - - - - - - mobile_phone - - - - - - - - - - - - - pl - a - y - g - r - ound - - - - - - - - - - - - - - - - - - - - - - - sc - r - ee - - - - - - - - - - - - - - - - post_b - o - x - - - - - - - - - - - - - - - - dune - - - - - b - r - idal_shop - - - - - - - - - - - - - - - - financial - - - - - - music - - - - - - - - - - nail_salon - - - - - - - ne - w - spaper - - - - - - - - - - - - - - - - c - omme - r - cial - - - - - - - - - - - - - - - - - - shop - - - - - - - - - - t - y - r - es - - - - - - - - - - - - - hifi - - - - - - - - - - musical_instrume - n - t - - - - - - - - - - - - - - - ne - w - sage - n - t - - - - - - - - - - - - - - - - - - - shoes - - - - - - - - - - - - - - - - - - - t - oba - cc - o - - - - - - - - - bag - - - - - - - - - - - - - - optician - - - - - - - - - - - blood_bank - - - - - - - - - defib - r - ill - a - t - or - - - - - - - - - - - - - - - - hea - r - t - - - - - - - child - r - ens_hospital - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - the - r - apist - - - - - - - - - - - - - - - ambul - a - t - o - r - y_ca - r - e - - - - - - - - - - - - - - - - - - - - - midwi - f - e - - - - - - - - - - - - - - - - - - - - bi - c - y - cle_ - r - epair_st - a - tion - - - - - - pet - - - - - - - pho - t - o - g - r - aphic_ - labo - rat - o - r - y - - - - - - - - pho - t - o - g - r - aher - - - - - - - - - - - - est - a - t - e_age - n - t - - - - - - - r - e - c - o - r - d_shop - - - - - - - r - e - c - y - cling - - - - - - - - - - - - danger - - - - - - - - - - - - - - - - - - - eme - r - gen - c - y_phone - - - - - - - - - - - - p - r - ison - - - - - - - - - - - - - - r - eside - n - tial_ - c - ommuni - t - y - - - - - - - - - - - - - - shel - t - er - - - - - - - to - wn_hall - - - - - - - - - - - - - - - - - - - bo - r - der_ - c - o - n - t - r - ol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c - ommuni - t - y_ - c - e - n - t - r - e - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - social_facili - t - y - - - - - - - - - - - - - - - - - - - - - - - - - - - - ac - r - a - - - - - - - - - - - - - - - - - ac - r - a_alt1 - - - - - - - - - - - - - - - - - - - - - - - ngo - - - - - - - - - - - - - - - - - - - o - xfam - - - - - - - - - - plaque - - - - - - - - - - - - - - obelisk - - - - - - - - - - - milita - r - y - - - - - - - - - - - - - - - - - - - polling_pla - c - e - - - - - - associ - a - tion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ci - t - y_ - w - all - - - - - - - - - - - - - - - - c - ommon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - out - r - each - - - - - - - - - - - - - - - - political_pa - r - t - y - - - - - - hai - r - d - r - esser - - - - - - - - - - - - - - - smoke_shop - - - - - - spa_massage - - - - - - - spo - r - ts - - - - - - - - - - - - - - - - - - - ele - c - t - r - ician - - - - - - tailor - - - - - - - - - tanning_salon - - - - - - t - a - t - t - oo_pa - r - lor - - - - - - - - - - - - - - d - r - essmaker - - - - - - toy - s - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a - r - chi - t - e - c - t - - - - - - ai - r - po - r - t - - - - - - - f - e - r - r - y - - - - - - - - - - - bus_st - a - tion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - h - v - ac - - - - - - ho - t - el - - - - - - - - - - - - - - - lig - h - t_ - r - ail - - - - - - - - - - - - - - - - - - - - - - - - - s - a - wmill - - - - - - pier - - - - - - - - - - - - - - car_ - r - e - n - tal - - - - - - - - r - est_a - r - ea - - - - - - - bench - - - - - - - - - - dot whi - t - e - - - - - - - - dot black - - - - - - - indust - r - y - - - - - - - - - - - - ruin - - - - - - - - - - building_alt1 - - - - - - - - - - - r - oad - - - - - - f - o - r - d - - - - - - r - ail_met - r - o - - - - - - - - - - - - - - car_ - w - ash - - - - - - - - - - - su - b - w - a - y_e - n - t - r - an - c - e - - - - - - - - ae - r - ial - w - a - y - - - - - - - - - - - - - - - ai - r - field - - - - - - - - - - - - - - - helipo - r - t - - - - - - - - - - - - - r - ocket - - - - - - - - - - - - - - - - - - - - s - c - oo - t - er - - - - - - - - - - - - - - - - - - - sn - o - wmobile - - - - - - - - - - - - - - - - - - - - - - - - ele - va - t - or - - - - - - - - - - - - - - - - - - ae - r - o - w - a - y_g - a - t - e - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + the + + + r + + + apist + + + + + + + + + + + + + + + + + + + ambul + + + a + + + t + + + o + + + r + + + y_ca + + + r + + + e + + + + + + + + + + + + + + + + + + + + + + + + + + + midwi + + + f + + + e + + + + + + + + + + + + + + + + + + + + + + + + bi + + + c + + + y + + + cle_ + + + r + + + epair_st + + + a + + + tion + + + + + + + + + + pet + + + + + + + + + + + pho + + + t + + + o + + + g + + + r + + + aphic_ + + + labo + + + rat + + + o + + + r + + + y + + + + + + + + + + + + pho + + + t + + + o + + + g + + + r + + + aher + + + + + + + + + + + + + + + + est + + + a + + + t + + + e_age + + + n + + + t + + + + + + + + + + + r + + + e + + + c + + + o + + + r + + + d_shop + + + + + + + + + + + r + + + e + + + c + + + y + + + cling + + + + + + + + + + + + + + + + danger + + + + + + + + + + + + + + + + + + + + + + + eme + + + r + + + gen + + + c + + + y_phone + + + + + + + + + + + + + + + + p + + + r + + + ison + + + + + + + + + + + + + + + + + + r + + + eside + + + n + + + tial_ + + + c + + + ommuni + + + t + + + y + + + + + + + + + + + + + + + + + + shel + + + t + + + er + + + + + + + + + + + to + + + wn_hall + + + + + + + + + + + + + + + + + + + + + + + bo + + + r + + + der_ + + + c + + + o + + + n + + + t + + + r + + + ol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c + + + ommuni + + + t + + + y_ + + + c + + + e + + + n + + + t + + + r + + + e + + + + + + + + + + + + + - - - + + + + + + + + - - - - - helipad - - - - - - - - - - - - - - - - - - - halt - - - - - - - - - - - - - - - - - - - - - - - - r - ail - w - a - y - - - - - - - - - - - - - - - - - - ru - n - w - a - y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f - o - r - d - - - - - - - - - - - - - - - mini_ - r - oundabout - - - - - - - - - - - - - - - - taxi - w - a - y - - - - - - t - r - ain_st - a - tion - - - - - - - - - - - - - - t - r - ain - - - - - - - - - - - - - animal_shel - t - er - - - - - - - c - ou - r - thouse - - - - - - - - - - - - - fi - r - e_st - a - tion - - - - - - - - - - - - - - - - - - - - - landma - r - k - - - - - - - - - - - poli - c - e - - - - - - - - de - n - tist - - - - - - clinic - - - - - - - - - - - - hospital - - - - - - - v - e - t - e - r - ina - r - y - - - - - - - - - - - - - - - - - - - - - - v - e - t - e - r - ina - r - y_dog - - - - - - - - muslim - - - - - - - - jewish - - - - - - - desse - r - t - - - - - - - lib - r - a - r - y - - - - - - - - ge - y - ser - - - - - + + + + + + - - - - + + + + + + + + + + + + + + + + + + + social_facili + + + t + + + y + + + + + + + + + + + + + - - - - + + - - - - - - - - - hu - n - ting - - - - - - - - - - - - - - - - - beach_ - c - oarse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - o - r - cha - r - d - - - - - - - - - - - - - - - - - pla - n - t_nurse - r - y - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - ru - r - al - - - - - mine - - - - - - - - - - - - - - - - - t - r - e - e - -s - - - - - - - t - r - ee - - - - - - - - - - le - v - el_c - r - ossing2 - - - - - - - - - - - - - le - v - el_c - r - ossing - - - - - - - sli - p - w - a - y - - - - - - - - - - - RELIGOUS - - TRANSIT - - CAR & BIKE - - AMENITIES III - - N - A - TURA - L - - CIVIC - - HEA - L - TH - - EDUC - A - TION - - AMENITIES I - - AMENITIES II - - PERSONA - L - CARE - - SHOPPING I - - SHOPPING II - - SHOPPING III - - SHOPPING III - - PETS - - - - - - - - - - - - - - - - - - - - - - - - SPORTS I - - SPORTS II - - FOOD SHOPPING - - DRINKING - - E - A - TING I - - E - A - TING II - - SNACKING - - ARTS - - GENERIC - - OUTDOOR - - C - A - TEGORIES - - - - 0.7 - - 0.1 - - 0.1 - - 0.1 - - 0.1 - - 0.1 - - 0.1 - - 0.1 - - 0.1 - - 0.2 - - 0.2 - - 0.6 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.7 - - 0.2 - - 0.2 - - 0.2 - - 0.2 - - 0.1 - - 0.1 - - 0.1 - - 0.8 - - 0.8 - - 0.8 - - 1.0 - - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - 0.11 - - ??? - - ??? - - ????????? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??????? - - ??? - - ??????? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??????????? - - ???xxxxx - - ??? - - surf spot only - - ?????????? - - ???????? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - building=stable - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - ??? - - 0.9 - - 0.10 - - 0.10 trailhead - - ??? - + + + + + + + + + + + ac + + + r + + + a + + + + + + + + + + + + + + + + + + + + + ac + + + r + + + a_alt1 + + + + + + + + + + + + + + + + + + + + + + + + + + + ngo + + + + + + + + + + + + + + + + + + + + + + + o + + + xfam + + + + + + + + + + + + + + plaque + + + + + + + + + + + + + + + + + + obelisk + + + + + + + + + + + + + + + milita + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + polling_pla + + + c + + + e + + + + + + + + + + associ + + + a + + + tion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ci + + + t + + + y_ + + + w + + + all + + + + + + + + + + + + + + + + + + + + c + + + ommon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + out + + + r + + + each + + + + + + + + + + + + + + + + + + + + political_pa + + + r + + + t + + + y + + + + + + + + + + hai + + + r + + + d + + + r + + + esser + + + + + + + + + + + + + + + + + + + smoke_shop + + + + + + + + + + spa_massage + + + + + + + + + + + spo + + + r + + + ts + + + + + + + + + + + + + + + + + + + + + + + ele + + + c + + + t + + + r + + + ician + + + + + + + + + + tailor + + + + + + + + + + + + + tanning_salon + + + + + + + + + + t + + + a + + + t + + + t + + + oo_pa + + + r + + + lor + + + + + + + + + + + + + + + + + + d + + + r + + + essmaker + + + + + + + + + + toy + + + s + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a + + + r + + + chi + + + t + + + e + + + c + + + t + + + + + + + + + + ai + + + r + + + po + + + r + + + t + + + + + + + + + + + f + + + e + + + r + + + r + + + y + + + + + + + + + + + + + + + bus_st + + + a + + + tion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + h + + + v + + + ac + + + + + + + + + + ho + + + t + + + el + + + + + + + + + + + + + + + + + + + lig + + + h + + + t_ + + + r + + + ail + + + + + + + + + + + + + + + + + + + + + + + + + + + + + s + + + a + + + wmill + + + + + + + + + + pier + + + + + + + + + + + + + + + + + + car_ + + + r + + + e + + + n + + + tal + + + + + + + + + + + + r + + + est_a + + + r + + + ea + + + + + + + + + + + bench + + + + + + + + + + + + + + dot whi + + + t + + + e + + + + + + + + + + + + dot black + + + + + + + + + + + indust + + + r + + + y + + + + + + + + + + + + + + + + ruin + + + + + + + + + + + + + + building_alt1 + + + + + + + + + + + + + + + r + + + oad + + + + + + + + + + f + + + o + + + r + + + d + + + + + + + + + + r + + + ail_met + + + r + + + o + + + + + + + + + + + + + + + + + + car_ + + + w + + + ash + + + + + + + + + + + + + + + su + + + b + + + w + + + a + + + y_e + + + n + + + t + + + r + + + an + + + c + + + e + + + + + + + + + + + + ae + + + r + + + ial + + + w + + + a + + + y + + + + + + + + + + + + + + + + + + + ai + + + r + + + field + + + + + + + + + + + + + + + + + + + helipo + + + r + + + t + + + + + + + + + + + + + + + + + r + + + ocket + + + + + + + + + + + + + + + + + + + + + + + + s + + + c + + + oo + + + t + + + er + + + + + + + + + + + + + + + + + + + + + + + sn + + + o + + + wmobile + + + + + + + + + + + + + + + + + + + + + + + + + + + + ele + + + va + + + t + + + or + + + + + + + + + + + + + + + + + + + + + + ae + + + r + + + o + + + w + + + a + + + y_g + + + a + + + t + + + e + + + + + + + + + + + + + + + + + + + + + + + helipad + + + + + + + + + + + + + + + + + + + + + + + halt + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + + + ail + + + w + + + a + + + y + + + + + + + + + + + + + + + + + + + + + + ru + + + n + + + w + + + a + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + f + + + o + + + r + + + d + + + + + + + + + + + + + + + + + + + mini_ + + + r + + + oundabout + + + + + + + + + + + + + + + + + + + + taxi + + + w + + + a + + + y + + + + + + + + + + t + + + r + + + ain_st + + + a + + + tion + + + + + + + + + + + + + + + + + + t + + + r + + + ain + + + + + + + + + + + + + + + + + animal_shel + + + t + + + er + + + + + + + + + + + c + + + ou + + + r + + + thouse + + + + + + + + + + + + + + + + + fi + + + r + + + e_st + + + a + + + tion + + + + + + + + + + + + + + + + + + + + + + + + + landma + + + r + + + k + + + + + + + + + + + + + + + poli + + + c + + + e + + + + + + + + + + + + de + + + n + + + tist + + + + + + + + + + clinic + + + + + + + + + + + + + + + + hospital + + + + + + + + + + + v + + + e + + + t + + + e + + + r + + + ina + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + v + + + e + + + t + + + e + + + r + + + ina + + + r + + + y_dog + + + + + + + + + + + + muslim + + + + + + + + + + + + jewish + + + + + + + + + + + desse + + + r + + + t + + + + + + + + + + + lib + + + r + + + a + + + r + + + y + + + + + + + + + + + + ge + + + y + + + ser + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hu + + + n + + + ting + + + + + + + + + + + + + + + + + + + + + beach_ + + + c + + + oarse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + o + + + r + + + cha + + + r + + + d + + + + + + + + + + + + + + + + + + + + + pla + + + n + + + t_nurse + + + r + + + y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ru + + + r + + + al + + + + + + + + + mine + + + + + + + + + + + + + + + + + + + + + t + + + r + + + e + + + e + + + -s + + + + + + + + + + + t + + + r + + + ee + + + + + + + + + + + + + + le + + + v + + + el_c + + + r + + + ossing2 + + + + + + + + + + + + + + + + + le + + + v + + + el_c + + + r + + + ossing + + + + + + + + + + + sli + + + p + + + w + + + a + + + y + + + + + + + + + + + + + + + RELIGOUS + + + + + TRANSIT + + + + + CAR & BIKE + + + + + AMENITIES III + + + + + N + + + A + + + TURA + + + L + + + + + CIVIC + + + + + HEA + + + L + + + TH + + + + + EDUC + + + A + + + TION + + + + + AMENITIES I + + + + + AMENITIES II + + + + + PERSONA + + + L + + + CARE + + + + + SHOPPING I + + + + + SHOPPING II + + + + + SHOPPING III + + + + + SHOPPING III + + + + + PETS + + + + + + + + + + + + + + + + + + + + + + + + + + + SPORTS I + + + + + SPORTS II + + + + + FOOD SHOPPING + + + + + DRINKING + + + + + E + + + A + + + TING I + + + + + E + + + A + + + TING II + + + + + SNACKING + + + + + ARTS + + + + + GENERIC + + + + + US + + + + + NL + + + + + DE + + + + + JP + + + + + OUTDOOR + + + + + C + + + A + + + TEGORIES + + + + + + + 0.7 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.2 + + + + + 0.2 + + + + + 0.6 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.7 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.2 + + + + + 0.1 + + + + + 0.1 + + + + + 0.1 + + + + + 0.8 + + + + + 0.8 + + + + + 0.8 + + + + + 1.0 + + + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + 0.11 + + + + + ??? + + + + + ??? + + + + + ????????? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??????? + + + + + ??? + + + + + ??????? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??????????? + + + + + ???xxxxx + + + + + ??? + + + + + surf spot only + + + + + ?????????? + + + + + ???????? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + building=stable + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + ??? + + + + + 0.9 + + + + + 0.10 + + + + + 0.10 trailhead + + + + + ??? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/styles/src/base_layers.ts b/styles/src/base_layers.ts index 65980120f..22a9589a1 100644 --- a/styles/src/base_layers.ts +++ b/styles/src/base_layers.ts @@ -1556,11 +1556,44 @@ export function labels_layers( layout: { "icon-image": [ "match", - ["get", "network"], + [ + "match", + ["slice", ["to-string", ["get", "network"]], 0, 14], + "JP:prefectural", + "JP:prefectural", + "JP:perfectural", + "JP:prefectural", + ["get", "network"], + ], "US:I", ["concat", "US:I-", ["length", ["get", "shield_text"]], "char"], "NL:S-road", ["concat", "NL:S-road-", ["length", ["get", "shield_text"]], "char"], + "BAB", + ["concat", "BAB-", ["length", ["get", "shield_text"]], "char"], + "DE:national", + [ + "concat", + "DE:national-", + ["length", ["get", "shield_text"]], + "char", + ], + "JP:national", + [ + "concat", + "JP:national-", + ["length", ["get", "shield_text"]], + "char", + ], + "JP:prefectural", + [ + "concat", + "JP:prefectural-", + ["length", ["get", "shield_text"]], + "char", + ], + "JP:E", + ["concat", "JP:E-", ["length", ["get", "shield_text"]], "char"], [ "concat", "generic_shield-", @@ -1572,6 +1605,13 @@ export function labels_layers( "text-font": [t.bold || "Noto Sans Medium"], "text-size": 8, "icon-size": 0.8, + "icon-offset": [ + "match", + ["get", "network"], + "JP:national", + ["literal", [0, 2.3]], + ["literal", [0, 0]], + ], "symbol-placement": "line", "icon-rotation-alignment": "viewport", "text-rotation-alignment": "viewport", diff --git a/tiles/src/main/java/com/protomaps/basemap/feature/CountryCoder.java b/tiles/src/main/java/com/protomaps/basemap/feature/CountryCoder.java index 79c4c60b7..cc6b7a40b 100644 --- a/tiles/src/main/java/com/protomaps/basemap/feature/CountryCoder.java +++ b/tiles/src/main/java/com/protomaps/basemap/feature/CountryCoder.java @@ -2,6 +2,8 @@ import com.onthegomap.planetiler.reader.geojson.GeoJson; import com.protomaps.basemap.locales.CartographicLocale; +import com.protomaps.basemap.locales.DE; +import com.protomaps.basemap.locales.JP; import com.protomaps.basemap.locales.NL; import com.protomaps.basemap.locales.US; import java.io.IOException; @@ -71,6 +73,10 @@ public static CartographicLocale getLocale(Optional code) { return new US(); } else if (code.get().equals("NL")) { return new NL(); + } else if (code.get().equals("DE")) { + return new DE(); + } else if (code.get().equals("JP")) { + return new JP(); } else { return new CartographicLocale(); } diff --git a/tiles/src/main/java/com/protomaps/basemap/locales/DE.java b/tiles/src/main/java/com/protomaps/basemap/locales/DE.java new file mode 100644 index 000000000..8e46d8e67 --- /dev/null +++ b/tiles/src/main/java/com/protomaps/basemap/locales/DE.java @@ -0,0 +1,29 @@ +package com.protomaps.basemap.locales; + +import java.util.List; + +/* + * Logic specific to Germany. + *

+ * Prioritizes route networks for shield ordering: Autobahn (BAB) over Bundesstraßen (DE:national). + */ +public class DE extends CartographicLocale { + + // Ordered by shield priority, the first matching prefix wins. + private static final List NETWORK_PRIORITY = List.of( + "BAB", + "DE:national" + ); + + @Override + public int networkRank(String network) { + if (network != null) { + for (int i = 0; i < NETWORK_PRIORITY.size(); i++) { + if (network.startsWith(NETWORK_PRIORITY.get(i))) { + return i; + } + } + } + return super.networkRank(network); + } +} diff --git a/tiles/src/main/java/com/protomaps/basemap/locales/JP.java b/tiles/src/main/java/com/protomaps/basemap/locales/JP.java new file mode 100644 index 000000000..1cc9c7ddd --- /dev/null +++ b/tiles/src/main/java/com/protomaps/basemap/locales/JP.java @@ -0,0 +1,59 @@ +package com.protomaps.basemap.locales; + +import java.util.List; + +/* + * Logic specific to Japan. + *

+ * Prioritizes route networks for shield ordering: numbered expressways (JP:E) over + * national highways (JP:national) over prefectural roads (JP:prefectural). + */ +public class JP extends CartographicLocale { + + /** + * OSM sometimes scopes prefectural networks per prefecture (JP:prefectural:nagano, ...) and occasionally misspells the + * tag as JP:perfectural. They share one shield design, so they collapse onto a single network for symbolization. + */ + private static final String PREFECTURAL_PREFIX = "JP:prefectural"; + + private static final String PREFECTURAL_TYPO = "JP:perfectural"; + + private static final String PREFECTURAL_NETWORK = "JP:prefectural"; + + /** National-highway expressway variants share the numbered expressway shield. */ + private static final String NATIONAL_EXPRESSWAY = "JP:national:expressway"; + + private static final String EXPRESSWAY_NETWORK = "JP:E"; + + // Ordered by shield priority the first matching prefix wins. + private static final List NETWORK_PRIORITY = List.of( + EXPRESSWAY_NETWORK, + "JP:national", + PREFECTURAL_NETWORK + ); + + @Override + public String normalizeNetwork(String network) { + if (network != null) { + if (network.startsWith(PREFECTURAL_PREFIX) || network.startsWith(PREFECTURAL_TYPO)) { + return PREFECTURAL_NETWORK; + } + if (network.equals(NATIONAL_EXPRESSWAY)) { + return EXPRESSWAY_NETWORK; + } + } + return super.normalizeNetwork(network); + } + + @Override + public int networkRank(String network) { + if (network != null) { + for (int i = 0; i < NETWORK_PRIORITY.size(); i++) { + if (network.startsWith(NETWORK_PRIORITY.get(i))) { + return i; + } + } + } + return super.networkRank(network); + } +} diff --git a/tiles/src/test/java/com/protomaps/basemap/feature/CountryCoderTest.java b/tiles/src/test/java/com/protomaps/basemap/feature/CountryCoderTest.java index c8dddafb8..f37fb4851 100644 --- a/tiles/src/test/java/com/protomaps/basemap/feature/CountryCoderTest.java +++ b/tiles/src/test/java/com/protomaps/basemap/feature/CountryCoderTest.java @@ -5,6 +5,8 @@ import static org.junit.jupiter.api.Assertions.assertInstanceOf; import com.protomaps.basemap.locales.CartographicLocale; +import com.protomaps.basemap.locales.DE; +import com.protomaps.basemap.locales.JP; import com.protomaps.basemap.locales.NL; import com.protomaps.basemap.locales.US; import java.util.Optional; @@ -58,6 +60,8 @@ void testDependency() { void testCodeToLocale() { assertInstanceOf(NL.class, CountryCoder.getLocale(Optional.of("NL"))); assertInstanceOf(US.class, CountryCoder.getLocale(Optional.of("US"))); + assertInstanceOf(DE.class, CountryCoder.getLocale(Optional.of("DE"))); + assertInstanceOf(JP.class, CountryCoder.getLocale(Optional.of("JP"))); assertInstanceOf(CartographicLocale.class, CountryCoder.getLocale(Optional.empty())); } } diff --git a/tiles/src/test/java/com/protomaps/basemap/locales/DETest.java b/tiles/src/test/java/com/protomaps/basemap/locales/DETest.java new file mode 100644 index 000000000..e12280b3d --- /dev/null +++ b/tiles/src/test/java/com/protomaps/basemap/locales/DETest.java @@ -0,0 +1,41 @@ +package com.protomaps.basemap.locales; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import org.junit.jupiter.api.Test; + +class DETest { + + CartographicLocale locale = new DE(); + + @Test + void unrelatedNetworksArePassedThrough() { + assertEquals("BAB", locale.normalizeNetwork("BAB")); + assertEquals("DE:national", locale.normalizeNetwork("DE:national")); + assertEquals("Landesstraßen NRW", locale.normalizeNetwork("Landesstraßen NRW")); + assertEquals("e-road", locale.normalizeNetwork("e-road")); + } + + @Test + void networkPriority() { + // Autobahn outranks Bundesstraße, Landesstraßen share the default rank with other unknowns. + assertTrue(locale.networkRank("BAB") < locale.networkRank("DE:national")); + assertTrue(locale.networkRank("DE:national") < locale.networkRank("Landesstraßen NRW")); + assertEquals(CartographicLocale.DEFAULT_RANK, locale.networkRank("Landesstraßen NRW")); + assertEquals(CartographicLocale.DEFAULT_RANK, locale.networkRank("e-road")); + } + + @Test + void orderShields() { + var shields = locale.orderShields(List.of( + new CartographicLocale.Shield("L12", "Landesstraßen NRW"), + new CartographicLocale.Shield("B1", "DE:national"), + new CartographicLocale.Shield("A1", "BAB"))); + assertEquals(List.of( + new CartographicLocale.Shield("A1", "BAB"), + new CartographicLocale.Shield("B1", "DE:national"), + new CartographicLocale.Shield("L12", "Landesstraßen NRW")), shields); + } +} diff --git a/tiles/src/test/java/com/protomaps/basemap/locales/JPTest.java b/tiles/src/test/java/com/protomaps/basemap/locales/JPTest.java new file mode 100644 index 000000000..5aeca07bd --- /dev/null +++ b/tiles/src/test/java/com/protomaps/basemap/locales/JPTest.java @@ -0,0 +1,64 @@ +package com.protomaps.basemap.locales; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +class JPTest { + + CartographicLocale locale = new JP(); + + @ParameterizedTest + @ValueSource(strings = { + "JP:prefectural:tokyo", + "JP:prefectural:nagano", + "JP:prefectural:kagawa", + "JP:prefectural:tottori", + "JP:prefectural:saga", + "JP:prefectural:gunma", + "JP:prefectural:Fukui", + "JP:prefectural:tokyo;JP:prefectural:kanagawa", + "JP:perfectural" + }) + void prefecturalNetworksCollapse(String network) { + // Prefecture-scoped networks symbolize with the same prefectural shield. + assertEquals("JP:prefectural", locale.normalizeNetwork(network)); + } + + @Test + void nationalExpresswayCollapsesToNumberedExpressway() { + assertEquals("JP:E", locale.normalizeNetwork("JP:national:expressway")); + } + + @Test + void unrelatedNetworksArePassedThrough() { + assertEquals("JP:E", locale.normalizeNetwork("JP:E")); + assertEquals("JP:national", locale.normalizeNetwork("JP:national")); + assertEquals("JP:prefectural", locale.normalizeNetwork("JP:prefectural")); + } + + @Test + void networkPriority() { + // Expressways outrank national highways outrank prefectural roads. + assertTrue(locale.networkRank("JP:E") < locale.networkRank("JP:national")); + assertTrue(locale.networkRank("JP:national") < locale.networkRank("JP:prefectural")); + // Unknown networks rank below every prioritized one. + assertTrue(locale.networkRank("JP:prefectural") < locale.networkRank("e-road")); + } + + @Test + void orderShields() { + var shields = locale.orderShields(List.of( + new CartographicLocale.Shield("1", "JP:prefectural"), + new CartographicLocale.Shield("1", "JP:national"), + new CartographicLocale.Shield("E1", "JP:E"))); + assertEquals(List.of( + new CartographicLocale.Shield("E1", "JP:E"), + new CartographicLocale.Shield("1", "JP:national"), + new CartographicLocale.Shield("1", "JP:prefectural")), shields); + } +}