--- /dev/null
+Author: Geraldine Sarmiento, Nathaniel V. Kelso, Patricio Gonzalez Vivo, Brett Camper, Peter Richardson
+
+labels-global:
+ - &text_visible_continent true
+ - &text_visible_admin true
+ - &text_visible_populated_places true
+ - &icon_visible_populated_places true
+ - &text_visible_neighbourhoods true
+ - &text_visible_neighbourhoods_e true
+ - &text_visible_building true
+ - &text_visible_address true
+ - &text_visible_water_labels true
+ - &label_visible_landuse_green true
+ - &icon_visible_landuse_green true
+ - &text_visible_landuse_green true
+ - &label_visible_poi_landuse true
+ - &icon_visible_poi_landuse true
+ - &text_visible_poi_landuse true
+ - &label_visible_poi_landuse_e true
+ - &icon_visible_poi_landuse_e true
+ - &text_visible_poi_landuse_e true
+ - &label_visible_station true
+ - &icon_visible_station true
+ - &text_visible_station true
+ - &text_visible_highway true
+ - &text_visible_highway_e true
+ - &text_visible_trunk_primary true
+ - &text_visible_trunk_primary_e2 false
+ - &text_visible_trunk_primary_e true
+ - &text_visible_secondary true
+ - &text_visible_secondary_e true
+ - &text_visible_tertiary true
+ - &text_visible_tertiary_e true
+ - &text_visible_minor_road true
+ - &text_visible_minor_road_e true
+ - &text_visible_service_road true
+ - &text_visible_path true
+ - &text_visible_piste true
+ - &text_visible_steps true
+ - &text_visible_aerialway true
+ - &text_visible_shields true
+ - &text_visible_exits true
+
+settings:
+ cameras:
+ - &camera_settings { type: isometric, axis: [0, 1] }
+
+ lights:
+ - &light_settings { type: directional, direction: [1, 1, -.9], diffuse: 0.5, ambient: 0.85 }
+
+ roads:
+ - &highway1 [0.988,0.495,0.439]
+ - &highway1_e [0.988,0.495,0.439]
+ - &highway_link1 [1.000,0.631,0.590]
+ - &highway_casing1 [0.859,0.859,0.859]
+ - &highway_tunnel1 [0.800,0.800,0.800]
+ - &highway_tunnel_casing1 [0.870,0.870,0.870]
+ - &highway_link_tunnel_casing1 [0.8, 0.8, 0.7]
+ - &ferry1 '#8bb5e4'
+ - &rail1 '#999'
+ - &rail1_e '#bbb'
+ - &rail2 '#777' # less important rail (service, sidings)
+ - &major_road1 [1, 1, 1]
+ - &major_road1b [1.0,1.0,1.0]
+ - &major_road1c white #15%
+ - &major_road2 [1.0,1.0,1.0]
+ - &major_road2a [1.0,1.0,1.0]
+ - &major_road2b [1.0,1.0,1.0]
+ - &major_road3 [1.0,1.0,1.0]
+ - &major_road4 white
+ - &major_road5 white
+ - &major_casing1 [0.859,0.859,0.859] # same as highway_casing1
+ - &major_casing2 [0.859,0.859,0.859] # zoomed out
+ - &major_tunnel1 [.870,0.870,0.870] # light orange (major_route1)
+ - &major_tunnel_casing1 [0.780,0.780,0.780]
+ - &major_route1 [1.000,0.631,0.590]
+ - &major_route2 [1.000,0.752,0.730] # zoomed out
+ - &minor_route [1.000,0.631,0.590] # same as major_route
+ - &minor_road1 [0.9,0.9,0.9] # natural earth
+ - &minor_road2 [0.9,0.9,0.9] # natural earth, same as major_road2
+ - &minor_road3 [0.9,0.9,0.9]
+ - &minor_road4 [0.9,0.9,0.9] # zoomed out
+ - &minor_road5 [0.9,0.9,0.9] # zoomed out, again
+ - &minor_casing1 white # same as highway_casing1
+ - &minor_casing2 white # zoomed out
+ - &minor_tunnel1 [0.8, 0.8, 0.7]
+ - &minor_tunnel_casing1 white
+ - &service_road1 white
+ - &service_road2 white
+ - &service_road_casing1 [0.770,0.770,0.770]
+ - &service_road_casing2 white
+ - &path1 [0.91,0.91,0.91]
+ - &path2 [0.91,0.91,0.91] # zoomed out
+ - &path_casing1 [0.875,0.875,0.875]
+ - &path_bridge_casing1 [0.870,0.870,0.870]
+ - &path_bridge_casing2 [0.870,0.870,0.870] # zoomed out
+ - &path_steps1 [0.91,0.91,0.91]
+ - &path_steps1_b '#f0ebeb'
+ - &piste_easy [0.367,0.750,0.622]
+ - &piste_intermediate [0.420,0.678,0.863]
+ - &piste_advanced [0.450,0.450,0.450]
+ - &piste_expert [0.450,0.450,0.450]
+
+ boundaries:
+ - &country_boundary [1.0,1.0,1.0]
+ - ®ion_boundary [1.0,1.0,1.0]
+ - &subregion_boundary '#bbb'
+ - &city_wall [0.682,0.682,0.682]
+ - &retaining_wall [0.827,0.808,0.780]
+ - &snow_fence [0.827,0.808,0.780]
+ - &fence [0.827,0.808,0.780]
+
+ areas:
+ - &scene1 '#eee' # map background, water
+ - &water1 [0.83, 0.83, 0.83] # water
+ - &water2 [.75,.75,.75] # playa
+ - &water1_o '#9dc3de' # water stroke
+ - &water2_o '#9dc3de' # water stroke 2
+ - &earth1 '#666' # land color
+ - &earth1_r '#666' # land color road
+ - &earth2 '#e9e4e0' # urban
+ - &earth2_v false # urban
+ - &earth2_e '#b3b3b3' # urban early
+ - &earth2_e2 '#b3b3b3' # urban early fade in
+ - &earth2_e3 '#bbbbbb' # urban early fade in 3
+ - &earth2_ev true # urban early visibility
+ - &green1 [0.140,0.843,0.824] # park
+ - &green1_r [0.140,0.843,0.824] # roads in parks
+ - &green1_b '#94d8d6' # buildings in parks
+ - &green1_bo '#7fc3c1' # buildings in parks, outlines
+ - &green1_w '#b7d7bf' # wilderness area
+ - &green1_ws '#aed0b6' # wilderness area stroke
+ - &green1b [0.80,0.80,0.80] # park
+ - &green2 [0.547,0.760,0.590] # cemetery
+ - &green2_r [0.7,0.7,0.7] # cemetery road
+ - &green3 [0.000,0.779,0.328] # golf course
+ - &green4 '#526054' # farm faint
+ - &green4_v false # farm faint
+ - &green5 '#5a695c' # farm
+ - &green6 '#648560' # nature reserve
+ - &green7 [0.169,0.651,0.631] # forest
+ - &green8 [0.123,0.770,0.587] # conservation
+ - &green9 '#cfe3d4' # forest (landcover)
+ - &green9_e '#cfe3d4' # forest (landcover) early
+ - &green9_v true # forest (landcover) visibility
+ - &green10 '#c7d4c0' # sports_centre
+ - &green11 '#d8ddd0' # minor zoo related AOIs
+ - &green11_o '#aec7b5' # minor zoo related AOIs outline
+ - &orange1 '#bfb08e' # stadium
+ - &orange2 '#d8ccb0' # pitch (play field)
+ - &orange3 '#b9a597' # racetrack (play field)
+ - &brown1 [0.814,0.692,0.570] # university
+ - &brown1_r [0.814,0.692,0.570] # roads in university
+ - &brown1_b [.65, .65, .65] # university buildings
+ - &brown1_bo [.8, .8, .8] # university building outlines
+ - &brown2 '#ada497' # school
+ - &brown3 '#c7b7a2' # playground
+ - &red1 [0.840,0.503,0.541] # hospital
+ - &red1_r [0.840,0.503,0.541] # roads in hospital
+ - &red1_b [.65, .65, .65] # hospital buildings
+ - &red1_bo [.8, .8, .8] # hospital building outlines
+ - &grey1 '#717171' # pedestrian, retail, airport apron, parking, church
+ - &grey1_e '#cac6c4' # pedestrian, retail, airport apron, parking, church early zoom 14
+ - &grey1_v true # pedestrian, retail, airport apron, parking, church
+ - &grey2 [0.5, 0.5, 0.5] # airport runway
+ - &grey3 grey # railway
+ - &grey4 '#ffc52a' # airport taxiway
+ - &grey5 '#ffc52a' # airport taxiway
+ - &grey6 '#c6c6c6' # industrial
+ - &grey6_b [.65, .65, .65] # industrial buildings
+ - &grey6_bo [.8, .8, .8] # industrial building outlines
+ - &grey7 '#ecebe9' # pedestrian, match minor road / path color
+ - &grey7_v true # pedestrian visibility
+ - &grey8 '#ecebe9' # winter sports
+ - &grey8_v true # winter sports visibility
+ - &grey9 [.7, .0, .0, 0.5] #[.7, .7, .7] # transit platform
+ - &grey9_o [.5, .5, .5] # transit platform outline
+ - &grey9_v true # transit platform visibility
+ - &grey10 '#d4cce6' # generic major landuse (theme park, resort, aquarium, winery)
+ - &grey10_o '#bcb9c5' # generic major landuse outline
+ - &grey11 '#d7d7d7' # generic minor landuse (attraction, artwork)
+ - &grey11_o '#cccccc' # generic minor landuse outline
+ - &grey12 '#cfcfcf' # generic minor amusements (roller coasters, rides, slide, carousel)
+ - &grey12_o '#c5c5c5' # generic minor amusements
+ - &purple '#f0e1e1' # airport
+ - &purple_v false # airport
+ - &purple_b '#c2c3c4' # airport buildings
+ - &purple_bo '#969798' # airport buildings outline
+ - &mystry1 '#bfb08e' # recreation ground
+ - &yellow1 '#e7eda8' # beach
+ - &building1 [0.784, 0.784, 0.784] # building
+ - &building2 [.860, .860, .860] # building stroke
+ - &building_o 5 # building stroke order
+ - &building_e true # building stroke order
+
+ labels:
+ - &text_fill black
+ - &text_fill2 '#555' # WHITE
+ - &text_fill_road_e '#555' # WHITE
+ - &text_fill_exits [0.920,0.398,0.340] # motorway junctions, highway_casing1
+ - &text_fill_building '#ccc' # WHITE
+ - &text_fill_address '#aaa' # HUH
+ - &text_fill_water '#4c89b5' # blue
+ - &text_fill_park [0.35,0.35,0.35] # black
+ - &text_fill_beach [0.35,0.35,0.35] # black
+ - &text_fill_piste '#444' # dark gray
+ - &text_fill_piste_e '#666' # dark gray early
+ - &text_fill_shield white # road shield fill color
+ - &text_stroke [0.870,0.870,0.870] # land color
+ - &text_stroke_water [0.9, 0.9, 0.9] # water stroke color
+ - &text_stroke_park '#bddec5' # park stroke color
+ - &text_stroke_building [0.83, 0.83, 0.83] # building stroke color
+ - &text_stroke_address [0.85, 0.85, 0.85] # address stroke color
+ - &text_stroke_road1 [0.9, 0.9, 0.9] # road stroke color highway
+ - &text_stroke_road2 [0.9, 0.9, 0.9] # road stroke color major road
+ - &text_stroke_road3 [0.9, 0.9, 0.9] # road stroke color major road route
+ - &text_stroke_road4 [0.9, 0.9, 0.9] # road stroke color minor road
+ - &text_stroke_shield '#D16768' # road shield stroke color &highway_casing1
+ - &townspot_sprite townspot-m-rev # depends on land color and text settings
+ - &text_font_family 'Open Sans' # branding in asperational Unicode, yo (or Helvetica)
+
+
+
+textures:
+ pois:
+ url: images/poi_icons_18@2x.png
+ filtering: mipmap
+ sprites:
+ # define sprites: [x origin, y origin, width, height]
+ airport: [870, 0, 38, 38]
+ aquarium: [732, 168, 38, 38]
+ art-gallery: [640, 168, 38, 38]
+ athletics-sports: [184, 168, 38, 38]
+ atm: [918, 126, 38, 38]
+ automotive-shop: [0, 168, 38, 38]
+ bakery: [548, 168, 38, 38]
+ bank: [964, 126, 38, 38]
+ bar: [230, 168, 38, 38]
+ baseball-field: [506, 84, 38, 38]
+ basketball-court: [460, 84, 38, 38]
+ beach: [644, 84, 38, 38]
+ beer-garden: [322, 210, 38, 38]
+ bench: [548, 0, 38, 38]
+ bicycle-parking: [644, 126, 38, 38]
+ bike-shop: [872, 126, 38, 38]
+ boat-ferry: [824, 0, 38, 38]
+ boat-ramp: [138, 84, 40, 38]
+ bookstore: [826, 126, 38, 38]
+ bridge: [920, 84, 38, 38]
+ buddhism: [782, 84, 38, 38]
+ building: [414, 168, 34, 34]
+ burger: [184, 210, 38, 38]
+ taqueria: [138, 210, 38, 38]
+ bus-station: [778, 0, 38, 38]
+ butcher: [920, 42, 38, 38]
+ campground: [828, 84, 38, 38]
+ candy-store: [0, 210, 38, 38]
+ capital-l: [560, 210, 16, 16]
+ capital-m: [540, 210, 12, 12]
+ capital-s: [520, 210, 10, 10]
+ capital-xl: [584, 210, 20, 20]
+ capital-xs: [506, 210, 8, 8]
+ car-dealership: [780, 126, 38, 38]
+ castle: [414, 42, 38, 38]
+ cemetery: [736, 84, 38, 38]
+ church: [230, 126, 38, 38]
+ clothing-store: [824, 168, 38, 38]
+ coffee-shop: [502, 168, 38, 38]
+ college-university: [870, 168, 38, 38]
+ convenience-store: [46, 84, 38, 38]
+ courthouse: [364, 0, 38, 38]
+ department-store: [734, 126, 38, 38]
+ drinking-water: [276, 210, 38, 38]
+ dry-cleaning: [0, 84, 38, 38]
+ electronics-store: [598, 126, 38, 38]
+ factory: [368, 168, 38, 38]
+ fire-station: [318, 0, 38, 38]
+ fitness: [874, 42, 38, 38]
+ flower-shop: [184, 126, 38, 38]
+ forest: [46, 210, 38, 38]
+ fountain: [322, 126, 38, 38]
+ garden: [690, 84, 38, 38]
+ gas-station: [960, 168, 38, 38]
+ generic: [460, 210, 38, 38]
+ gift-shop: [138, 126, 38, 38]
+ golf-course: [414, 84, 38, 38]
+ government-building: [138, 168, 38, 38]
+ grocery-store: [552, 126, 38, 38]
+ harbor-marina: [92, 168, 40, 38]
+ hardware-store: [828, 42, 38, 38]
+ historic-site: [92, 126, 38, 38]
+ hospital: [184, 0, 34, 34]
+ hotel: [732, 0, 38, 38]
+ ice-cream-shop: [368, 210, 38, 38]
+ information: [414, 210, 38, 38]
+ jewelry-store: [736, 42, 38, 38]
+ landmark: [272, 0, 38, 38]
+ laundry: [690, 42, 38, 38]
+ library: [0, 0, 38, 38]
+ light-rail: [686, 0, 38, 38]
+ lighthouse: [276, 84, 38, 38]
+ liquor-store: [506, 126, 38, 38]
+ locate-off: [492, 342, 72, 72]
+ locate-on: [412, 342, 72, 72]
+ mall: [644, 42, 38, 38]
+ market: [598, 42, 38, 38]
+ mine: [782, 42, 40, 38]
+ mobile-phone-shop: [506, 42, 38, 38]
+ mosque: [92, 0, 38, 38]
+ mountain: [230, 84, 38, 38]
+ movie-theatre: [778, 168, 38, 38]
+ museum: [46, 126, 38, 38]
+ music-store: [368, 42, 38, 38]
+ newsstand: [322, 42, 38, 38]
+ office: [598, 84, 38, 38]
+ optical-shop: [276, 42, 38, 38]
+ park: [276, 126, 38, 38]
+ parking: [690, 126, 38, 38]
+ performing-arts: [594, 168, 38, 38]
+ pet-store: [230, 42, 38, 38]
+ pharmacy: [966, 42, 38, 38]
+ photography-lab: [184, 42, 38, 38]
+ pier: [640, 0, 38, 38]
+ playground: [460, 42, 38, 38]
+ police: [226, 0, 38, 38]
+ pool: [184, 84, 38, 38]
+ post-office: [322, 168, 38, 38]
+ real-estate: [138, 42, 38, 38]
+ recycling-facility: [92, 42, 38, 38]
+ rental-car: [594, 0, 38, 38]
+ restaurant: [92, 210, 38, 38]
+ ruin: [502, 0, 38, 38]
+ salon-barber: [46, 42, 38, 38]
+ school: [552, 84, 38, 38]
+ shoe-store: [552, 42, 38, 38]
+ ski-area: [368, 126, 38, 38]
+ soccer-field: [368, 84, 38, 38]
+ spiritual-center: [276, 168, 38, 38]
+ sporting-goods-shop: [0, 42, 38, 38]
+ spring: [322, 84, 38, 38]
+ stadium: [460, 126, 38, 38]
+ subway-entrance: [456, 0, 38, 38]
+ synagogue: [46, 0, 38, 38]
+ tailor-shop: [962, 0, 38, 38]
+ tennis: [414, 126, 38, 38]
+ theme-park: [0, 126, 38, 38]
+ toilets: [874, 84, 38, 38]
+ townspot-l: [770, 210, 16, 16]
+ townspot-l-rev: [664, 210, 16, 16]
+ townspot-m: [750, 210, 12, 12]
+ townspot-m-rev: [644, 210, 12, 12]
+ townspot-s: [732, 210, 10, 10]
+ townspot-s-rev: [626, 210, 10, 10]
+ townspot-xl: [794, 210, 20, 20]
+ townspot-xl-rev: [688, 210, 20, 20]
+ townspot-xs: [716, 210, 8, 8]
+ townspot-xs-rev: [612, 210, 6, 6]
+ toy-game-store: [916, 0, 38, 38]
+ traffic-signal: [916, 168, 36, 34]
+ train-station: [410, 0, 38, 38]
+ veterinarian: [138, 0, 38, 38]
+ view-point: [686, 168, 40, 38]
+ vineyard: [46, 168, 40, 38]
+ volcano: [92, 84, 38, 38]
+ wine-bar: [230, 210, 38, 38]
+ winery: [456, 168, 38, 38]
+ zoo: [966, 84, 38, 38]
+ #
+ # UX/UI icons for map interactivity & app chrome
+ #
+ ux-current-location: [158, 342, 88, 88]
+ ux-route-arrow: [822, 210, 128, 128]
+ ux-route-start: [78, 342, 72, 92]
+ ux-route-stop: [0, 342, 72, 92]
+ ux-search-active: [252, 342, 72, 108]
+ ux-search-inactive: [332, 342, 72, 108]
+ # ux-transit-stop is currently reusing capital-xl artwork, please customize
+ ux-transit-stop: [584, 210, 20, 20]
+
+ building-grid:
+ url: images/building-grid.gif
+ filtering: mipmap
+
+sources:
+ osm:
+ # EraserMaps the app only supports MVT format tiles
+ type: MVT #TopoJSONTiles topojson
+ #url: http://vector.dev.mapzen.com/osm/all/{z}/{x}/{y}.mvt
+ #enforce_winding: true #because Tangram v0.4 and tiles v0.5-pre don't play nice
+ #url: //localhost:8080/osm/all/{z}/{x}/{y}.mvt
+ url: https://vector.mapzen.com/osm/all/{z}/{x}/{y}.mvt?api_key=vector-tiles-HqUVidw
+ # road labels in Tangram JS are broken when overzooming, set max_zoom: 18 to preview fix
+ max_zoom: 16
+
+# # Only enable this for local debug, should not be enabled for prod (app inserts these at runtime)
+# # These are all in San Francisco, California
+# #
+# # Current location gem
+# mz_current_location:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/9e9588228b0a604264a2/raw/b28be49bea0b7feb859eb65b588c28e9fee5ae2c/map.geojson
+# # Route line
+# mz_route_line:
+# type: GeoJSON
+# # sf to ny
+# url: https://gist.githubusercontent.com/anonymous/30c6c1a75c168d91d90c/raw/92bfe55e622766d250b1f2f5d17bdc7c26acb956/map.geojson
+# # local sf trip
+# # url: https://gist.githubusercontent.com/anonymous/9a610ebda6fe4be7bccc/raw/8d217e43f2412d48d01534ba115f1e42dac72e68/map.geojson
+# # Transit route line
+# mz_route_line_transit:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/71ae88cbc6d62c4d141ecd6a61060050/raw/2254bbc18243f5dc609e663a580c9412a7447936/map.geojson
+# # Pin at start of route
+# mz_route_start:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/5262969cb7549ea69221/raw/be03f233fa323d9b5cf50ef1d8e89a1faa3750f1/map.geojson
+# # Pin at end of route
+# mz_route_destination:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/dbae9635dfe46796490e/raw/df55c318635a7d91b309ed40754d4738a292fd38/map.geojson
+# # Arrow for current route location
+# mz_route_location:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/36613092be6e2aa004fd/raw/f753d13069425199e1dea1b449ef67d723f6510e/map.geojson
+# # Dots for transit stops in route preview
+# mz_route_transit_stop:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/b9f16bca4a804f50faf71277d52ee4ab/raw/db13e4e765fa1ac8844b8ba02f4a0f66fe772907/map.geojson
+# # Pins showing search result locations
+# mz_search_result:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/57dc09eeb120919f76de/raw/43426217da3c2bae0522dc4257aaa61e4df3981e/map.geojson
+# # Default point styling (SDK)
+# mz_default_point:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/16324c771edfce45be0721390389b878/raw/7dbaebf17da7da8562e6c6f8768bc8cff83efa88/map.geojson
+# # Default line styling (SDK)
+# mz_default_line:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/26f4e8b6b34b2617b5d5533d89decb39/raw/df8e180ab4f7f19448014dccc4a755f7cfa20003/map.geojson
+# # Default polygon styling (SDK)
+# mz_default_polygon:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/88235c795bb44b8c45150bdd5561f947/raw/71d4fab97b6513833bf1a589167119e6169ef86d/map.geojson
+
+cameras:
+ isometric:
+ type: isometric
+
+styles:
+ dashedline:
+ base: lines
+ texcoords: true
+ shaders:
+ defines:
+ background: vec3(0.867, 0.867, 0.867)
+ blocks:
+ color: |
+ // blend line 50/50 between two colors
+ float t = fract(v_texcoord.y);
+ float e = 0.1; // edge feather
+ vec3 v = vec3(
+ smoothstep(.0, e, t) *
+ (1. - smoothstep(.5, .5 + e, t))
+ );
+ color.rgb = mix(color.rgb, background, v);
+
+ tools-tilecoords:
+ shaders:
+ blocks:
+ global: |
+ // Varying to be added to both vertex and fragment shaders
+ varying vec2 v_pos;
+ #ifdef TANGRAM_FRAGMENT_SHADER
+ vec2 TileCoords() {
+ return fract(v_pos);
+ }
+ #endif
+ position: |
+ v_pos = modelPosition().xy;
+
+ tools-aastep:
+ shaders:
+ extensions: OES_standard_derivatives
+ blocks:
+ global: |
+ float aastep(float threshold, float value) {
+ #ifdef TANGRAM_FRAGMENT_SHADER
+ #ifdef TANGRAM_EXTENSION_OES_standard_derivatives
+ float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;
+ return smoothstep(threshold - afwidth, threshold + afwidth, value);
+ #else
+ return step(threshold, value);
+ #endif
+ #else
+ return step(threshold, value);
+ #endif
+ }
+
+ tools-grid:
+ mix: tools-tilecoords
+ shaders:
+ blocks:
+ global: |
+ #ifdef TANGRAM_FRAGMENT_SHADER
+ bool grid(vec2 st, float res, float press) {
+ vec2 grid = fract(st * res);
+ return (grid.x < res * press) || (grid.y < res * press);
+ }
+ float TileGrid(float res) {
+ vec2 st = TileCoords() * 100. * res;
+ float pct = 0.0;
+ float press = 0.4 + (1.0 - fract(u_map_position.z)) * 0.1;
+ if (grid(st, 0.01, press)) { pct += 0.5; }
+ if (grid(st, 0.1, press)) { pct += 0.1; }
+ return pct;
+ }
+ float TileGrid() {
+ return mix(TileGrid(1.), TileGrid(2.), fract(u_map_position.z));
+ }
+ #endif
+
+ tools-grain:
+ shaders:
+ blocks:
+ global: |
+ // Grain
+ //=============================
+ float random(vec2 p) {
+ return fract(1e4 * sin(17.0 * p.x + p.y * 0.1) * (0.1 + abs(sin(p.y * 13.0 + p.x))));
+ }
+ float noise(vec2 x) {
+ vec2 i = floor(x);
+ vec2 f = fract(x);
+ float a = random(i);
+ float b = random(i + vec2(1.0, 0.0));
+ float c = random(i + vec2(0.0, 1.0));
+ float d = random(i + vec2(1.0, 1.0));
+ vec2 u = f * f * (3.0 - 2.0 * f);
+ return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;
+ }
+ float fbm(in vec2 p) {
+ float s = 0.0;
+ float m = 0.0;
+ float a = 0.5;
+ for(int i = 0; i < 2; i++ ) {
+ s += a * noise(p);
+ m += a;
+ a *= 0.5;
+ p *= 2.0;
+ }
+ return s/m;
+ }
+ float grain(vec2 pos) {
+ vec2 st = pos / u_resolution.xy - vec2(.5);
+ return dot(st, st) + (fbm(pos * 0.6) * 0.1);
+ }
+
+ grid:
+ base: polygons
+ mix: [tools-grain, tools-grid]
+ shaders:
+ blocks:
+ filter: |
+ color.rgb = vec3(0.899, 0.95, 1.0);
+ color.rgb -= grain(gl_FragCoord.xy) * 0.1;
+ color.rgb = mix(color.rgb, vec3(0.639, 0.886, 0.906), TileGrid());
+
+ water_border:
+ base: lines
+ texcoords: true
+ mix: tools-aastep
+ shaders:
+ blocks:
+ global: |
+ float pulse(float x, float p, float w) {
+ x = abs(x - p);
+ if (x > w) { return 0.0; }
+ x /= w;
+ return (1.0 - x * x * (3.0 - 2.0 * x));
+ }
+ width: |
+ // Comment/Uncomment to fix the line to the border
+ width *= 1.0 - v_texcoord.x;
+ color: |
+ vec2 st = v_texcoord.xy;
+ float pattern = aastep(.5, pulse(st.x, .75, .15) + pulse(st.x, .4, .10) + pulse(st.x, .1, .1));
+ color.rgb = mix(color.rgb, vec3(0.675,0.855,0.886), pattern);
+
+ shapes-circle:
+ shaders:
+ blocks:
+ global: |
+ // get distance field of a Circle
+ // ================================
+ float circleDF (vec2 st) {
+ return dot(st,st);
+ }
+
+ tiling-brick:
+ shaders:
+ blocks:
+ global: |
+ // Repeats a coordinate space (st) in diferent brick-like tiles
+ // ================================
+ vec2 brick(vec2 st, float zoom){
+ st *= zoom;
+ // Here is where the offset is happening
+ st.x += step(1., mod(st.y, 2.0)) * 0.5;
+ return fract(st);
+ }
+
+ pattern-dots:
+ mix: [tools-tilecoords, tiling-brick, shapes-circle, tools-aastep]
+ shaders:
+ blocks:
+ global: |
+ #ifdef TANGRAM_FRAGMENT_SHADER
+ float TileDots(float scale, float size) {
+ vec2 tc = TileCoords() * scale * pow(2., floor(u_map_position.z) - abs(u_tile_origin.z));
+ vec2 IN = brick(tc, 2.);
+ float A = circleDF(vec2(0.5) - IN) * 1.8;
+ float d = 0.0;
+ if (u_map_position.z < 18.) {
+ vec2 OUT = fract(tc * 2.);
+ float B = circleDF(vec2(0.25) - OUT) * 7.;
+ B = min(B, circleDF(vec2(0.75, 0.25) - OUT) * 7.);
+ B = min(B, circleDF(vec2(0.50, 0.75) - OUT) * 7.);
+ B = min(B, circleDF(vec2(0.00, 0.75) - OUT) * 7.);
+ B = min(B, circleDF(vec2(1.00, 0.75) - OUT) * 7.);
+ d = mix(A, B, pow(fract(u_map_position.z), 10.));
+ } else {
+ d = A;
+ }
+ return aastep(size, d);
+ }
+ #endif
+
+ dots2:
+ base: polygons
+ mix: pattern-dots
+ shaders:
+ blocks:
+ color: |
+ color.rgb = mix(color.rgb, vec3(0.850), TileDots(45., 0.1));
+ // size was set to 35 previously, now 45
+
+ dots-rev:
+ base: polygons
+ mix: pattern-dots
+ shaders:
+ blocks:
+ color: |
+ color.rgb = mix(vec3(0.850), color.rgb, TileDots(45., .21));
+
+ # HSV/RGB functions
+ hsv:
+ shaders:
+ blocks:
+ global: |
+ vec3 rgb2hsv(vec3 c)
+ {
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+ float d = q.x - min(q.w, q.y);
+ float e = 1.0e-10;
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+ }
+ vec3 hsv2rgb(vec3 c)
+ {
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+ }
+
+ scale-buildings:
+ shaders:
+ blocks:
+ position: |
+ // scale buildings based on zoom
+ float zoom = u_map_position.z;
+ float min = .1; // minimum building scale
+ float midpoint = 16.; // middle of zoom range
+ float inspeed = .1; // number of zooms to scale buildings up
+ float outspeed = 2.; // number of zooms to scale buildings back down
+ float e = 0.;
+
+ if (zoom >= midpoint) {
+ e = (zoom - midpoint) / (outspeed * .2);
+ } else {
+ e = abs(zoom - midpoint) / inspeed;
+ }
+ position.z *= ((1. - min) / (1. + (exp(e)))) + min;
+
+ building-grid:
+ base: polygons
+ lighting: false
+ mix: [hsv, scale-buildings]
+ texcoords: true
+ shaders:
+ uniforms:
+ u_tex_grid: building-grid
+ defines:
+ WALL_TINT: vec3(1., 3., .800)
+ blocks:
+ color: |
+ if (dot(vec3(0., 0., 1.), worldNormal()) < 1.0 - TANGRAM_EPSILON) {
+ // If it's a wall
+ color.rgb = hsv2rgb(rgb2hsv(color.rgb) * WALL_TINT);
+ color.rgb = mix(color.rgb, vec3(0.),
+ texture2D(u_tex_grid, v_texcoord).a);
+ }
+
+ # building-grid-univ:
+ # mix: building-grid
+ # shaders:
+ # defines:
+ # ROOF_COLOR: vec3(0.922,0.894,0.862)
+ # WALL_COLOR: vec3(0.658,0.617,0.576)
+
+ # building-grid-parks:
+ # mix: building-grid
+ # shaders:
+ # defines:
+ # ROOF_COLOR: vec3(0.847,0.886,0.882)
+ # WALL_COLOR: vec3(0.627,0.722,0.718)
+
+ # building-grid-hospital:
+ # mix: building-grid
+ # shaders:
+ # defines:
+ # ROOF_COLOR: vec3(0.941,0.894,0.898)
+ # WALL_COLOR: vec3(0.692,0.575,0.586)
+
+ # building-grid-retail:
+ # mix: building-grid
+ # shaders:
+ # defines:
+ # ROOF_COLOR: vec3(0.945,0.898,0.878)
+ # WALL_COLOR: vec3(0.725,0.694,0.678)
+
+ building-lines:
+ base: lines
+ mix: scale-buildings
+ texcoords: true
+ lines_transparent:
+ base: lines
+ blend: overlay
+ outline_transparent:
+ base: lines
+ blend: overlay
+ polygons_transparent:
+ base: polygons
+ blend: overlay
+ icons:
+ base: points
+ texture: pois
+ blend_order: 1
+ text-blend-order:
+ base: text
+ blend_order: 1
+ ux-route-line-overlay:
+ base: lines
+ blend: overlay
+ blend_order: 0
+ ux-transit-line-overlay:
+ base: lines
+ blend: overlay
+ blend_order: 0
+ ux-location-gem-overlay:
+ base: points
+ texture: pois
+ interactive: true
+ blend: overlay
+ blend_order: 2
+ ux-icons-overlay:
+ base: points
+ texture: pois
+ interactive: true
+ blend: overlay
+ blend_order: 3
+ sdk-point-overlay:
+ base: points
+ texture: pois
+ interactive: true
+ blend: overlay
+ blend_order: 3
+ sdk-line-overlay:
+ base: lines
+ blend: overlay
+ blend_order: 0
+ sdk-polygon-overlay:
+ base: polygons
+ blend: overlay
+ blend_order: 0
+
+scene:
+ background:
+ color: *scene1
+
+layers:
+ # Map overlays for styling the server response (using special source layer names) for route line, current location, and search result pins
+ mz_route_line:
+ data: { source: mz_route_line }
+ draw:
+ ux-route-line-overlay:
+ color: '#06a6d4'
+ order: 500
+ width: [[0,3.5px],[5,5px],[9,7px],[10,6px],[11,6px],[13,8px],[14,9px],[15,10px],[16,11px],[17,12px],[18,10px]]
+ mz_route_line_transit:
+ data: { source: mz_route_line_transit }
+ draw:
+ ux-transit-line-overlay:
+ # each transit route segment could be a different "line" each with it's own color
+ # but some transit lines don't define a color, in those cases default to blue
+ # and since the color is coming from Transit.land they call it "color" instead of "colour"
+ color: function() { return feature.color || '#06a6d4'; }
+ order: 500
+ width: [[0,3.5px],[5,5px],[9,7px],[10,6px],[11,6px],[13,8px],[14,9px],[15,10px],[16,11px],[17,12px],[18,10px]]
+ mz_current_location_gem:
+ data: { source: mz_current_location }
+ draw:
+ ux-location-gem-overlay:
+ interactive: true
+ sprite: ux-current-location
+ size: 36px
+ collide: false
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_route_location:
+ data: { source: mz_route_location }
+ draw:
+ ux-location-gem-overlay:
+ interactive: true
+ sprite: ux-route-arrow
+ size: [60px,60px]
+ collide: false
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_route_start:
+ data: { source: mz_route_start }
+ draw:
+ ux-icons-overlay:
+ interactive: true
+ priority: 1
+ sprite: ux-route-start
+ size: [36px,46px]
+ collide: false
+ anchor: top
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_route_destination:
+ data: { source: mz_route_destination }
+ draw:
+ ux-icons-overlay:
+ interactive: true
+ priority: 1
+ sprite: ux-route-stop
+ size: [36px,46px]
+ collide: false
+ anchor: top
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_route_transit_stop:
+ data: { source: mz_route_transit_stop }
+ draw:
+ ux-icons-overlay:
+ interactive: true
+ sprite: ux-transit-stop
+ size: [15px,15px]
+ collide: false
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_search_result:
+ data: { source: mz_search_result }
+ draw:
+ ux-icons-overlay:
+ interactive: true
+ sprite: ux-search-active
+ size: [36px,54px]
+ collide: false
+ anchor: top
+ transition:
+ [show, hide]:
+ time: 0s
+ inactive:
+ filter: { state: inactive }
+ draw:
+ ux-icons-overlay:
+ sprite: ux-search-inactive
+ mz_dropped_pin:
+ data: { source: mz_dropped_pin }
+ draw:
+ ux-icons-overlay:
+ interactive: true
+ sprite: ux-search-active
+ size: [36px,54px]
+ collide: false
+ anchor: top
+ transition:
+ [show, hide]:
+ time: 0s
+
+ # Used by the SDK to place point, line, and polygon overlays on the map
+ mz_default_point:
+ data: { source: mz_default_point }
+ draw:
+ sdk-point-overlay:
+ interactive: true
+ sprite: ux-search-active
+ size: [36px,54px]
+ collide: false
+ anchor: top
+ transition:
+ [show, hide]:
+ time: 0s
+ mz_default_line:
+ data: { source: mz_default_line }
+ draw:
+ sdk-line-overlay:
+ color: '#06a6d4'
+ order: 503
+ width: 3px
+ mz_default_polygon:
+ data: { source: mz_default_polygon }
+ draw:
+ sdk-polygon-overlay:
+ color: [0.02,0.65,0.82,0.5] #'#06b1e2'
+ order: 501
+ sdk-line-overlay:
+ color: '#06a6d4'
+ order: 502
+ width: 0px
+
+ # Basemap styling
+ earth:
+ data: { source: osm, layer: earth }
+ draw:
+ polygons:
+ order: function() { return feature.sort_key; }
+ color: [0.870,0.870,0.870]
+
+ water:
+ data: { source: osm, layer: water }
+ draw:
+ grid:
+ order: function() { return feature.sort_key; }
+ #color: *water1
+ ocean:
+ filter:
+ kind: ocean
+ draw:
+ grid:
+ color: *water1
+ inland-water:
+ filter:
+ all:
+ - kind: [lake, water, riverbank, reservoir, swimming_pool]
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 1 }, area: { min: 40000000000 } }
+ - { $zoom: { min: 2 }, area: { min: 20000000000 } }
+ # some weird natural earth scale set transition
+ - { $zoom: { min: 3 }, area: { min: 80000000000 } }
+ - { $zoom: { min: 4 }, area: { min: 5000000000 } }
+ - { $zoom: { min: 5 }, area: { min: 700000000 } }
+ - { $zoom: { min: 6 }, area: { min: 500000000 } }
+ - { $zoom: { min: 7 }, area: { min: 160000000 } }
+ - { $zoom: { min: 8 }, area: { min: 40000000 } }
+ - { $zoom: { min: 9 }, area: { min: 10000000 } }
+ - { $zoom: { min: 10 }, area: { min: 8000000 } }
+ - { $zoom: { min: 11 }, area: { min: 2000000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 2000 } }
+ - { $zoom: { min: 15 } }
+ draw:
+ grid:
+ color: *water1
+ other-water-areas:
+ filter: { not: { kind: [ocean, lake, water, reservoir, playa, swimming_pool] }, $zoom: { min: 11 }, area: { min: 100 } }
+ draw:
+ grid:
+ color: *water1
+ playas:
+ filter: { kind: playa, $zoom: {min: 6} }
+ draw:
+ polygons:
+ order: function() { return feature.sort_key; }
+ color: [0.870,0.870,0.870]
+ water-boundary-ocean-early:
+ filter: { boundary: yes, kind: ocean, $zoom: {min: 1, max: 17} }
+ draw:
+ line2:
+ style: lines
+ order: function() { return feature.sort_key; }
+ color: [[9,[0.396,0.833,0.920]],[10,[0.886,0.937,0.988]]]
+ width: [[9,0.25px],[10,2px],[11,3px],[13,4px],[15,6px]]
+ lines:
+ order: 240
+ color: [[1,[0.698,0.800,0.820]],[11,[0.631,0.773,0.800]],[14,[0.543,0.740,0.780]]]
+ width: [[1,0.25px],[6,0.5px],[7,0.75px],[9,0.75px],[10,1px]]
+ water-boundary-ocean-late:
+ filter: { boundary: yes, kind: ocean, $zoom: {min: 17} }
+ draw:
+ water_border:
+ order: 240
+ color: [[0,[0.886,0.937,0.988]]]
+ width: 20px
+ water_boundaries-not-ocean:
+ filter: { boundary: yes, not: { kind: ocean }, $zoom: { min: 8 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ # color: [[8,[0.635,0.737,0.753]],[13,[0.635,0.737,0.753]],[14,[0.569,0.722,0.749]],[15,[0.397,0.743,0.809]]]
+ color: [[8,[0.749,0.831,0.867]],[12,[0.698,0.788,0.816]],[13,[0.698,0.784,0.812]],[14,[0.627,0.788,0.831]],[17,[0.643,0.824,0.851]]]
+ width: [[8,0.5px],[10,0.5px],[11,0.5px],[12,0.75px],[13,1px],[14,1px],[15,1px],[16,1px],[17,1px]]
+ join: round
+ outline:
+ color: [0.886,0.937,0.988]
+ #width: [[9,0px],[10,1.5px],[11,1px],[12,1.5px],[13,1.6px],[14,2px],[15,2px],[16,3px],[18,4px]]
+ width: [[11,0px],[12,1.2px],[13,1.6px],[14,2px],[15,2px],[16,3px],[18,4px]]
+ early:
+ filter: { $zoom: { min: 14 } }
+ draw:
+ lines:
+ order: 241
+ riverbank:
+ # river boundaries like the thames in london, la seine in paris
+ filter: { kind: riverbank }
+ draw:
+ lines:
+ color: [[8,[0.667,0.792,0.824]],[11,[0.698,0.808,0.835]],[13,[0.710,0.796,0.824]],[14,[0.522,0.792,0.855]]]
+ width: [[9,0.5px],[10,0.75px],[11,0.75px],[12,0.8px],[13,1px],[14,1px],[15,1px],[16,1px],[17,1.5px]]
+ river:
+ #river center lines, not boundaries for polygons
+ filter: { kind: [river,canal,stream,dam,ditch,drain], $zoom: { min: 11 }, not: { is_tunnel: true } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ color: [[11,[0.753,0.820,0.835]],[12,[0.710,0.800,0.824]],[13,[0.886,0.937,0.988]]]
+ width: [[8,0px],[10,0px],[11,0.75px],[12,1px],[13,1px],[14,2px],[15,3px],[16,4px],[17,5px]]
+ join: round
+ outline:
+ color: [[11,[0.671,0.788,0.812]],[13,[0.710,0.800,0.824]],[14,[0.635,0.812,0.843]]]
+ width: [[9,0px],[11,0px],[12,0px],[13,0.5px],[14,0.75px],[15,0.75px],[16,0.75px],[17,1px]]
+
+ subway-light-rail:
+ data: { source: osm, layer: transit }
+ filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
+ draw:
+ lines:
+ interactive: true
+ order: function() { return feature.sort_key || 275; }
+ railway:
+ filter: { kind: [railway,train] }
+ draw:
+ lines:
+ color: [0.588,0.671,0.698]
+ width: [[14,0.4px],[15,0.75px],[16,1.1px],[18,2px],[19,1m]]
+ subway:
+ filter: { kind: subway }
+ draw:
+ lines:
+ color: [0.588,0.671,0.698]
+ width: [[14,0.4px],[15,0.75px],[16,1.3px],[17,1.5px],[18,2m]]
+ light_rail:
+ filter: { kind: [light_rail,tram], $zoom: { min: 15 } }
+ draw:
+ lines:
+ order: 415
+ color: [0.588,0.671,0.698]
+ width: [[14,0px],[15,0.6px],[16,0.75px],[17,1.5px],[19,1m]]
+
+ railway-late:
+ data: { source: osm, layer: roads }
+ filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
+ draw:
+ lines:
+ interactive: true
+ order: function() { return feature.sort_key; }
+ color: [0.588,0.671,0.698]
+ width: [[12,0px],[13,0.25px],[14,0.4px],[15,0.75px],[16,0.75px],[18,1m]]
+ service:
+ filter: { service: true }
+ draw:
+ lines:
+ color: [0.588,0.671,0.698]
+ width: [[14,0px],[15,0.3px],[16,0.5px],[18,0.75px],[19,0.5m]]
+ z-order:
+ #filter: { $zoom: {min: 12} }
+ draw:
+ lines:
+ # let roads sort themselves past zoom 14
+ order: function() { return feature.sort_key; }
+ # but give them all the same outline
+ outline:
+ order: 354
+
+ bridges-tunnels:
+ filter: { any: [is_bridge: yes, is_tunnel: yes] }
+ draw:
+ lines:
+ outline:
+ # except bridges and tunnels, their outlines should also self-sort
+ order: function() { return feature.sort_key || 305; }
+
+ platforms:
+ data: { source: osm, layer: transit }
+ filter: { kind: platform }
+ draw:
+ lines_transparent:
+ color: [0.569,0.690,0.722,0.5]
+ width: 5m
+ visible: *grey9_v
+ polygon_geom:
+ filter: { $geometry: polygon }
+ draw:
+ polygons_transparent:
+ color: [0.592,0.671,0.694,0.5]
+ visible: *grey9_v
+ lines_transparent:
+ visible: false
+ outline_transparent:
+ color: *grey9_o
+ width: [[16,0px],[17,0.5px],[19,2px]]
+ z-order:
+ draw:
+ lines_transparent:
+ order: function() { if($zoom<17) { return feature.sort_key; } else { return 435; } }
+ polygons_transparent:
+ order: function() { if($zoom<17) { return feature.sort_key; } else { return 435; } }
+ outline_transparent:
+ order: function() { if($zoom<17) { return feature.sort_key; } else { return 436; } }
+
+ roads:
+ data: { source: osm, layer: roads }
+ filter: { not: { kind: rail } }
+ draw:
+ lines:
+ interactive: true
+ # let roads sort themselves past zoom 14 (using server value)
+ order: function() { return feature.sort_key; }
+ # but give them all the same outline
+ outline:
+ order: 352
+ text-blend-order:
+ visible: false # labels are enabled by each layer below
+ font:
+ family: *text_font_family
+ weight: 400
+ fill: *text_fill
+
+ natural_earth_highways:
+ filter: { source: 'naturalearthdata.com' }
+ draw:
+ lines:
+ # Perf impact (too many vertices)
+ #cap: round
+ #join: round
+ color: *highway1
+ width: [[5, 1px], [7, 1.4px], [9, 1.5px], [14, 3px], [16, 4px], [17, 10m]]
+ major_road:
+ filter: { type: ['Secondary Highway','Road'] }
+ draw:
+ lines:
+ color: [0.980,0.601,0.559]
+ width: [[5, 0.45px], [6, 0.75px], [7, 1.0px], [8, 1px]]
+ minor_road:
+ filter: { type: 'Unknown' }
+ draw:
+ lines:
+ color: [[12, *minor_road1], [17, *minor_road2]]
+ width: [[12, 1.0px], [14, 1.5px], [15, 3px], [16, 5m]]
+ ferry:
+ filter: { kind: Ferry }
+ draw:
+ lines:
+ color: [0.702,0.843,0.933]
+ width: 1px
+ highway:
+ filter: { kind: highway }
+ draw:
+ lines:
+ color: [[8, *highway1], [14, *highway1], [15, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ width: [[8, 1px], [9, 1.25px], [11, 1.2px], [12, 1.3px], [13, 1.5px], [14, 2.25px], [15, 0.15px], [16, 5.5px], [17, 12m]]
+ outline:
+ color: [[11, *highway_casing1], [15,[0.988,0.495,0.439]], [17, [0.988,0.495,0.439]]]
+ width: [[11, 0], [12, 1px], [13, 1.33px], [15, 2px], [16, 2.25px], [17, 3px], [18, 3px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ outline:
+ order: 353
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ color: [[9, *highway_link1], [14, *highway_link1], [15, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ width: [[9, 0px], [11, 0.5px], [13, 1px], [14, 1px], [15, 0.15px], [16, 3px], [17, 4m], [18, 5m]]
+ cap: butt
+ outline:
+# order: 355
+ color: [[10, *highway_casing1], [16, [0.988,0.495,0.439]], [17, [0.988,0.495,0.439]]]
+ width: [[14, 0px], [15, 0.85px], [17, 1.125px], [18, 1.5px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: 352
+ tunnel-link:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *highway_tunnel1
+ outline:
+ color: *highway_tunnel_casing1
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ # color: [[16, [0.843,0.843,0.843]]]
+ color: [[16, [0.85,0.85,0.85]]]
+ outline:
+ color: [[13, [0.890,0.890,0.890]], [14, [0.870,0.870,0.870]], [16, [0.824,0.753,0.741]]]
+ highway_bridge:
+ filter: {is_bridge: yes}
+ draw:
+ lines:
+ cap: round
+ outline:
+ cap: butt
+ labels-highway-early:
+ filter: { $zoom: [7,8,9] }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 9px
+ stroke: { color: [0.976,0.541,0.490], width: 3 }
+ labels-highway-z10:
+ filter:
+ $zoom: 10
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 10px
+ stroke: { color: [0.976,0.541,0.490], width: 3 }
+ labels-highway-z11:
+ filter:
+ $zoom: 11
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 11px
+ stroke: { color: [0.976,0.541,0.490], width: 3 }
+ labels-highway-z12:
+ filter:
+ $zoom: 12
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 12px
+ stroke: { color: [0.976,0.541,0.490], width: 3 }
+ labels-highway-z13:
+ filter:
+ $zoom: 13
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ weight: 600
+ size: 12px
+ # stroke: { color: [0.976,0.541,0.490], width: 4 }
+ labels-highway-z14:
+ filter:
+ $zoom: 14
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ weight: 600
+ size: 13px
+ # stroke: { color: [0.976,0.541,0.490], width: 4 }
+ labels-highway-z15:
+ filter:
+ $zoom: 15
+ draw:
+ text-blend-order:
+ visible: *text_visible_highway
+ font:
+ fill: [0.0,0.0,0.0]
+ weight: 600
+ size: 15px
+ stroke: { color: [1.000,1.000,1.000], width: 2 }
+ labels-highway-z16:
+ filter: { $zoom: { min: 16, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 16px
+ stroke: { color: [1.000,1.000,1.000], width: 4 }
+ labels-highway-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 17px
+ stroke: { color: [1.000,1.000,1.000], width: 4 }
+
+ major_road:
+ filter: { kind: major_road }
+ # default style
+ draw:
+ lines:
+ color: [[8, *major_road4], [13, *major_road2], [17, *major_road1]]
+ width: [[13, 0px], [14, 2px], [16, 2.5px], [19, 8m]]
+ trunk_primary:
+ filter: { highway: [trunk, primary] }
+ draw:
+ lines:
+ color: [1.0,1.0,1.0]
+ width: [[9, 0.5px], [10, 0.5px], [11, 1.0px], [12, 1.0px], [13, 1.5px], [14, 2.5px], [15, 5px], [16, 10m], [17, 10m]]
+ outline:
+ color: [[13, [0.827,0.827,0.827]], [15, [1.000,0.739,0.710]]]
+ # todo: investigate width optimizations
+ width: [[14, 0px], [15, 1.75px], [16, 2px], [17, 3px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: function() { return feature.sort_key + 2; }
+ primary:
+ filter: { kind: [primary] }
+ draw:
+ lines:
+ outline:
+ order: function() { return feature.sort_key + 1; }
+ routes:
+ filter: { ref: true }
+ draw:
+ lines:
+ color: [[9,*major_route1], [14,*major_route1], [15,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]]]
+ #order: function() { return feature.sort_key + 1; }
+ # todo confirm widths
+ width: [[9, 1.0px], [10, 1.0px], [11, 1.2px], [12, 1.25px], [13, 1.5px], [14, 1.6px], [15, 0.15px], [16, 5.25px], [17, 12m]]
+ outline:
+ color: [[13, [0.870,0.870,0.870]], [15, [0.976,0.612,0.573]]]
+ width: [[13, 0], [15, 2px], [16, 2px], [17, 3px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 2; }
+ outline:
+ order: 353
+ # no national-routes layer because it's not different than the basic style
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *major_tunnel1
+ outline:
+ color: *major_tunnel_casing1
+ width: [[13, 0.5px], [15, 2px], [16, 2px], [17, 3px]]
+ labels-trunk_primary-route-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e2
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 13px
+ stroke: { color: [0.95,0.95,0.95], width: 0.1px }
+ labels-trunk_primary-route-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ weight: 600
+ size: 15px
+ stroke: { color: [0.95,0.95,0.95], width: 0.1px }
+ labels-trunk_primary-route-z16:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ weight: 600
+ size: 16px
+ stroke: { color: [1.000,1.000,1.000], width: 4px }
+ labels-trunk_primary-z11:
+ filter:
+ $zoom: [11]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.4,0.4,0.4]
+ size: 10px
+ # stroke: { color: [1.000,0.631,0.590], width: 3 }
+ labels-trunk_primary-z12:
+ filter:
+ $zoom: [12]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.4,0.4,0.4]
+ size: 11px
+ # stroke: { color: [1.000,0.631,0.590], width: 3 }
+ labels-trunk_primary-z13:
+ filter:
+ $zoom: [13]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 12px
+ stroke: { color: *text_stroke, width: 2 }
+ labels-trunk_primary-z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.10,0.10,0.10]
+ size: 13px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-trunk_primary-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 14px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ labels-trunk_primary-z16:
+ filter: { $zoom: [16] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 15px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ labels-trunk_primary-z17:
+ filter: { $zoom: [17] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 16px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ labels-trunk_primary-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 17px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ width: [[9, 0px], [10, 0.5px], [14, 2px], [16, 4m], [17, 5m], [18, 6m]]
+ outline:
+ color: [[10, [0.827,0.827,0.827]], [13, [0.827,0.827,0.827]], [15, [1.000,0.739,0.710]]]
+ width: [[10, 0], [11, 1px], [14, 1px], [16, 1.5px], [17, 2px]]
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *major_tunnel1
+ outline:
+ color: *major_tunnel_casing1
+ secondary:
+ filter: { highway: secondary }
+ draw:
+ lines:
+ color: [1.0,1.0,1.0]
+ width: [[11, 0.65px], [12, 0.75px], [13, 1.25px], [14, 2px], [15, 5px], [16, 10m], [17, 10m]]
+ outline:
+ color: [[15, [1.000,0.739,0.710]]]
+ width: [[14, 0], [15, 1.75px], [16, 2px], [17, 3px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: 353 #function() { return feature.sort_key + 2; }
+ routes:
+ filter: { ref: true, $zoom: { min: 12} }
+ draw:
+ lines:
+ #order: function() { return feature.sort_key + 2; }
+ color: [1.0,1.0,1.0]
+ width: [[11, 0.65px], [12, 0.75px], [13, 1.25px], [14, 2px], [15, 5px], [16, 12m], [17, 12m]]
+ outline:
+ color: [0.827,0.827,0.827]
+ width: [[14, 0px], [15, 1.75px], [16, 2px], [17, 3px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 2; }
+ outline:
+ order: 353
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *major_tunnel1
+ outline:
+ color: *major_tunnel_casing1
+ labels-secondary-routes:
+ filter: { $zoom: [13] }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ # need fill here?
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-routes-z15:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ # need fill here?
+ weight: 600
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ lines:
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [[14, [0.800,0.851,0.847]], [15, [0.678,0.796,0.792]]]
+ width: [[12, 0px], [13, 0.5px], [14, 1.0px], [15, 1.0px], [16, 1.5px], [18, 3.0px]]
+ golf_course:
+ filter: { landuse_kind: golf_course }
+ draw:
+ lines:
+ outline:
+ color: [0.757,0.839,0.788]
+ nature_reserve:
+ filter: { landuse_kind: nature_reserve }
+ draw:
+ lines:
+ outline:
+ color: [0.635,0.819,0.742]
+ conservation:
+ filter: { landuse_kind: conservation }
+ draw:
+ lines:
+ outline:
+ color: orange
+ zoo:
+ filter: { landuse_kind: zoo }
+ draw:
+ lines:
+ outline:
+ color: pink
+ labels-secondary-z13:
+ filter:
+ $zoom: [13]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.5,0.5,0.5]
+ size: 11px
+ stroke: { color: *text_stroke, width: 2 }
+ labels-secondary-z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-secondary-z15:
+ filter:
+ $zoom: [15]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.10,0.10,0.10]
+ size: 13px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-secondary-z16:
+ filter: { $zoom: { min: 16, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.0,0.0,0.0]
+ size: 14.5px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ labels-secondary-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ # need a fill color here?
+ fill: [0.15,0.15,0.15]
+ size: 16px
+ stroke: { color: [1.00,1.00,1.00], width: 3 }
+ tertiary:
+ filter: { highway: [tertiary, tertiary_link] }
+ draw:
+ lines:
+ color: [1.0,1.0,1.0]
+ width: [[11, 0.5px], [12, 0.5px], [13, 0.65px], [14, 1.0px], [15, 2px], [16, 8m], [19, 10m]]
+ outline:
+ color: [0.827,0.827,0.827]
+ # todo: look at zoom 13 width
+ width: [[15, 0], [16, 1.0px], [18, 3.5px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: function() { return feature.sort_key + 3; }
+ routes:
+ filter: { ref: true, $zoom: { min: 12} }
+ draw:
+ lines:
+ color: [1.0,1.0,1.0]
+ width: [[11, 0.5px], [12, 0.5px], [13, 0.65px], [14, 1.0px], [15, 2px], [16, 8m], [19, 10m]]
+ outline:
+ color: [0.827,0.827,0.827]
+ width: [[15, 0], [16, 1.0px], [18, 3.5px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 3; }
+ outline:
+ order: 353
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *major_tunnel1
+ outline:
+ color: *major_tunnel_casing1
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ color: *major_road1
+ width: [[10, 0.5px], [14, 2px], [16, 4m], [17, 5m], [18, 6m]]
+ outline:
+ color: [[12,*major_casing2]]
+ width: [[12, 0], [14, 1px], [16, 1.5px], [17, 2px]]
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ lines:
+ #width: [[11, 0.0px], [12, .5px], [14, 1.5px], [16, 2.0px], [19, 7m]]
+ color: [[12, [0.9,0.9,0.9]], [13, [0.9,0.9,0.9]], [14, [0.98,0.98,0.98]]]
+ outline:
+ color: [[14, [0.800,0.851,0.847]], [15, [0.678,0.796,0.792]]]
+ width: [[12, 0px], [13, 0.5px], [14, 1.0px], [15, 1.0px], [16, 1.5px], [18, 3.0px]]
+ golf_course:
+ filter: { landuse_kind: golf_course }
+ draw:
+ lines:
+ outline:
+ color: [0.698,0.835,0.765]
+ nature_reserve:
+ filter: { landuse_kind: nature_reserve }
+ draw:
+ lines:
+ outline:
+ color: [0.635,0.819,0.742]
+ conservation:
+ filter: { landuse_kind: conservation }
+ draw:
+ lines:
+ outline:
+ color: orange
+ zoo:
+ filter: { landuse_kind: zoo }
+ draw:
+ lines:
+ outline:
+ color: pink
+ labels-tertiary-z13:
+ filter: { $zoom: [13] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.5,0.5,0.5]
+ size: 10px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ labels-tertiary-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.5,0.5,0.5]
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ labels-tertiary-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.3,0.3,0.3]
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ labels-tertiary-z16:
+ filter: { $zoom: [16] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.3,0.3,0.3]
+ size: 14px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-tertiary-z17:
+ filter: { $zoom: { min: 17, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.15,0.15,0.15]
+ size: 15px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-tertiary-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.15,0.15,0.15]
+ size: 15px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ minor_road:
+ filter: { kind: minor_road, not: { highway: service, aeroway: [runway, taxiway] } }
+ draw:
+ lines:
+ color: [[12, [0.9,0.9,0.9]], [13, [0.9,0.9,0.9]], [14, [1.0,1.0,1.0]]]
+ width: [[12, 0.65px], [13, 0.75px], [14, 0.85px], [15, 2px], [16, 8m], [17, 9m]]
+ # todo look at when color starts (z11 not z12) and width changes
+ #width: [[11, 0.5px], [12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.5px], [16, 8m]]
+ outline:
+ color: [0.843,0.843,0.843]
+ width: [[15, 0], [16, 2px], [17, 3px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 350
+ outline:
+ order: 351
+ # Is this junk code?
+ round:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ lines:
+ cap: round
+ join: round
+
+ in_park:
+ filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm] }
+ draw:
+ lines:
+ #todo: is the width here right?
+ #width: [[11, 0.5px], [12, 1.0px], [13, 1.2px], [14, 1.75px], [15, 2.5px], [16, 8m]]
+ color: [[12, [0.9,0.9,0.9]], [13, [0.96,0.96,0.96]], [14, [1.0,1.0,1.0]]]
+ outline:
+ color: [[14, [0.800,0.851,0.847]], [15, [0.678,0.796,0.792]]]
+ #todo: is the width here right?
+ width: [[13, 0px], [14, 0.25px], [17, 2.0px], [18, 4.0px]]
+ golf_course:
+ filter: { landuse_kind: golf_course }
+ draw:
+ lines:
+ outline:
+ color: [0.757,0.839,0.788]
+ nature_reserve:
+ filter: { landuse_kind: nature_reserve }
+ draw:
+ lines:
+ outline:
+ color: [0.635,0.819,0.742]
+ conservation:
+ filter: { landuse_kind: conservation }
+ draw:
+ lines:
+ outline:
+ color: orange
+ zoo:
+ filter: { landuse_kind: zoo }
+ draw:
+ lines:
+ outline:
+ color: pink
+
+ # in_residential:
+ # filter: { landuse_kind: residential }
+ # draw:
+ # lines:
+ # outline:
+ # color: red
+ in_university:
+ filter: { landuse_kind: university }
+ draw:
+ lines:
+ color: [[12, [0.9,0.9,0.9]], [13, [0.96,0.96,0.96]], [14, [1.0,1.0,1.0]]]
+ outline:
+ color: [0.806,0.763,0.717]
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+ in_hospital:
+ filter: { landuse_kind: hospital }
+ draw:
+ lines:
+ color: [[12, [0.9,0.9,0.9]], [13, [0.96,0.96,0.96]], [14, [1.0,1.0,1.0]]]
+ outline:
+ color: [0.818,0.702,0.713]
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: [0.870,0.870,0.870]
+ outline:
+ color: [0.790,0.790,0.790]
+ minor_road_bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ cap: round
+ outline:
+ cap: butt
+ labels-minor_road-z15:
+ filter: { $zoom: 15 }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ labels-minor_road-z16:
+ filter: { $zoom: 16 }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.35,0.35,0.35]
+ size: 14px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-minor_road-z17:
+ filter: { $zoom: { min: 17, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 14px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-minor_road-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road
+ text_source: name
+ font:
+ # needs a fill color?
+ fill: [0.15,0.15,0.15]
+ size: 15px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ service_road:
+ filter: { kind: minor_road, highway: service }
+ draw:
+ lines:
+ color: [[12, [0.9,0.9,0.9]], [14, [0.9,0.9,0.9]], [15, [1.0,1.0,1.0]]]
+ # todo: consider starting at z13 with 0.5px
+ width: [[12, 0.65px], [13, 0.75px], [14, 0.85px], [15, 1.25px], [16, 2.0px], [18, 6m]]
+ outline:
+ color: [0.827,0.827,0.827]
+ width: [[15, 0px], [16, 0.5px], [17, 1.0px], [18, 1.75px]]
+ in_park:
+ filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ lines:
+ #todo: is the color necc here?
+ color: [0.976,0.976,0.976]
+ outline:
+ color: [[14, [0.800,0.851,0.847]], [15, [0.678,0.796,0.792]]]
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+ golf_course:
+ filter: { landuse_kind: golf_course }
+ draw:
+ lines:
+ outline:
+ color: [0.698,0.835,0.765]
+ nature_reserve:
+ filter: { landuse_kind: nature_reserve }
+ draw:
+ lines:
+ outline:
+ color: [0.635,0.819,0.742]
+ conservation:
+ filter: { landuse_kind: conservation }
+ draw:
+ lines:
+ outline:
+ color: orange
+ zoo:
+ filter: { landuse_kind: zoo }
+ draw:
+ lines:
+ outline:
+ color: pink
+ in_cemetery_garden:
+ filter: { landuse_kind: [cemetery,garden] }
+ draw:
+ lines:
+ outline:
+ color: [0.737,0.816,0.753]
+ # todo: consider starting z13 with 0.25px
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+ in_university:
+ filter: { landuse_kind: university }
+ draw:
+ lines:
+ #todo: is this necc here?
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [0.806,0.763,0.717]
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+ in_hospital:
+ filter: { landuse_kind: hospital }
+ draw:
+ lines:
+ #todo: is this necc here?
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [0.818,0.702,0.713]
+ width: [[13, 0px], [14, 0.5px], [17, 2.0px], [18, 4.0px]]
+ labels-service_road:
+ filter: { $zoom: 17 }
+ draw:
+ text-blend-order:
+ priority: 57
+ visible: *text_visible_service_road
+ text_source: name
+ font:
+ # need fill color?
+ fill: [0.25,0.25,0.25]
+ size: 13px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ labels-service_road-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 57
+ visible: *text_visible_service_road
+ text_source: name
+ font:
+ # need fill color?
+ fill: [0.15,0.15,0.15]
+ size: 14px
+ stroke: { color: [1.00,1.00,1.00], width: 2 }
+ path:
+ filter:
+ all:
+ - kind: [path,portage_way]
+ not:
+ - highway: [steps, track]
+ - man_made: [pier]
+ draw:
+ lines:
+ color: [[14, [0.97,0.97,0.97]],[16,[0.96,0.96,0.96]]]
+ width: [[14, 0.6px], [16, 1px], [17, 2.5m]]
+ outline:
+ color: [0.799,0.799,0.799]
+ width: [[14, 0], [16, 0.5px], [18, 3px]]
+ pedestrian:
+ filter: { highway: pedestrian }
+ draw:
+ lines:
+ color: [[13, [0.97,0.97,0.97]], [16,[0.96,0.96,0.96]]]
+ width: [[13, 1.5], [15, 1.5], [17, 3m]]
+ outline:
+ color: [0.799,0.799,0.799]
+ width: [[17, 0.5], [18, 1]]
+ bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ color: [[15, [1.0,1.0,1.0]], [18, [1.0,1.0,1.0]]]
+ width: [[15, 1.5px], [16, 4m], [17, 2m], [18, 2m]]
+ cap: round
+ outline:
+ color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
+ width: [[15, 0px], [16, 1.0px], [18, 3px]]
+ cap: butt
+ in_park:
+ # should `forest` and `wood` be included?
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ lines:
+ color: [[14,white], [16,white], [17, [0.95,0.95,0.95]]]
+ outline:
+ color: [[16, [0.725,0.847,0.847]], [17, [0.663,0.847,0.843]]]
+ width: [[15, 0px], [16, 0.5px], [18, 3px]]
+ golf_course:
+ filter: { landuse_kind: golf_course }
+ draw:
+ lines:
+ outline:
+ color: [0.698,0.835,0.765]
+ nature_reserve:
+ filter: { landuse_kind: nature_reserve }
+ draw:
+ lines:
+ outline:
+ color: [0.635,0.819,0.742]
+ conservation:
+ filter: { landuse_kind: conservation }
+ draw:
+ lines:
+ outline:
+ color: orange
+ in_cemetery_garden:
+ filter: { landuse_kind: [cemetery,garden] }
+ draw:
+ lines:
+ outline:
+ color: [0.737,0.816,0.753]
+ width: [[15, 0px], [16, 0.5px], [18, 3px]]
+ in_zoo:
+ filter: { landuse_kind: zoo }
+ draw:
+ lines:
+ outline:
+ color: [0.708,0.881,0.831]
+ width: [[15, 0px], [16, 0.5px], [18, 3px]]
+ in_university:
+ filter: { landuse_kind: university }
+ draw:
+ lines:
+ color: [[14, [0.97,0.97,0.97]], [16,[0.96,0.96,0.96]]]
+ outline:
+ color: [0.806,0.763,0.717]
+ # todo: consider starting 14 at 0px so z15 has a little width
+ width: [[15, 0px], [16, 0.5px], [18, 3px]]
+ in_hospital:
+ filter: { landuse_kind: hospital }
+ draw:
+ lines:
+ color: [[14,[0.90,0.90,0.90]],[16,[0.96,0.96,0.96]]]
+ outline:
+ color: [0.847,0.788,0.796]
+ # todo: consider starting 14 at 0px so z15 has a little width
+ width: [[15, 0px], [16, 0.5px], [18, 3px]]
+ labels-path:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ text_source: name
+ font:
+ # need a fill color?
+ fill: [0.25,0.25,0.25]
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ track:
+ filter: { kind: path, highway: track }
+ draw:
+ lines:
+ color: [[13, *minor_road4], [15, *minor_road3]]
+ width: [[13, 0.5px], [14, 1.0px], [15, 1.0px], [16, 6m]]
+ #color: [[13,*minor_road4],[16,*minor_road3]]
+ #width: [[13, 1.0], [15, 1.5], [17, 3m]]
+ cap: butt
+ join: round
+ outline:
+ order: 354
+ color: *minor_casing1
+ width: [[15, 0px], [16, 0.5px], [17, 1.0px], [18, 2.0px]]
+ bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ width: [[15, 3.5], [17, 3m]]
+ cap: round
+ outline:
+ color: [[15,*minor_casing2],[16,*minor_casing1]]
+ width: [[15, 0.5px], [16, 1.0px], [18, 2px]]
+ cap: butt
+ in_park:
+ filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ lines:
+ width: [[13, 0.5px], [14, 0.5px], [15, 1.0px], [16, 6m]]
+ outline:
+ color: [[16,*green1_r],[17,*major_casing1]]
+ width: [[15, 0px], [16, 0.25px], [17, 0.5px], [18, 1.0px], [19, 2.0px]]
+ steps:
+ filter:
+ all:
+ - kind: path
+ - highway: steps
+ draw:
+ dashedline:
+ order: function() { return feature.sort_key; }
+ color: [0.97,0.97,0.97]
+ width: [[14,0.6px],[16,2px],[17,4px],[18,5px],[19,8px],[20,10px]]
+ outline:
+ color: [0.867,0.867,0.867]
+ width: 2px
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ dashedline:
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [0.867,0.867,0.867]
+ in_university:
+ filter: { landuse_kind: university }
+ draw:
+ dashedline:
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [0.867,0.867,0.867]
+ in_hospital:
+ filter: { landuse_kind: hospital }
+ draw:
+ dashedline:
+ color: [1.0,1.0,1.0]
+ outline:
+ color: [0.867,0.867,0.867]
+ labels-steps:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 59
+ visible: *text_visible_steps
+ text_source: name
+ font:
+ # need fill color?
+ size: 12px
+ stroke: { color: [1.00,1.00,1.00], width: 1 }
+ winter_sport_pistes:
+ filter: { kind: piste }
+ draw:
+ lines:
+ order: 388 # We override the server value here because Eraser Map is also a special Ski Map
+ cap: round
+ join: round
+ color: '#909090'
+ width: [[13,0px],[14,0.5px],[15, 1px], [16, 1.5px], [18, 3m]]
+ text-blend-order:
+ priority: 18
+ visible: true
+ font:
+ fill: *text_fill_piste
+ size: 12px
+ stroke: { color: *grey8, width: 4 }
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ text-blend-order:
+ visible: false
+ early-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ font:
+ fill: *text_fill_piste_e
+ size: 11px
+ easy:
+ filter: { piste_difficulty: easy }
+ draw:
+ lines:
+ color: *piste_easy
+ intermediate:
+ filter: { piste_difficulty: intermediate }
+ draw:
+ lines:
+ color: *piste_intermediate
+ advanced:
+ filter: { piste_difficulty: advanced }
+ draw:
+ lines:
+ color: *piste_advanced
+ text-blend-order:
+ text_source: function() { if( feature.name ){ return '◆ ' + feature.name; } else { return '◆'; } }
+ expert:
+ filter: { piste_difficulty: expert }
+ draw:
+ lines:
+ color: *piste_expert
+ text-blend-order:
+ text_source: function() { if( feature.name ){ return '◆◆ ' + feature.name; } else { return '◆◆'; } }
+ pier:
+ filter: { kind: path, man_made: pier }
+ draw:
+ lines:
+ color: [0.993,0.993,0.993]
+ width: [[13, 0px], [14, 0.5px],[15, 1.5px], [16, 2.5px],[17, 3px],[18, 3m]]
+ outline:
+ color: [0.675,0.855,0.886]
+ width: [[15, 0px],[16,0.65px], [17, 0.75px], [18, 1px], [19, 1.5px]]
+ racetrack:
+ filter: { kind: racetrack }
+ draw:
+ lines:
+ interactive: true
+ cap: round
+ join: round
+ color: [0.600,0.667,0.627]
+ width: [[13,0.5px],[14,1px],[15, 1px], [16, 1.5px], [18, 3px], [19, 5px]]
+ airport-lines:
+ filter: { kind: minor_road, aeroway: [runway,taxiway] }
+ draw:
+ lines:
+ color: [[10,[0.4,0.4,0.4]],[11,[0.50,0.50,0.50]],[12,[0.7,0.7,0.7]],[13,[0.75,0.75,0.75]],[14,[0.95,0.95,0.95]]]
+ cap: butt
+ width: [[9,0px],[10,0.75px],[11,1.25px],[12,2px],[13,4px],[14,8px],[15,16px],[16,32px],[17,60m]]
+ # outline:
+ # color: [17,[0.95,0.95,0.95]]
+ # width: [17,[60m]]
+ # Features come in at zoom 9, but include mostly minor airports without POIs until z13
+ early:
+ filter: { $zoom: { max: 12 }, not: { landuse_kind: [aerodrome, runway, taxiway] } }
+ draw:
+ lines:
+ visible: false
+ not-round:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ lines:
+ cap: butt
+ taxiway:
+ filter: { aeroway: taxiway }
+ draw:
+ lines:
+ color: [[13,[0.913,0.913,0.913]],[15,[0.923,0.923,0.923]],[16,[0.95,0.95,0.95]]]
+ width: [[13,1px],[14,2px],[15,3px],[16,7px],[17,20m]]
+ outline:
+ color: [0.778,0.778,0.797]
+ early:
+ filter: { $zoom: { max: 13 } }
+ draw:
+ lines:
+ visible: false
+ ferry:
+ filter: { kind: ferry }
+ draw:
+ lines:
+ color: [0.702,0.843,0.933]
+ width: [[12, 0.5px], [14, 1.0px], [15, 1.0px], [16, 1.25px]]
+ outline:
+ width: 0
+ aerialway:
+ filter: { kind: aerialway }
+ draw:
+ lines:
+ interactive: true
+ color: '#444'
+ width: [[14, 0.5px], [15, 1.0px], [16, 2m]]
+ gondola_cable_car:
+ filter: { aerialway: [gondola, cable_car] }
+ draw:
+ lines:
+ color: [0.498,0.302,0.243]
+ width: [[12, 0.5px], [13, 0.5px], [14, 0.6px], [15, 1px], [16, 2px]]
+ lines_transparent:
+ color: [0.498,0.302,0.243,0.15]
+ width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px]]
+ chair_lift:
+ filter: { aerialway: chair_lift }
+ draw:
+ lines:
+ color: [0.493,0.541,0.666]
+ width: [[12, 0.5px], [13, 0.5px], [14, 0.6px], [15, 1px], [16, 1px], [16, 2px], [18, 3m]]
+ lines_transparent:
+ color: [0.635,0.698,0.859,0.20]
+ width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px], [18, 20px]]
+ aerialway-labels:
+ filter: { $zoom: { min: 14 } }
+ draw:
+ text-blend-order:
+ priority: 59
+ visible: *text_visible_aerialway
+ text_source: name
+ font:
+ fill: *text_fill
+ size: 12px
+ stroke: { color: *grey8, width: 4 }
+ minor:
+ filter: { not: { aerialway: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
+ draw:
+ text-blend-order:
+ visible: false
+ early_gondola:
+ filter: { $zoom: [14], aerialway: [gondola,cable_car] }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ later:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ bridges-tunnels:
+ filter: { any: [is_bridge: yes, is_tunnel: yes] }
+ draw:
+ lines:
+ outline:
+ # except bridges and tunnels, their outlines should also self-sort
+ order: function() { return feature.sort_key; }
+
+ buildings:
+ data: { source: osm, layer: buildings }
+ filter:
+ not: { location: underground }
+ # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
+ draw:
+ polygons:
+ visible: false
+ order: 329
+ color: *building2
+ lines:
+ style: lines
+ order: 330
+ visible: false
+ color: [[14,[0.70,0.70,0.70]],[17,[0.65, 0.65, 0.65]]]
+ width: [[14, 0.6px], [15, 0.65px], [16,0.75px], [18, 1.25px]]
+
+ # turn interactive feature selection on for buildings with names
+ interactive:
+ filter: { name: true }
+ draw: { polygons: { interactive: true } }
+
+ # building footprints, pre-extrusion
+ footprints:
+ filter:
+ $zoom: { max: 18 }
+ any:
+ # show footprints for buildings at least one zoom level before they will be extruded
+ - { $zoom: [13], area: { min: 50000 } }
+ - { $zoom: [13], height: { min: 250 } }
+ - { $zoom: [13], volume: { min: 200000 } }
+ - { $zoom: [14], area: { min: 5000 } }
+ - { $zoom: [14], height: { min: 190 } }
+ - { $zoom: [14], volume: { min: 150000 } }
+ - { $zoom: [15], height: { min: 100 } }
+ - { $zoom: [15], area: { min: 500 } }
+ - { $zoom: [15], volume: { min: 100000 } }
+ - { $zoom: [16], area: { min: 100 } }
+ - { $zoom: [16], volume: { min: 50000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ polygons:
+ visible: true
+ lines:
+ visible: true
+
+ # 3d buildings
+ extrude:
+ filter:
+ any:
+ - { $zoom: [15], height: { min: 190 } }
+ - { $zoom: [15], area: { min: 5000 } }
+ - { $zoom: [15], volume: { min: 100000 } }
+ - { $zoom: [16], height: { min: 100 } }
+ - { $zoom: [16], area: { min: 3500 } }
+ - { $zoom: [16], volume: { min: 50000 } }
+ - { $zoom: [17], area: { min: 500 } }
+ - { $zoom: [17], volume: { min: 15000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ polygons:
+ visible: true
+ order: 438
+ style: building-grid
+ extrude: function() { return feature.height || 20; }
+ color: [0.892,0.880,0.878]
+ lines:
+ visible: true
+ order: 439
+ style: building-lines
+ extrude: function() { return feature.height || 20; }
+
+ # landuse-specific rules
+ in_park:
+ filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ polygons:
+ color: [0.864,0.910,0.905]
+
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # polygons:
+ # color: *building2
+ # nature_reserve:
+ # filter: { landuse_kind: nature_reserve }
+ # draw:
+ # polygons:
+ # color: *building2
+ # conservation:
+ # filter: { landuse_kind: conservation }
+ # draw:
+ # polygons:
+ # color: *building2
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # polygons:
+ # color: *building2
+ in_university:
+ filter: { landuse_kind: [university,school] }
+ draw:
+ polygons:
+ color: [0.950,0.917,0.883]
+ lines:
+ color: *brown1_bo
+ in_hospital:
+ filter: { landuse_kind: hospital }
+ draw:
+ polygons:
+ color: [0.976,0.908,0.913]
+ in_airport:
+ filter: { landuse_kind: [aerodrome, runway, taxiway] }
+ draw:
+ polygons:
+ color: *purple_b
+ lines:
+ color: *purple_bo
+ width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
+ in_retail:
+ filter: { landuse_kind: retail }
+ draw:
+ polygons:
+ color: [0.945, 0.898, 0.878]
+
+ buildings-labels:
+ data: { source: osm, layer: buildings }
+ filter:
+ all:
+ - { $zoom: { min: 17 } }
+ - $geometry: point
+ - not: { location: underground, kind: address }
+ - name: true
+# - kind: [false, building, university, college, school, kindergarten]
+ any:
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 10000 }, landuse_kind: true }
+ - { $zoom: [16], area: { min: 7000 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: [16], volume: { min: 50000 }, name: true }
+ - { $zoom: [17], area: { min: 3000 } }
+ - { $zoom: [17], area: { min: 2000 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: [18], area: { min: 1000 } }
+ - { $zoom: [18], kind: [university, college, school, kindergarten] }
+ - { $zoom: [19], area: { min: 200 } }
+ - { $zoom: { min: 19 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: { min: 20 }, area: true }
+ draw:
+ text-blend-order:
+ interactive: true
+ move_into_tile: true
+ priority: 70
+ order: 7
+ font:
+ fill: '#666'
+ family: *text_font_family
+ style: italic
+ size: 11px
+ stroke: { color: *text_stroke_address, width: 1 }
+ building_labels-z15-z16-z17:
+ filter: { $zoom: [15,16,17] }
+ draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
+ building_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
+ building_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
+ building-labels-z16:
+ filter: function() { if( $zoom == 16 && feature.name.length > 20 ) { return true; } else { return false; } }
+ draw:
+ text-blend-order:
+ visible: false
+ building-labels-z17:
+ filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
+ draw:
+ text-blend-order:
+ visible: false
+ building-labels-z20+:
+ filter: { $zoom: { min: 20 } }
+ draw:
+ text-blend-order:
+ text_source: function() { if( feature.addr_housenumber ) { return feature.name + '\n' + feature.addr_housenumber; } else { return feature.name; } }
+ address-labels:
+ data: { source: osm, layer: buildings }
+ filter:
+ $zoom: { min: 20 }
+ any:
+ - kind: address
+ - { label_position: yes, addr_housenumber: true, name: false }
+ draw:
+ text-blend-order:
+ interactive: true
+ order: 7
+ visible: *text_visible_address
+ text_source: addr_housenumber
+ font:
+ fill: *text_fill_address
+ family: *text_font_family
+ style: italic
+ size: 10px
+ stroke: { color: *text_stroke_address, width: 4 }
+
+ boundaries:
+ data: { source: osm, layer: boundaries }
+ # country subdivisions (states, provinces)
+ draw:
+ lines:
+ interactive: true
+ order: function() { return feature.sort_key; }
+# color: red
+# width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
+ country:
+ filter:
+ any:
+ - type: country
+ - kind: nation
+ - admin_level: 2
+ draw:
+ lines:
+ interactive: true
+ color: *country_boundary
+ width: [[1, 0.5px], [2, 1.0px], [4, 1.5px], [9, 2.5px], [14, 3.5px], [16, 4.5px], [17, 14m]]
+ water:
+ filter: { maritime_boundary: yes }
+ draw:
+ lines:
+ visible: false
+ region:
+ filter:
+ any:
+ - type: state
+ # territorial here is probably a hack
+ - kind: [state, department, region, provincial, territorial, macroregion]
+ - admin_level: 4
+ draw:
+ lines:
+ interactive: true
+ color: *region_boundary
+ width: [[0, 0.5px], [2, 1.0px], [5, 1.25px], [6, 1.5px], [7, 1.75px], [9, 3.5px], [14, 5.5px], [16, 6.5px], [17, 16m]]
+ water:
+ filter: { maritime_boundary: yes }
+ draw:
+ lines:
+ visible: false
+ early:
+ filter: { scalerank: [0,3,4,5,6,7,8,9,10], $zoom: { max: 8 } }
+ draw:
+ lines:
+ visible: false
+ city_walls:
+ filter: { kind: city_wall }
+ draw:
+ lines:
+ color: *city_wall
+ width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
+ retaining_wall:
+ filter: { kind: retaining_wall }
+ draw:
+ lines:
+ color: *retaining_wall
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
+ snow_fence:
+ filter: { kind: snow_fence }
+ draw:
+ lines:
+ color: *snow_fence
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
+ fence:
+ filter: { kind: fence }
+ draw:
+ lines:
+ color: *fence
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
+
+ places:
+ data: { source: osm, layer: places }
+ filter: { not: { kind: [ocean, sea] } }
+ draw:
+ text-blend-order:
+ visible: false # labels are enabled by each layer below
+ font:
+ family: *text_font_family
+ # weight: 500
+ fill: *text_fill
+
+ continent:
+ filter: { name: true, kind: [continent], $zoom: {max: 5} }
+ draw:
+ text-blend-order:
+ visible: *text_visible_continent
+ font:
+ size: 14px
+ weight: 700
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+
+ country-z2:
+ filter:
+ all:
+ - kind: [country]
+ - $zoom: [2]
+ - name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"]
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: [0.30,0.30,0.30]
+ weight: 400
+ size: 10px
+ transform: uppercase
+ country-z3:
+ filter: { name: true, population: true, kind: [country], $zoom: [3] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: [0.20,0.20,0.20]
+ size: 11px
+ weight: 600
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones:
+ # US, Brazil, China, Russia, Canada, Greenland, Iceland, Australia, India, Japan, Guam, Indonesia, South Africa, Egypt, Nigeria, Kenya
+ filter: { not: { name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"] }, $zoom: {min: 3, max: 4} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z4:
+ filter: { name: true, population: true, kind: [country], $zoom: [4] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 12px
+ weight: 600
+ fill: [0.40,0.40,0.40]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones-z4:
+ filter: { name: [Nederland,Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,Crna Gora,Македонија,The Gambia,Burundi,Swaziland,الإمارات العربية المتحدة,العراق,Singapore,El Salvador,Belize,Trinidad and Tobago, Saint Lucia, Montserrat,Anguilla,República Dominicana,Bahamas,British Virgin Islands,Antigua and Barbuda,Grenada,Sint Maarten,Saint Kitts and Nevis,Cayman Islands,België - Belgique - Belgien], $zoom: {min: 4, max: 5} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z5:
+ filter:
+ all:
+ - name: true
+ - population: true
+ - kind: [country]
+ - $zoom: [5]
+ any:
+ - { population: { min: 5000000 } }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 13px
+ weight: 400
+ fill: [0.25,0.25,0.25]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones-z5:
+ filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien], $zoom: {min: 5, max: 6} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z6:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ filter: { name: true, kind: [country], $zoom: [6] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 14px
+ weight: 600
+ fill: [0.25,0.25,0.25]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ small-ones-z6:
+ filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 6, max: 7} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z7:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ filter: { name: true, kind: [country], $zoom: { min: 7, max: 9 } }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 16px
+ weight: 600
+ fill: [0.25,0.25,0.25]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ small-ones-z7:
+ filter: { name: [Liechtenstein,San Marino,Civitatis Vaticanæ,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ visible: false
+
+ region-z4:
+ filter: { name: true, kind: [state], $zoom: [4], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 10px
+ weight: 300
+ fill: [0.3,0.3,0.3]
+
+ region-z5:
+ filter: { name: true, kind: [state], $zoom: [5], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 13px
+ weight: 300
+ fill: [0.3,0.3,0.3]
+
+ region-z6:
+ filter: { name: true, kind: [state], $zoom: [6], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 15px
+ weight: 300
+ fill: [0.4,0.4,0.4]
+
+ region:
+ filter: { name: true, kind: [state], $zoom: {min: 7, max: 9} }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
+ font:
+ size: 14px
+ weight: 300
+ fill: [0.3,0.3,0.3]
+ #stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ pesky:
+ filter: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ visible: false
+ small-ones:
+ filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
+ font: { transform: uppercase }
+
+ populated-places:
+ draw:
+ icons:
+ interactive: true
+ priority: 5
+ text-blend-order:
+ interactive: true
+ anchor: bottom
+ priority: 6
+
+ populated-places-natural-earth-z2:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [2], scalerank: 0 }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ font:
+ size: 10px
+ fill: *text_fill
+ # stroke: { color: *text_stroke, width: 4 }
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+
+ populated-places-natural-earth-z3:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [3] }
+ z3places-1:
+ filter: { scalerank: [0] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ font:
+ size: 11px
+ fill: *text_fill
+ # stroke: { color: *text_stroke, width: 4 }
+ icons:
+ size: 5px
+ sprite: townspot-s-rev
+ z3places-2:
+ filter: { scalerank: [1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 8
+ font:
+ size: 9px
+ fill: *text_fill
+ # stroke: { color: *text_stroke, width: 4 }
+ icons:
+ priority: 7
+ size: 5px
+ sprite: townspot-s-rev
+
+ populated-places-natural-earth-z4:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [4] }
+ z4places-1:
+ filter: { scalerank: [0] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ font:
+ size: 13px
+ fill: *text_fill
+ # stroke: { color: *text_stroke, width: 4 }
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+
+ z4places-2:
+ filter: { scalerank: [1,2] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 8
+ font:
+ size: 10px
+ fill: *text_fill
+ # stroke: { color: *text_stroke, width: 4 }
+ icons:
+ priority: 7
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+
+ populated-places-natural-earth-z5:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [5] }
+ z5places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 8
+ font:
+ size: 13px
+ icons:
+ priority: 7
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 6
+ icons:
+ priority: 5
+ size: 8px
+ sprite: capital-l
+
+ z5places-2:
+ filter: { scalerank: [2] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 12
+ font:
+ size: 11px
+ icons:
+ priority: 11
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 10
+ icons:
+ priority: 9
+ size: 6px
+ sprite: capital-m
+
+ z5places-3:
+ filter: { scalerank: [3,4] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 18
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 10px
+ icons:
+ priority: 17
+ size: 5px
+ sprite: townspot-s-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 16
+ icons:
+ priority: 15
+ size: 6px
+ sprite: capital-m
+
+ populated-places-natural-earth-z6:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [6] }
+ z6places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 4px] # half icon size
+ priority: 8
+ font:
+ fill: *text_fill
+ size: 15px
+ icons:
+ priority: 7
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 6
+ icons:
+ sprite: capital-l
+ size: 8px
+ priority: 5
+
+ z6places-2:
+ filter: { scalerank: [2,3,4] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 12
+ font:
+ fill: *text_fill
+ size: 12px
+ icons:
+ priority: 11
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 10
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 9
+
+ z6places-3:
+ filter: { scalerank: [5,6] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 16
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 10px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 15
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 14
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 13
+
+ populated-places-natural-earth-z7:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [7] }
+ z7places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 4px] # half icon size
+ priority: 8
+ font:
+ fill: *text_fill
+ size: 16px
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 7
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 6
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 5
+
+ z7places-2:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 14
+ font:
+ fill: *text_fill
+ size: 13px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 13
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 12
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 11
+
+ z7places-3:
+ filter: { scalerank: [6,7] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 18
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 17
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 16
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 15
+
+ populated-places-osm-z8:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [8]
+
+ z8places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 8
+ font:
+ size: 16px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 7
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 6
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 5
+ z8places-2:
+ filter:
+ any:
+ - { population: { min: 150000, max: 999999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 12
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 11
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 10
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 9
+
+ z8places-3:
+ filter:
+ any:
+ - { population: { min: 85000, max: 149999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 16
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 15
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 14
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 13
+
+ z8places-4:
+ filter:
+ any:
+ - { population: { min: 50000, max: 84999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 20
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 10px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 18
+ icons:
+ size: 5px
+ sprite: capital-m
+ priority: 17
+ z8places-5:
+ filter:
+ all:
+ - { population: { max: 50000 } }
+ any:
+ - { capital: yes }
+ - { state_capital: yes }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 20
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 10px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 3px] # half icon size
+ priority: 18
+ icons:
+ size: 5px
+ sprite: capital-s
+ priority: 17
+
+ populated-places-natural-earth-z8-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [8], population: { max: 50000 } }
+ draw: { text-blend-order: { font: { fill: *text_fill } } }
+ z8places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 4px] # half icon size
+ priority: 24
+ font:
+ size: 16px
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 23
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ offset: [0, 4px] # half icon size
+ priority: 22
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 21
+
+ z8places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+
+ z8places-3-ne:
+ filter: { scalerank: [6,7] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 28
+ font:
+ size: 11px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 27
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 26
+ icons:
+ sprite: capital-s
+ priority: 25
+
+ populated-places-osm-z9:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [9]
+
+ z9places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 17px
+
+ z9places-2a:
+ filter:
+ any:
+ - { population: { min: 350000, max: 999999 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 13px
+
+ z9places-2b:
+ filter:
+ any:
+ - { population: { min: 150000, max: 350000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 12
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ sprite: townspot-m-rev
+ priority: 11
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 10
+ icons:
+ sprite: capital-m
+ priority: 9
+
+ z9places-3:
+ filter:
+ any:
+ - { population: { min: 85000, max: 149999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 16
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 15
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 14
+ font:
+ size: 15px
+ icons:
+ sprite: capital-m
+ priority: 13
+
+ z9places-4:
+ filter:
+ any:
+ - { population: { min: 50000, max: 84999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 20
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 9px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 18
+ icons:
+ sprite: capital-s
+ priority: 17
+ z9places-5:
+ filter:
+ all:
+ - { population: { max: 50000 } }
+ any:
+ - { capital: yes }
+ - { state_capital: yes }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 20
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 9px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 18
+ icons:
+ sprite: capital-s
+ priority: 17
+
+ populated-places-osm-z9-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [9]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 22
+ font:
+ size: 10px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 21
+
+ populated-places-natural-earth-z9-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [9], population: { max: 50000 } }
+ draw: { text-blend-order: { font: { fill: *text_fill } } }
+ z9places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 4px] # half icon size
+ priority: 26
+ font:
+ size: 16px
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 25
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 24
+ icons:
+ sprite: capital-l
+ priority: 23
+
+ z9places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 30
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 29
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 27
+ icons:
+ sprite: capital-m
+ priority: 28
+
+ z9places-3-ne:
+ filter: { scalerank: [6,7,8,9] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 34
+ font:
+ size: 11px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 33
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 32
+ icons:
+ sprite: capital-m
+ priority: 31
+
+ populated-places-osm-z10:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [10]
+
+ z10places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 17px
+
+ z10places-2a:
+ filter:
+ any:
+ - { population: { min: 350000, max: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 13px
+
+ z10places-2b:
+ filter:
+ any:
+ - { population: { min: 150000, max: 350000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 8
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ sprite: townspot-m-rev
+ priority: 7
+
+ z10places-3:
+ filter:
+ any:
+ - { population: { min: 50000, max: 149999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 12
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 11
+
+ z10places-4:
+ filter:
+ any:
+ - { population: { min: 20000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 14
+ font:
+ fill: [0.35,0.35,0.35]
+ size: 9px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 13
+
+ populated-places-osm-z10-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [10]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 16
+ font:
+ size: 10px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 15
+
+ populated-places-natural-earth-z10-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [10], population: { max: 20000 } }
+ draw: { text-blend-order: { font: { fill: *text_fill } } }
+ z10places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 2px] # half icon size
+ priority: 17
+ font:
+ size: 16px
+
+ z10places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 22
+ font:
+ size: 13px
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 21
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 21
+ icons:
+ sprite: capital-m
+ priority: 20
+
+ z10places-3-ne:
+ filter: { scalerank: [6,7,8,9,10] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ offset: [0, 3px] # half icon size
+ priority: 26
+ font:
+ size: 12px
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 25
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 24
+ icons:
+ size: 7px
+ sprite: capital-m
+ priority: 23
+
+ populated-places-osm-z11:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [11]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+
+ z11places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 18px
+
+ z11places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 999999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 14px
+
+ z11places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 12px
+
+ populated-places-osm-z11-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [11]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 11px
+
+ populated-places-natural-earth-z11-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ font:
+ fill: *text_fill
+ z11places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 10
+ font:
+ size: 16px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 9
+ font:
+ size: 16px
+
+ z11places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 13
+ font:
+ size: 13px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 11
+ font:
+ size: 16px
+ state_capital:
+ filter: { state_capital: yes }
+ draw:
+ text-blend-order:
+ priority: 12
+ font:
+ size: 14px
+
+ z11places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 15
+ font:
+ size: 11px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 14
+ font:
+ size: 14px
+
+ populated-places-osm-z12:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [12]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+
+ z12places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 18px
+
+ z12places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 999999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 14px
+
+ z12places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 11px
+
+ z12places-4:
+ filter:
+ any:
+ - { population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 10px
+
+ populated-places-osm-z12-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [12]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 9
+ font:
+ size: 11px
+
+ populated-places-natural-earth-z12-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ priority: 10
+ font:
+ fill: *text_fill
+
+ z12places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 12
+ font:
+ size: 16px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 11
+ font:
+ size: 16px
+
+ z12places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 14
+ font:
+ size: 13px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 13
+ font:
+ size: 16px
+
+ z12places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11,12] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 16
+ font:
+ size: 11px
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 15
+ font:
+ size: 14px
+
+ populated-places-osm-z13-z14:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [13,14]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ font:
+ weight: 600
+ fill: *text_fill
+ z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+ z13places-1:
+ filter:
+ any:
+ - { population: { min: 200000 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+ z13places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 199999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 14px
+
+ z13places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 12px
+
+ z13places-4:
+ filter:
+ any:
+ - population: false
+ - population: true
+ all:
+ - population: { max: 5000 }
+ draw:
+ text-blend-order:
+ font:
+ size: 12px
+
+ populated-places-osm-z13-z14-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [13, 14]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 11px
+
+ populated-places-natural-earth-z13-z14-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ font:
+ fill: *text_fill
+ weight: 400
+
+ z13places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ priority: 8
+ interactive: false
+ visible: false
+
+ z13places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ priority: 9
+ visible: *text_visible_populated_places
+ font:
+ size: 13px
+
+ z13places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11,12] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 10
+ font:
+ size: 12px
+
+ neighborhood-z11:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [11]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11]
+ - max_zoom: { min: 12 }
+ - is_landuse_aoi: false
+ #- kind_tile_rank: { max: 6 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 9px
+ weight: 400
+ fill: *text_fill
+ transform: uppercase
+ stroke: { color: *text_stroke, width: 4 }
+ neighborhood-z12:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [12]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12]
+ - max_zoom: { min: 13 }
+ - is_landuse_aoi: false
+ #- kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 10px
+ weight: 400
+ fill: [0.300,0.300,0.300]
+ transform: uppercase
+ # stroke: { color: *text_stroke, width: 2 }
+ neighborhood-z13:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [13]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13]
+ - max_zoom: { min: 14 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 11px
+ weight: 400
+ fill: [0.35,0.35,0.35]
+ transform: uppercase
+ # stroke: { color: *text_stroke, width: 2 }
+ neighborhood-z14:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [14]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14]
+ - max_zoom: { min: 15 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 12
+ visible: *text_visible_neighbourhoods
+ font:
+ size: 13px
+ weight: 400
+ fill: [0.000,0.000,0.000,0.500]
+ transform: uppercase
+ # stroke: { color: *text_stroke, width: 3 }
+ neighborhood-z15:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [15]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14,15]
+ - max_zoom: { min: 16 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 12
+ visible: *text_visible_neighbourhoods
+ font:
+ size: 16px
+ weight: 300
+ fill: [0.000,0.000,0.000,0.480]
+ transform: uppercase
+ # stroke: { color: *text_stroke, width: 3 }
+ z15-new:
+ filter:
+ all:
+ - min_zoom: 15
+ draw:
+ text-blend-order:
+ priority: 19
+ font:
+ size: 13px
+ neighborhood-z16:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [16]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14,15,16]
+ - max_zoom: { min: 17 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ visible: *text_visible_neighbourhoods
+ priority: 18
+ font:
+ size: 17px
+ weight: 300
+ fill: [0.000,0.000,0.000,0.400]
+ transform: uppercase
+ # stroke: { color: *text_stroke, width: 3 }
+
+ highway-exit:
+ data: { source: osm, layer: [pois] }
+ filter: { kind: motorway_junction, $zoom: { min: 14 } }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: *text_visible_exits
+ interactive: true
+ text_source: ref
+ priority: 52
+ font:
+ fill: *text_fill_exits
+ size: [[12,9px],[15,12px],[17,14px]]
+ stroke: { color: *text_stroke, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ airport-gate:
+ data: { source: osm, layer: [pois] }
+ filter: { kind: gate, aeroway: gate }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: true
+ interactive: true
+ text_source: ref
+ font:
+ fill: *text_fill
+ size: [[16,9px],[17,12px],[20,14px]]
+ #stroke: { color: *highway1, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+ pois_and_landuse_labels:
+ data: { source: osm, layer: [pois,landuse] }
+ visible: *label_visible_poi_landuse
+ filter:
+ not: { kind: [building,farm,tree,gate,apron] }
+ any:
+ - area: false
+ all:
+ - $zoom: { min: 12 }
+ - area: true
+ all:
+ - $geometry: point
+ - kind: true
+ draw:
+ icons:
+ size: [[13, 12px], [16, 16px], [18, 19px]]
+ interactive: true
+ visible: false
+ priority: 65
+ text-blend-order:
+ visible: false # labels are enabled by each layer below
+ move_into_tile: false # preserves text alignment w/icons in JS
+ anchor: bottom
+ offset: [[13, [0, 6px]], [16, [0, 8px]], [18, [0, 10px]]] # offset tracks alongside icon size (half icon height)
+ interactive: true
+ priority: 66
+ font:
+ family: *text_font_family
+ weight: 400
+ fill: [0.20,0.20,0.20]
+ size: 10px
+ stroke: { color: *text_stroke, width: 1 }
+ poi_labels-z14:
+ filter: { $zoom: [14] }
+ draw: { text-blend-order: { font: { size: 11px } } }
+ poi_labels-z15:
+ filter: { $zoom: [15,16,17] }
+ draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
+ poi_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
+ poi_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
+ no-name:
+ filter: { name: false }
+ sports-pitch:
+ filter: { kind: [grass, pitch], $geometry: point, area: true, $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: function() { return feature.sport }
+ visible: *icon_visible_poi_landuse_e
+ priority: 69
+ baseball:
+ filter: { sport: baseball }
+ draw: { icons: { sprite: baseball-field } }
+ basketball:
+ filter: { sport: basketball }
+ draw: { icons: { sprite: basketball-court } }
+ football:
+ filter: { sport: football }
+ draw: { icons: { sprite: football-stadium } }
+ hockey:
+ filter: { sport: hockey-field }
+ draw: { icons: { sprite: hockey-field } }
+ soccer:
+ filter: { sport: soccer }
+ draw: { icons: { sprite: soccer-field } }
+ tennis:
+ filter: { sport: tennis }
+ draw: { icons: { sprite: tennis } }
+ toilets:
+ filter: { kind: toilets, $zoom: { min: 18 } }
+ draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
+ playground:
+ filter: { kind: playground, $zoom: { min: 18 } }
+ draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
+ picnic_site:
+ filter: { kind: picnic_site, $zoom: { min: 18 } }
+ draw: { icons: { sprite: picnic-spot, visible: *icon_visible_poi_landuse_e } }
+ information:
+ filter: { kind: information, $zoom: { min: 18 } }
+ draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
+ drinking-water:
+ filter: { kind: drinking_water, $zoom: { min: 18 } }
+ draw: { icons: { sprite: drinking-water, visible: *icon_visible_poi_landuse_e } }
+ traffic-signal:
+ filter: { kind: traffic_signals, $zoom: { min: 18 } }
+ draw: { icons: { sprite: traffic-signal, visible: *icon_visible_poi_landuse_e } }
+ bicycle-parking:
+ filter: { kind: [bicycle_parking], $zoom: { min: 19 } }
+ draw: { icons: { sprite: bicycle-parking, visible: *icon_visible_poi_landuse_e } }
+ car-parking:
+ filter: { kind: [parking], $zoom: { min: 17 } }
+ draw: { icons: { sprite: parking, visible: *icon_visible_poi_landuse_e } }
+ has-name:
+ filter: { name: true }
+ # match 1:1 correlations between data and sprite name
+ direct-match:
+ filter: { area: false }
+ draw:
+ icons:
+ # sprite_source: kind
+ sprite: function() { return feature.kind; }
+ visible: *icon_visible_poi_landuse
+
+ # add generic icon at high zoom, if direct match fails
+ generic-icons:
+ filter: { $zoom: { min: 18 }, area: false }
+ draw:
+ icons:
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+ priority: 67
+
+ # add generic icon at high zoom
+ default-label-names:
+ filter: { $zoom: { min: 13 }, area: false }
+ draw:
+ text-blend-order:
+ visible: *text_visible_poi_landuse
+ priority: 68
+
+ landuse-labels-green-areas-national-park:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [national_park, "park or protected land"]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [4], area: { min: 3000000000 } }
+ - { $zoom: [5], area: { min: 3000000000 } }
+ - { $zoom: [6], area: { min: 500000000 } }
+ - { $zoom: [7,8,9], area: { min: 100000000 } }
+ - { $zoom: [10], area: { min: 50000000 } }
+ - { $zoom: [11], area: { min: 25000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 200000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ - { $zoom: { min: 15 } }
+ national-park:
+ # yosemite national park, joshua tree national park
+ filter: function() { return feature.name && feature.name.indexOf("National Park") > -1; }
+ visible: *label_visible_landuse_green
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ sprite: park
+ priority: 41
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ priority: 42
+ font:
+ fill: [0.200,0.409,0.398] #*text_fill_park
+ style: italic
+ # stroke: { color: [0.870,0.870,0.870], width: 3px }
+ natl-park-labels-z4-z6:
+ filter: { $zoom: [4,5,6] }
+ draw:
+ icons:
+ visible: false
+ text-blend-order: { font: { size: 10px, stroke: { width: 2px } } }
+ natl-park-labels-z7:
+ filter: { $zoom: [7] }
+ draw:
+ text-blend-order: { font: { size: 10px, stroke: { width: 2px } } }
+ natl-park-labels-z8:
+ filter: { $zoom: [8,9] }
+ draw:
+ text-blend-order: { font: { size: 11px, stroke: { width: 2px } } }
+ natl-park-labels-z10:
+ filter: { $zoom: {min: 10, max: 14 } }
+ draw:
+ text-blend-order: { font: { size: 12px } }
+
+ landuse-labels-green-areas-not-national-park:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [park, national_park, "park or protected land",conservation, protected_area, nature_reserve, forest, grass]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [5], area: { min: 10000000000 } }
+ - { $zoom: [6,7], area: { min: 5000000000 } }
+ - { $zoom: [8], area: { min: 1000000000 } }
+ - { $zoom: [9], area: { min: 100000000 } }
+ - { $zoom: [10], area: { min: 50000000 } }
+ - { $zoom: [11], area: { min: 25000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 200000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 1000 } }
+ - { $zoom: { min: 17 } }
+ not-national-park:
+ filter: function() { return !( feature.name.indexOf("National Park") > -1 ); }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ sprite: park
+ priority: 41
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ priority: 42
+ font:
+ fill: [0.181,0.370,0.361]
+# size: 12px
+# weight: 400
+ style: italic
+ # stroke: { color: [0.870,0.870,0.870], width: 2 }
+ green-areas-z6:
+ # mojave national preserve
+ filter: { $zoom: [6] }
+ draw:
+ icons: { visible: false }
+ text-blend-order: { font: { size: 10px, stroke: { width: 2px } } }
+ green-areas-z7:
+ filter: { $zoom: [7] }
+ draw:
+ icons: { visible: false }
+ text-blend-order: { font: { size: 10px } }
+ green-areas-z8-z9:
+ filter: { $zoom: { min: 8, max: 14 } }
+ draw:
+ text-blend-order: { font: { size: 11px } }
+ wilderness-areas-early:
+ filter: function() { return $zoom < 10 && feature.name && (feature.name.indexOf("Wilderness") > -1 || feature.name.indexOf("BLM") > -1) }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ early-not-national-park:
+ filter: { not: { kind: national_park }, $zoom: { max: 6 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ not-national-park:
+ filter: function() { return feature.name && feature.name.indexOf("Park") > -1 }
+ # draw:
+ # icons:
+ # sprite: park
+ early:
+ filter: { $zoom: { max: 8 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ forest:
+ filter: function() { return $zoom < 8 && ((feature.name && feature.name.indexOf("Forest") > -1) || feature.protect_class >=6) }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ hide-till-later:
+ filter: { kind: [grass], $zoom: { max: 16 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ only-text-later:
+ filter: { kind: [grass], $zoom: { min: 16 } }
+ draw:
+ text-blend-order: { font: { style: italic } }
+ icons: { visible: false }
+ beach:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [beach]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [10], area: { min: 300000 } }
+ - { $zoom: [11], area: { min: 100000 } }
+ - { $zoom: [12], area: { min: 50000 } }
+ - { $zoom: [13], area: { min: 50000 } }
+ - { $zoom: [14], area: { min: 20000 } }
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 1000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ interactive: true
+ sprite: beach
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ interactive: true
+ font:
+ fill: *text_fill_beach
+ stroke:
+ color: *text_stroke_park
+ airport:
+ filter:
+ all:
+ - kind: [airport, aerodrome]
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [9], area: { min: 10000000 } }
+ - { $zoom: [10], area: { min: 10000000 } }
+ - { $zoom: [11], area: { min: 5000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 500000 } }
+ - { $zoom: [14], area: { min: 20000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ icons:
+ sprite: airport
+ visible: *icon_visible_landuse_green
+ priority: 42
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ priority: 41
+ text_source: function() { if(feature.iata) { return feature.name + ' (' + feature.iata + ')'; } else { return feature.name; } }
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ #size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: [9,10,11] }
+ # todo: huh?
+ draw: { text-blend-order: { text_source: iata, font: { size: 11px } } }
+ early2:
+ filter: { $zoom: { min: 12, max: 14 } }
+ draw: { text-blend-order: { font: { size: 11px } } }
+ university:
+ filter:
+ all:
+ - kind: [university, college]
+ - area: true
+ - $geometry: point
+ - not: { $layer: buildings }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [9], area: { min: 10000000 } }
+ - { $zoom: [10], area: { min: 5000000 } }
+ - { $zoom: [11], area: { min: 2000000 } }
+ - { $zoom: [12], area: { min: 500000 } }
+ - { $zoom: [13], area: { min: 100000 } }
+ - { $zoom: [14], area: { min: 100000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 40000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ visible: *label_visible_landuse_green
+ draw:
+ icons:
+ sprite: college-university
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ priority: 42
+ font:
+ weight: 600
+ fill: [0.20,0.20,0.20]
+ #size: 10px
+ # stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: { max: 12 } }
+ draw: { text-blend-order: { visible: false } }
+ early2:
+ filter: { $zoom: { min: 12, max: 14 } }
+ draw: { text-blend-order: { size: 11px } }
+ school:
+ filter:
+ all:
+ - kind: [school, kindergarten]
+ - area: true
+ - $geometry: point
+ - not: { $layer: buildings }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [13], area: { min: 100000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ icons:
+ sprite: school
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ font:
+ fill: *text_fill
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: { max: 14 } }
+ draw: { text-blend-order: { font: { size: 11px } } }
+ winter_sports:
+ filter:
+ all:
+ - kind: winter_sports
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [10], area: { min: 5000000 } }
+ - { $zoom: [11], area: { min: 2000000 } }
+ - { $zoom: [12], area: { min: 500000 } }
+ - { $zoom: [13], area: { min: 100000 } }
+ - { $zoom: [14], area: { min: 100000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 40000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_landuse_green
+ font:
+ fill: *text_fill
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ icons:
+ sprite: ski-area
+ visible: *icon_visible_landuse_green
+ priority: 41
+ early:
+ filter: { $zoom: { max: 14 } }
+ draw: { text-blend-order: { font: { size: 10px } } }
+ tourism-related:
+ filter:
+ all:
+ - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium]
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 11 }, area: { min: 400000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 50000 } }
+ - { $zoom: { min: 14 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 10000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ draw:
+ icons:
+ sprite: function() { return feature.kind; }
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+ priority: 43
+ text-blend-order:
+ visible: *text_visible_poi_landuse
+ priority: 44
+ font:
+ fill: *text_fill
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ early-sizing:
+ filter: { $zoom: { max: 14 } }
+ draw: { text-blend-order: { size: 11px } }
+ landuse-labels-not-green-areas:
+ filter:
+ all:
+ - $zoom: { min: 6 }
+ - area: true
+ - $geometry: point
+ - not: { kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, airport, aerodrome, university, college, school, kindergarten, winter_sports, zoo, theme_park, resort, aquarium, winery, maze, stadium] }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [5,6,7], area: { min: 5000000000 } }
+ - { $zoom: [8], area: { min: 1600000000 } }
+ - { $zoom: [9], area: { min: 400000000 } }
+ - { $zoom: [10], area: { min: 100000000 } }
+ - { $zoom: [11], area: { min: 25000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 1000000 } }
+ - { $zoom: [14], area: { min: 100000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 2000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: function() { return feature.kind; }
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+ priority: 43
+ text-blend-order:
+ visible: *text_visible_poi_landuse
+ priority: 44
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+# size: 10px
+ weight: 600
+ stroke: { color: *text_stroke, width: 4 }
+ early-sizing:
+ filter: { $zoom: { max: 14 } }
+ draw: { text-blend-order: { size: 11px } }
+ building-like:
+ filter: { kind: [commercial,residential,warehouse,public,dormitory], osm_relation: false }
+ draw:
+ icons:
+ sprite: building
+# residential-relations-paris-wtf:
+# filter: { kind: [residential], osm_relation: true }
+# draw:
+# icons:
+# text-blend-order: { visible: true, text_source: short_name, font: { fill: red } }
+# icons: { sprite: park, visible: true }
+ hide-till-later:
+ filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { max: 17 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ only-text-later:
+ filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland,pitch], $zoom: { min: 17 } }
+ draw:
+ text-blend-order: { font: { style: italic } }
+ icons: { visible: false }
+ burial_vault-early:
+ filter: { kind: [burial_vault], $zoom: { max: 19 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ university-poi:
+ filter: { kind: [university, college], area: false, $zoom: { max: 16 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ office-early:
+ filter:
+ any:
+ - { kind: [insurance, office, company], $zoom: [15], area: { max: 10000 } }
+ - { kind: [insurance, office, company], $zoom: [16], area: { max: 5000 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ bank-early:
+ filter: { kind: [bank], $zoom: { max: 17 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ post-office-early:
+ filter: { kind: [post_office], $zoom: { max: 14 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ atm-early:
+ filter: { kind: [atm], $zoom: { max: 18 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ bicycle-parking-early:
+ filter: { kind: [bicycle_parking], $zoom: { max: 19 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ yes-early:
+ filter: { kind: [yes], $zoom: { max: 18 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ peak-early:
+ filter: { kind: [peak], $zoom: { max: 16 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ drinking-water-early:
+ filter: { kind: [drinking_water], $zoom: { max: 18 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ memorial-early:
+ filter: { kind: [memorial], $zoom: { max: 13 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ animal-points-early:
+ filter: { kind: [animal], area: false, $zoom: { max: 18 } }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+# animal-areas-early:
+# filter: { kind: [animal], area: { min: 500 }, $zoom: { max: 18 } }
+# draw:
+# text-blend-order: { visible: false }
+# icons: { visible: false }
+ parking-labels-early:
+ filter:
+ kind: [parking]
+ $zoom: { max: 18 }
+ draw:
+ text-blend-order:
+ visible: false
+ icons:
+ visible: false
+ parking-labels:
+ filter:
+ kind: [parking]
+ $zoom: { min: 18 }
+ draw:
+ text-blend-order:
+ visible: *text_visible_poi_landuse
+ font:
+ fill: [0.20,0.20,0.20] #*text_fill
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ landuse-funky:
+ filter: { kind: [commercial, residential, wood], $zoom: { max: 17 } }
+ draw:
+ text-blend-order:
+ visible: false
+ car-sharing:
+ filter: { kind: car_sharing }
+ icons-early:
+ filter: { $zoom: { max: 17 } }
+ draw:
+ icons:
+ visible: false
+ text-labels-early:
+ filter: { $zoom: { max: 19 } }
+ draw:
+ text-blend-order:
+ visible: false
+ tower:
+ filter: { kind: [tower], label_placement: yes }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ font:
+ style: italic
+ station-train-subway:
+ filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
+ visible: *label_visible_station
+ draw:
+ icons:
+ visible: *icon_visible_station
+ sprite: train-station
+ size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
+ priority: 61
+ text-blend-order:
+ visible: *text_visible_station
+ offset: [[13, [0, 6px]], [14, [0, 6px]],[15, [0, 8px]], [17, [0, 9px]], [18, [0, 10px]]]
+ priority: 62
+ low-priority-early:
+ filter: { kind_tile_rank: { min: 5 }, $zoom: { min: 0, max: 13 } }
+ draw:
+ icons:
+ visible: false
+ #size: [[12, 10px], [14, 10px], [15, 16px]]
+ text-blend-order: { visible: false }
+ low-priority-early-z13:
+ filter: { kind_tile_rank: { min: 5 }, $zoom: [13] }
+ draw:
+ icons:
+ visible: false
+ #size: [[12, 10px], [14, 10px], [15, 16px]]
+ text-blend-order: { visible: false }
+ low-priority-early-z14:
+ filter: { kind_tile_rank: { min: 7 }, $zoom: [14] }
+ draw:
+ #icons:
+ #size: [[14, 11px], [15, 16px], [17, 18px], [18, 20px]]
+ #visible: false
+ text-blend-order: { visible: false }
+ tram-stop-early:
+ filter: { kind: tram_stop, $zoom: { max: 15 } }
+ draw:
+ icons:
+ visible: false
+ tram-stop-early-z15:
+ filter: { kind: tram_stop, $zoom: [15] }
+ draw:
+ text-blend-order:
+ visible: false
+ tram-stop:
+ filter: { kind: tram_stop, $zoom: { min: 15 } }
+ draw:
+ icons:
+ size: [[13, 12px], [16, 18px]]
+ text-blend-order:
+ offset: [[13, [0, 6px]], [16, [0, 9px]]]
+ bus-stop-bus-station-labels:
+ filter:
+ kind: [bus_stop, bus_station]
+ $zoom: { min: 18 }
+ draw:
+ text-blend-order:
+ visible: *text_visible_poi_landuse
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ bus_stop:
+ filter:
+ kind: [bus_stop]
+ $zoom: { max: 19 }
+ draw:
+ icons:
+ size: [[13, 8px], [19, 18px]]
+ text-blend-order:
+ visible: false
+ minor-z17-early:
+ filter:
+ kind: [accountant, administrative, advertising_agency, architect, association, atm, bakery, bed_and_breakfast, bicycle, bicycle_parking, bicycle_rental, books, bus_stop, bus_stop, butcher, car, car_repair, chalet, clothes, company, computer, consulting, convenience, doityourself, drinking_water, dry_cleaning, educational_institution, emergency_phone, employment_agency, estate_agent, fashion, financial, florist, foundation, gate, gift, government, greengrocer, guest_house, hairdresser, hostel, hotel, insurance, it, jewelry, lawyer, mast, memorial, mobile_phone, motel, newspaper, ngo, notary, optician, parking, pet, physician, playground, political_party, post_box, religion, research, slipway, subway_entrance, tax_advisor, telecommunication, telephone, theatre, therapist, toilets, traffic_signals, travel_agent, water_tower, yes]
+ area: false
+ $zoom: { max: 17 }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+ minor-z18-early:
+ filter:
+ kind: [bench, waste_basket]
+ area: false
+ $zoom: { max: 18 }
+ draw:
+ text-blend-order: { visible: false }
+ icons: { visible: false }
+
+ icons:
+ adult-boutique:
+ filter: { kind: [erotic, adult_boutique] }
+ draw: { icons: { sprite: adult-boutique } }
+ allotments:
+ filter: { kind: [allotments] }
+ draw: { icons: { sprite: garden } }
+ airport:
+ filter: { kind: [airport, aerodrome] }
+ draw: { icons: { sprite: airport } }
+ animal-shelter:
+ filter: { kind: [animal_shelter, animal-shelter, animal_boarding] }
+ draw: { icons: { sprite: animal-shelter } }
+ antique-shop:
+ filter: { kind: [antiques, antique-shop] }
+ draw: { icons: { sprite: antique-shop } }
+ art-gallery:
+ filter: { kind: [art_gallery, art-gallery, art, artwork] }
+ draw: { icons: { sprite: art-gallery } }
+ athletics-sports:
+ filter: { kind: [athletic_sports, recreation_ground, sports_centre] }
+ draw: { icons: { sprite: athletics-sports } }
+ automotive-shop:
+ filter: { kind: [car_repair, automotive-shop, automotive, tyres] }
+ draw: { icons: { sprite: automotive-shop } }
+ bakery:
+ filter: { kind: [bakery, pastry, chocolate] }
+ draw: { icons: { sprite: bakery } }
+ bar:
+ filter: { kind: [pub, bar] }
+ draw: { icons: { sprite: bar } }
+ beer-garden:
+ filter: { kind: [biergarten, beer-garden, brewery] }
+ draw: { icons: { sprite: beer-garden } }
+ bike-shop:
+ filter: { kind: [bicycle, bicycle_rental, bike, bike_shop] }
+ draw: { icons: { sprite: bike-shop } }
+ bicycle-parking:
+ filter: { kind: [bicycle_parking] }
+ draw: { icons: { sprite: bicycle-parking } }
+ boat-ferry:
+ filter: { kind: [ferry_terminal, boat-ferry, ferry-boat, ferry] }
+ draw: { icons: { sprite: boat-ferry } }
+ boat-ramp:
+ filter: { kind: [slipway, boat-ramp, boat_ramp] }
+ draw: { icons: { sprite: boat-ramp } }
+ bookstore:
+ filter: { kind: [books, bookstore] }
+ draw: { icons: { sprite: bookstore } }
+ bowling-alley:
+ filter: { kind: [bowling_alley, bowling-alley] }
+ draw: { icons: { sprite: bowling-alley } }
+ bridal-shop:
+ filter: { kind: [bridal, bridal-shop] }
+ draw: { icons: { sprite: bridal-shop } }
+ building-icon:
+ filter: { kind: [building, auditorium, terminal, hangar, retirement_home, manor, recreation_center, apartments] }
+ draw: { icons: { sprite: building } }
+ early:
+ filter:
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [14], area: { max: 200000 } }
+ - { $zoom: [15], area: { max: 20000 } }
+ - { $zoom: [16], area: { max: 5000 } }
+ - { $zoom: [17], area: { max: 1000 } }
+ draw:
+ text-blend-order:
+ visible: false
+ icons:
+ visible: false
+ burger:
+ filter: { kind: [fast_food, burger] }
+ draw: { icons: { sprite: burger } }
+ taqueria:
+ filter: { kind: [burrito,taqueria] }
+ draw: { icons: { sprite: taqueria } }
+ bus-station:
+ filter: { kind: [bus_stop, bus_station] }
+ draw: { icons: { sprite: bus-station } }
+ camera-store:
+ filter: { kind: [camera, camera-store, photo] }
+ draw: { icons: { sprite: camera-store } }
+ campground:
+ filter: { kind: [campground, camp_site, caravan_site] }
+ draw: { icons: { sprite: campground } }
+ candy-store:
+ filter: { kind: [candy, candy-store, confectionery] }
+ draw: { icons: { sprite: candy-store } }
+ car-dealership:
+ filter: { kind: [car, car-dealership] }
+ draw: { icons: { sprite: car-dealership } }
+ car-wash:
+ filter: { kind: [car_wash, car-wash] }
+ draw: { icons: { sprite: car-wash } }
+ castle:
+ filter: { kind: [castle, fort] }
+ draw: { icons: { sprite: castle } }
+ cemetery:
+ filter: { kind: [grave_yard, cemetery] }
+ draw: { icons: { sprite: cemetery } }
+ cheese-shop:
+ filter: { kind: [cheese, cheese-shop] }
+ draw: { icons: { sprite: cheese-shop } }
+ clothing-store:
+ filter: { kind: [clothes, chothing-store, "clothes store", fashion] }
+ draw: { icons: { sprite: clothing-store } }
+ coffee-shop:
+ filter: { kind: [cafe, coffee-shop] }
+ draw: { icons: { sprite: coffee-shop } }
+ college-university:
+ filter: { kind: [university, college, college-university], area: false }
+ draw: { icons: { sprite: college-university } }
+ concert-hall:
+ filter: { kind: [music_venue] }
+ draw: { icons: { sprite: concert-hall } }
+ convenience-store:
+ filter: { kind: [convenience, convenience-store, convenience_store, beverages] }
+ draw: { icons: { sprite: convenience-store } }
+ cosmetics-shop:
+ filter: { kind: [cosmetics, cosmetics-shop, beauty] }
+ draw: { icons: { sprite: cosmetics-shop } }
+ department-store:
+ filter: { kind: [department_store, department-store] }
+ draw: { icons: { sprite: department-store } }
+ dog-run:
+ filter: { kind: [dog_park, dog_run, dog-run] }
+ draw: { icons: { sprite: dog-run } }
+ drinking-water:
+ filter: { kind: drinking_water }
+ draw: { icons: { sprite: drinking-water } }
+ dry-cleaning:
+ filter: { kind: [dry_cleaning] }
+ draw: { icons: { sprite: dry-cleaning } }
+ electronics-store:
+ filter: { kind: [electronics, electronics-store, computer] }
+ draw: { icons: { sprite: electronics-store } }
+ factory:
+ filter: { kind: [factory, industrial, chimney, sub_station, substation, wastewater_plant, works, water_works, plant, generator] }
+ draw: { icons: { sprite: factory } }
+ farmers-market:
+ filter: { kind: [farmers_market, farmers-market] }
+ draw: { icons: { sprite: farmers-market } }
+ fire-station:
+ filter: { kind: [fire_station, fire-station] }
+ draw: { icons: { sprite: fire-station } }
+ fish-market:
+ filter: { kind: [fish, fish-market, seafood, fishmonger] }
+ draw: { icons: { sprite: fish-market } }
+ fishing-spot:
+ filter: { kind: [fishing_spot, fishing-spot, fishing] }
+ draw: { icons: { sprite: fishing-spot } }
+ fitness:
+ filter: { kind: [gym, fitness, fitness_center] }
+ draw: { icons: { sprite: fitness } }
+ flea-market:
+ filter: { kind: [flea_market, flea-market] }
+ draw: { icons: { sprite: flea-market } }
+ flower-shop:
+ filter: { kind: [florist, flower-shop] }
+ draw: { icons: { sprite: flower-shop } }
+ forest:
+ filter: { kind: [forest, conservation, wood] }
+ draw: { icons: { sprite: forest } }
+ furniture-store:
+ filter: { kind: [furniture, furniture-store] }
+ draw: { icons: { sprite: furniture-store } }
+ garden-center:
+ filter: { kind: [garden_centre, garden_center] }
+ draw: { icons: { sprite: garden-center } }
+ gas-station:
+ filter: { kind: [fuel, gas-station] }
+ draw: { icons: { sprite: gas-station } }
+ general-entertainment:
+ filter: { kind: [ticket, general_entertainment] }
+ draw: { icons: { sprite: general-entertainment } }
+ generic:
+ filter: { kind: [generic] }
+ draw: { icons: { sprite: generic } }
+ gift-shop:
+ filter: { kind: [gift, gift-shop] }
+ draw: { icons: { sprite: gift-shop } }
+ golf-course:
+ filter: { kind: [golf-course, golf_course] }
+ draw: { icons: { sprite: golf-course } }
+ government-building:
+ filter: { kind: [townhall, public_building, embassy] }
+ draw: { icons: { sprite: government-building } }
+ grocery-store:
+ filter: { kind: [supermarket, grocery-store, health_food, greengrocer] }
+ draw: { icons: { sprite: grocery-store } }
+ harbor-marina:
+ filter: { kind: [marina, harbor, harbor-marina, harbor_marina, dock, mooring] }
+ draw: { icons: { sprite: harbor-marina } }
+ hardware-store:
+ filter: { kind: [hardware, hardware-store, doityourself, paint] }
+ draw: { icons: { sprite: hardware-store } }
+ hiking-trail:
+ filter: { kind: [trailhead, hiking_trail] }
+ draw: { icons: { sprite: hiking-trail } }
+ hotel:
+ filter: { kind: [hotel, motel, hostel] }
+ draw: { icons: { sprite: hotel } }
+ hunting-supply:
+ filter: { kind: [hunting, fishing] }
+ draw: { icons: { sprite: hunting-supply } }
+ ice-cream-shop:
+ filter: { kind: [ice_cream] }
+ draw: { icons: { sprite: ice-cream-shop } }
+ information:
+ filter: { kind: [info, information] }
+ draw: { icons: { sprite: information } }
+ jewelry-store:
+ filter: { kind: [jewelry, jewelry_store, jewelry-store] }
+ draw: { icons: { sprite: jewelry-store } }
+ landmark:
+ filter: { kind: [landmark, memorial, monument, wayside_shrine, beacon] }
+ draw: { icons: { sprite: landmark } }
+ tower:
+ filter: { kind: [tower], label_placement: false }
+ draw: { icons: { sprite: landmark } }
+ laundry:
+ filter: { kind: [laundry] }
+ draw: { icons: { sprite: laundry } }
+ light-rail:
+ filter: { kind: [light-rail, light_rail, tram_stop] }
+ draw: { icons: { sprite: light-rail } }
+ liquor-store:
+ filter: { kind: [alcohol, liquor-store, liquor] }
+ draw: { icons: { sprite: liquor-store } }
+ market:
+ filter: { kind: [market, variety_store, boutique, dairy, retail] }
+ draw: { icons: { sprite: market } }
+ mine:
+ filter: { kind: [mind, quarry, mineshaft, adit] }
+ draw: { icons: { sprite: mine } }
+ miscellaneous-shop:
+ filter: { kind: [houseware, miscellaneous-shop] }
+ draw: { icons: { sprite: miscellaneous-shop } }
+ mobile-phone-shop:
+ filter: { kind: [mobile_phone] }
+ draw: { icons: { sprite: mobile-phone-shop } }
+ motorcycle-shop:
+ filter: { kind: [motorcycle, motorcycle_shop, motorcycle_repair] }
+ draw: { icons: { sprite: motorcycle-shop } }
+ mountain:
+ filter: { kind: [mountain, peak] }
+ draw: { icons: { sprite: mountain } }
+ movie-theatre:
+ filter: { kind: [cinema, movie-theatre, movie-theater] }
+ draw: { icons: { sprite: movie-theatre } }
+ museum:
+ filter: { kind: [museum, observatory] }
+ draw: { icons: { sprite: museum } }
+ music-store:
+ filter: { kind: [music, music-store, musical_instrument] }
+ draw: { icons: { sprite: music-store } }
+ newsstand:
+ filter: { kind: [kiosk, newsstand, newsagent] }
+ draw: { icons: { sprite: newsstand } }
+ nightlife:
+ filter: { kind: [nightclub, nightlife] }
+ draw: { icons: { sprite: nightlife } }
+ office:
+ filter: { kind: [insurance, office, company] }
+ draw: { icons: { sprite: office } }
+ office-supplies:
+ filter: { kind: [office_supplies, office-supplies, stationery] }
+ draw: { icons: { sprite: office-supplies } }
+ optical-shop:
+ filter: { kind: [optician, optical_shop, optical-shop] }
+ draw: { icons: { sprite: optical-shop } }
+ performing-arts:
+ filter: { kind: [theater, theatre, performing-arts] }
+ draw: { icons: { sprite: performing-arts } }
+ pet-store:
+ filter: { kind: [pet, pet-store, pet-service, pet_store] }
+ draw: { icons: { sprite: pet-store } }
+ pharmacy:
+ filter: { kind: [pharmacy, chemist] }
+ draw: { icons: { sprite: pharmacy } }
+ photography-lab:
+ filter: { kind: [photo_studio, photography_lab, photographer] }
+ draw: { icons: { sprite: photography-lab } }
+ picnic-spot:
+ filter: { kind: [picnic_site, picnic_spot, picnic-spot] }
+ draw: { icons: { sprite: picnic-spot } }
+ pool:
+ filter: { kind: [pool, swimming_pool, water_park] }
+ draw: { icons: { sprite: pool } }
+ pool-hall:
+ filter: { kind: [billiards, pool-hall] }
+ draw: { icons: { sprite: pool-hall } }
+ post-office:
+ filter: { kind: [post_office, post-office] }
+ draw: { icons: { sprite: post-office } }
+ power-pylon:
+ filter: { kind: [tower, power-pylon, pylon] }
+ draw: { icons: { sprite: power-pylon } }
+ real-estate:
+ filter: { kind: [estate_agent, real_estate] }
+ draw: { icons: { sprite: real-estate } }
+ recycling-facility:
+ filter: { kind: [recycling, recycling-facility] }
+ draw: { icons: { sprite: recycling-facility } }
+ rental-car:
+ filter: { kind: [rental-car, car_rental, car_sharing] }
+ draw: { icons: { sprite: rental-car } }
+ rest-area:
+ filter: { kind: [rest_area, rest-area] }
+ draw: { icons: { sprite: rest-area } }
+ restaurant:
+ filter: { kind: [restaurant, deli] }
+ draw: { icons: { sprite: restaurant } }
+ ruin:
+ filter: { kind: [ruins, archaeological_site] }
+ draw: { icons: { sprite: ruin } }
+ salon-barber:
+ filter: { kind: [hairdresser, salon-barber, salon, beauty_salon] }
+ draw: { icons: { sprite: salon-barber } }
+ ship-wreck:
+ filter: { kind: [wreck] }
+ draw: { icons: { sprite: ship-wreck } }
+ shoe-store:
+ filter: { kind: [shoes, shoe-store, shoe_store] }
+ draw: { icons: { sprite: shoe-store } }
+ smoke-shop:
+ filter: { kind: [smoke_shop, tobacco] }
+ draw: { icons: { sprite: smoke-shop } }
+ spa-massage:
+ filter: { kind: [spa, spa-massage, sauna, massage] }
+ draw: { icons: { sprite: spa-massage } }
+ spiritual-center:
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel] }
+ draw: { icons: { sprite: spiritual-center } }
+ church:
+ filter: { kind: place_of_worship, religion: christian }
+ draw: { icons: { sprite: church } }
+ synagogue:
+ filter: { kind: place_of_worship, religion: jewish }
+ draw: { icons: { sprite: synagogue } }
+ buddhist:
+ filter: { kind: place_of_worship, religion: buddhist }
+ draw: { icons: { sprite: buddhism } }
+ mosque:
+ filter: { kind: place_of_worship, religion: muslim }
+ draw: { icons: { sprite: mosque } }
+ sporting-goods-shop:
+ filter: { kind: [sporting_goods, sporting-goods-shop, sports, outdoor] }
+ draw: { icons: { sprite: sporting-goods-shop } }
+ stable:
+ filter: { kind: [stable, horse_riding] }
+ draw: { icons: { sprite: stable } }
+ storage-facility:
+ filter: { kind: [storage, storage-facility] }
+ draw: { icons: { sprite: storage-facility } }
+ subway-entrance:
+ filter: { kind: [subway_entrance] }
+ draw: { icons: { sprite: subway-entrance } }
+ tailor-shop:
+ filter: { kind: [tailor, tailor-shop] }
+ draw: { icons: { sprite: tailor-shop } }
+ tattoo-parlor:
+ filter: { kind: [tattoo, tattoo_parlor, tattoo-parlor] }
+ draw: { icons: { sprite: tattoo-parlor } }
+ theme-park:
+ filter: { kind: [theme_park, theme-park, miniature_golf] }
+ draw: { icons: { sprite: theme-park } }
+ thrift-vintage-store:
+ filter: { kind: [thrift, thrift-vintage-store, second_hand] }
+ draw: { icons: { sprite: thrift-vintage-store } }
+ toll-booth:
+ filter: { kind: [toll_booth, checkpoint, border_control] }
+ draw: { icons: { sprite: toll-booth } }
+ toy-game-store:
+ filter: { kind: [toys, toy-game-store, baby_goods] }
+ draw: { icons: { sprite: toy-game-store } }
+ toilets:
+ filter: { kind: [toilets] }
+ draw: { icons: { sprite: toilets } }
+ veterinarian:
+ filter: { kind: [pet_care, veterinarian, veterinary] }
+ draw: { icons: { sprite: veterinarian } }
+ video-game-store:
+ filter: { kind: [video_games] }
+ draw: { icons: { sprite: video-game-store } }
+ video-store:
+ filter: { kind: [video, video_store] }
+ draw: { icons: { sprite: video-store } }
+ view-point:
+ filter: { kind: [viewpoint, view_point, view-point, vista] }
+ draw: { icons: { sprite: view-point } }
+ well:
+ filter: { kind: [well, water_well] }
+ draw: { icons: { sprite: well } }
+ wine-shop:
+ filter: { kind: [wine, wine-shop] }
+ draw: { icons: { sprite: wine-shop } }
+ winery:
+ filter: { kind: [winery, wine] }
+ draw: { icons: { sprite: winery } }
+ winter_sport:
+ filter: { kind: [ski, ski_rental, ski_school, ski_jumping, skiing] }
+ draw: { icons: { sprite: ski-area } }
+
+ # todo: ocean and sea features are hiding in the places layer
+ water-area-labels:
+ data: { source: osm, layer: [water] }
+ visible: *text_visible_water_labels
+ filter:
+ all:
+ - name: true
+ - $geometry: point
+ - not: { kind: [riverbank, dock, playa] }
+ - area: true
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 5 }, area: { min: 10000000000 } }
+ - { $zoom: { min: 6 }, area: { min: 5000000000 } }
+ - { $zoom: { min: 7 }, area: { min: 400000000 } }
+ - { $zoom: { min: 8 }, area: { min: 200000000 } }
+ - { $zoom: { min: 9 }, area: { min: 100000000 } }
+ - { $zoom: { min: 10 }, area: { min: 100000000 } }
+ - { $zoom: { min: 11 }, area: { min: 10000000 } }
+ - { $zoom: { min: 12 }, area: { min: 2000000 } }
+ - { $zoom: { min: 13 }, area: { min: 1000000 } }
+ - { $zoom: { min: 14 }, area: { min: 500000 } }
+ - { $zoom: { min: 15 }, area: { min: 100000 } }
+ - { $zoom: { min: 15 }, area: { min: 50000 } }
+ - { $zoom: { min: 16 }, area: { min: 20000 } }
+ - { $zoom: { min: 17 } }
+ default-label-text:
+ draw:
+ text-blend-order:
+ font:
+ fill: [0.314,0.591,0.640] #*text_fill_water
+ family: *text_font_family
+ style: italic
+ weight: 400
+ size: 12px
+ # stroke: { color: [0.878,0.929,0.980], width: 2 }
+ lakes-z5:
+ filter: { $zoom: [5] }
+ draw:
+ text-blend-order: { font: { size: 9px } }
+ lakes-z6:
+ filter: { $zoom: [6] }
+ draw:
+ text-blend-order: { font: { size: 11px } }
+ lakes-z8:
+ filter: { $zoom: [8] }
+ draw:
+ text-blend-order: { font: { size: 12px } }
+
+ ocean-sea-labels:
+ data: { source: osm, layer: places }
+ visible: *text_visible_water_labels
+ filter: { name: true, kind: [sea, ocean] }
+ draw:
+ text-blend-order:
+ font:
+ fill: [0.314,0.591,0.640] #*text_fill_water
+ family: *text_font_family
+ weight: 400
+ size: 12px
+ transform: uppercase
+ sea-early:
+ filter: { $zoom: [3], kind: sea }
+ draw: { text-blend-order: { visible: false } }
+ ocean-spacer:
+ filter: { kind: ocean }
+ ocean-spacer-z1-z4:
+ filter: { $zoom: { min: 1, max: 4 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+ ocean-spacer-z4-up:
+ filter: { $zoom: { min: 4 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+ ocean-labels-z1:
+ filter: { $zoom: [1] }
+ draw:
+ text-blend-order: { font: { size: 8px } }
+ ocean-labels-z2:
+ filter: { $zoom: [2] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
+ ocean-labels-z3:
+ filter: { $zoom: [3] }
+ draw:
+ text-blend-order: { font: { size: 13px } }
+ ocean-labels-z4-up:
+ filter: { $zoom: { min: 4} }
+ draw:
+ text-blend-order: { font: { size: 16px } }
+
+ sea-spacer:
+ filter: { not: { kind: [ocean] }, $zoom: { min: 5 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+
+ sea-labels:
+ filter: { not: { kind: [ocean] } }
+ sea-labels-z4:
+ filter: { $zoom: [4] }
+ draw:
+ text-blend-order: { font: { size: 9px } }
+ sea-labels-z5:
+ filter: { $zoom: [5] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
+ sea-labels-z6:
+ filter: { $zoom: [6] }
+ draw:
+ text-blend-order: { font: { size: 11px } }
+ sea-labels-z7:
+ filter: { $zoom: [7] }
+ draw:
+ text-blend-order: { font: { size: 12px } }
+ sea-labels-z8:
+ filter: { $zoom: { min: 8} }
+ draw:
+ text-blend-order: { font: { size: 14px } }
+
+ playa-labels:
+ data: { source: osm, layer: [water] }
+ visible: *text_visible_water_labels
+ filter:
+ all:
+ - name: true
+ - $geometry: point
+ - kind: playa
+ - area: true
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 7 }, area: { min: 1500000000 } }
+ - { $zoom: { min: 8 }, area: { min: 200000000 } }
+ - { $zoom: { min: 9 }, area: { min: 100000000 } }
+ - { $zoom: { min: 10 }, area: { min: 100000000 } }
+ - { $zoom: { min: 11 }, area: { min: 10000000 } }
+ - { $zoom: { min: 12 }, area: { min: 2000000 } }
+ - { $zoom: { min: 13 }, area: { min: 1000000 } }
+ - { $zoom: { min: 14 }, area: { min: 500000 } }
+ - { $zoom: { min: 15 }, area: { min: 100000 } }
+ - { $zoom: { min: 15 }, area: { min: 50000 } }
+ - { $zoom: { min: 16 }, area: { min: 20000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ font:
+ fill: grey
+ family: *text_font_family
+ style: italic
+ weight: 400
+ size: 12px
+ stroke: { color: *text_stroke_water, width: 3 }
+ # debug only
+# icons:
+# size: [[13, 12px], [15, 18px]]
+# interactive: true
+# sprite: *townspot_sprite
+ water-line-labels:
+ data: { source: osm, layer: [water] }
+ filter:
+ all:
+ - name: true
+ - $geometry: line
+ - kind: [river,canal,stream,dam,ditch,drain]
+ - $zoom: { min: 14 }
+ draw:
+ text-blend-order:
+ font:
+ fill: [0.314,0.591,0.640]
+ family: *text_font_family
+ style: italic
+ weight: 400
+ size: 12px
+ water-line-labels-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
+ water-line-labels-z17:
+ filter: { $zoom: [17] }
+ draw:
+ text-blend-order: { font: { size: 14px } }
+ not-river-not-stream:
+ filter: { kind: [canal,dam,ditch,drain], $zoom: { max: 16 } }
+ draw:
+ text-blend-order:
+ visible: false
+ stream:
+ filter: { kind: [stream], $zoom: { max: 17 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+ landuse:
+ data: { source: osm }
+ draw:
+ dots2:
+ order: function() { return feature.sort_key; }
+ visible: false
+ dots-rev:
+ order: function() { return feature.sort_key; }
+ visible: false
+ polygons:
+ order: function() { return feature.sort_key; }
+ tier1:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 3 }, area: { min: 300000000 } }
+ - { $zoom: { min: 4 }, area: { min: 300000000 } }
+ - { $zoom: { min: 5 }, area: { min: 150000000 } }
+ - { $zoom: { min: 6 }, area: { min: 150000000 } }
+ - { $zoom: { min: 7 }, area: { min: 100000000 } }
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ national_park:
+ filter: { kind: [national_park, "park or protected land"], not: { operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ] } }
+ draw:
+ dots2:
+ color: [[4,[0.655,0.800,0.796]],[8,[0.588,0.780,0.773]]]
+ # todo: what is this?
+ order: 18
+ visible: true
+ us_national_park:
+ # yosemite national park, death valley national park, grand canyon national park
+ filter: { operator: [ "United States National Park Service", "US National Park Service" ] }
+ draw:
+ dots2:
+ color: [[4,[0.525,0.765,0.686]],[9,[0.416,0.737,0.631]]]
+ order: 19
+ visible: true
+ # color: [[4,[0.242,0.737,0.712]],[12,[0.224,0.682,0.659]]]
+ tier2:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 4 }, area: { min: 1000000000 } }
+ - { $zoom: { min: 5 }, area: { min: 1000000000 } }
+ - { $zoom: { min: 6 }, area: { min: 150000000 } }
+ - { $zoom: { min: 7 }, area: { min: 100000000 } }
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 250000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ conservation:
+ filter:
+ kind: [conservation, protected_area, nature_reserve]
+ $zoom: { min: 4 }
+ draw:
+ dots2:
+ color: [0.420,0.808,0.698]
+ visible: true
+ wilderness-areas:
+ filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
+ draw:
+ dots2:
+ order: 25
+ color: [0.027,0.804,0.494]
+ visible: true
+
+ national_forest_level_6:
+ filter: { protect_class: ["6",6] }
+ draw:
+ dots2:
+ color: [0.442,0.960,0.865] #*green7
+ visible: true
+
+ # gotta be a protected area to draw green, not just a landcover type
+ farm:
+ filter:
+ kind: [farm, farmland]
+ $zoom: { min: 10}
+ draw:
+ dots2:
+ color: [0.600,0.790,0.714]
+ visible: *green4_v
+ forest:
+ filter: { kind: [forest,wood], $zoom: { min: 6 } }
+ national-forest:
+ filter:
+ operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ]
+ draw:
+ dots2:
+ color: *green7
+ visible: true
+
+ landuse-forest:
+ filter:
+ not: { operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ] }
+ $zoom: { min: 10 }
+ draw:
+ dots2:
+ color: [0.486,0.839,0.722]
+ visible: true
+
+ nature_reserve:
+ filter: { kind: nature_reserve, $zoom: { min: 7 } }
+ draw:
+ dots2:
+ color: [0.596,0.788,0.624]
+ visible: true
+ wilderness-areas:
+ filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
+ draw:
+ dots2:
+ color: *green7
+ visible: true
+
+ parks-and-national-forests-not-national-park:
+ filter: { $zoom: { min: 4 }, kind: [park, national_park, "park or protected land"], not: { operator: [ "United States National Park Service", "US National Park Service" ] } }
+ # default for national forests and more?
+ draw:
+ dots2:
+ # color: [[4,[0.655,0.800,0.796]],[11,[0.588,0.780,0.773]],[12,[0.242,0.737,0.712]],[14,[0.412,0.733,0.718]],[15,[0.635,0.792,0.788]]]
+ color: [[4,[0.655,0.800,0.796]],[11,[0.588,0.780,0.773]],[12,[0.635,0.792,0.788]]]
+ visible: true
+ urban:
+ filter: { kind: [urban, rural, residential] }
+ visible: *earth2_v
+ draw:
+ dots2:
+ color: [[0,*earth2],[9,*earth2]]
+ visible: *earth2_v
+ tier3:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ airport:
+ filter:
+ kind: aerodrome
+ draw:
+ dots2:
+ color: [0.805,0.805,0.825]
+ visible: *purple_v
+ military:
+ filter:
+ kind: military
+ draw:
+ dots2:
+ color: [0.722,0.769,0.827]
+ visible: true
+ university:
+ filter:
+ kind: [university, college]
+ draw:
+ dots2:
+ color: [0.827,0.753,0.682]
+ visible: true
+ tier4:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ cemetery:
+ filter:
+ kind: cemetery
+ draw:
+ dots2:
+ color: *green2
+ visible: true
+ commercial:
+ filter:
+ kind: commercial
+ draw:
+ dots2:
+ color: [0.855,0.748,0.667]
+ visible: *grey1_v
+ golf_course:
+ filter:
+ kind: golf_course
+ draw:
+ dots2:
+ color: [0.353,0.812,0.545]
+ visible: true
+ hospital:
+ filter:
+ kind: hospital
+ draw:
+ dots2:
+ color: [0.843,0.624,0.647]
+ visible: true
+ industrial:
+ filter:
+ kind: industrial
+ draw:
+ dots-rev:
+ color: [[8,[0.845,0.845,0.845]],[14,[0.835,0.835,0.835]],[15,[0.780,0.780,0.780]]]
+ visible: true
+ power:
+ filter: { kind: [plant, generator, substation] }
+ draw:
+ dots2:
+ color: [0.679,0.679,0.679]
+ visible: true
+ railway:
+ filter:
+ kind: railway
+ draw:
+ dots-rev:
+ color: [0.898,0.910,0.918]
+ visible: true
+ sports_centre:
+ filter:
+ kind: sports_centre
+ draw:
+ dots2:
+ color: *green10
+ recreation_ground:
+ filter:
+ kind: recreation_ground
+ draw:
+ dots2:
+ color: *green1
+ visible: true
+ retail:
+ filter:
+ kind: retail
+ draw:
+ dots2:
+ color: [0.955,0.752,0.650]
+ visible: *grey1_v
+ stadium:
+ filter:
+ kind: stadium
+ draw:
+ dots2:
+ color: [0.624,0.690,0.761]
+ visible: true
+ zoo:
+ filter:
+ kind: [zoo, wildlife_park]
+ draw:
+ dots2:
+ color: [0.498,1.000,0.851]
+ visible: true
+ winter_sports:
+ filter:
+ kind: winter_sports
+ draw:
+ dots2:
+ color: *grey8
+ visible: *grey8_v
+ man-made:
+ filter: { kind: [pier,wastewater_plant,works,bridge,tower,breakwater,water_works,groyne,dike,cutline] }
+ draw:
+ dots2:
+ color: [0.690,0.690,0.690]
+ visible: true
+ pier:
+ filter: { kind: [pier,bridge,breakwater,groyne,dike,cutline] }
+ draw:
+ dots2:
+ color: [0.679,0.679,0.679]
+ visible: true
+ tier5:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 400000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 50000 } }
+ - { $zoom: { min: 14 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 10000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ all:
+ - kind:
+ - theme_park
+ - resort
+ - aquarium
+ - winery
+ - maze
+ - beach
+ tourism-related:
+ filter:
+ kind:
+ - theme_park
+ - resort
+ - aquarium
+ - winery
+ - maze
+ draw:
+ dots2:
+ color: *grey10
+ visible: true
+ beach:
+ filter:
+ kind: beach
+ draw:
+ dots2:
+ color: [0.780,0.740,0.538]
+ visible: true
+ tier6:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ garden:
+ filter:
+ kind: garden
+ draw:
+ dots2:
+ color: [0.604,0.973,0.722]
+ visible: true
+ parking:
+ filter:
+ all:
+ - kind: parking
+ - $zoom: { min: 14 }
+ any:
+ - { $zoom: { min: 14 }, area: { min: 10000 } }
+ - { $zoom: { min: 15 }, area: { min: 5000 } }
+ draw:
+ dots2:
+ color: [0.765,0.765,0.765]
+ visible: *grey1_v
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ dots2:
+ color: *grey1_e
+ visible: true
+ pedestrian:
+ filter:
+ kind: [pedestrian,common]
+ draw:
+ dots2:
+ color: [0.740,0.740,0.740]
+ visible: *grey1_v
+ green-stuff:
+ filter:
+ surface: [grass]
+ draw:
+ dots2:
+ color: [0.584,0.843,0.792]
+ pitch:
+ filter: { kind: pitch }
+ draw:
+ dots2:
+ color: [0.490,0.812,0.631]
+ visible: true
+ place_of_worship:
+ filter:
+ kind: place_of_worship
+ draw:
+ dots2:
+ color: [0.910,0.972,1.000]
+ visible: *grey1_v
+ playground:
+ filter:
+ kind: playground
+ draw:
+ dots-rev:
+ color: [0.584,0.843,0.792]
+ visible: true
+ school:
+ filter:
+ kind: school
+ draw:
+ dots2:
+ color: [0.749,0.722,0.694]
+ visible: true
+ minor-landuse:
+ filter:
+ kind:
+ - attraction
+ - artwork
+ - wilderness_hut
+ - hanami
+ draw:
+ dots2:
+ color: [0.765,0.765,0.765]
+ visible: true
+
+ landuse-not-filtered:
+ data: { source: osm, layer: landuse }
+ # runways and taxiways are also in the roads layer as lines
+ # these ones are probably duplicate features, but have AREA (a good thing)
+ filter:
+ kind:
+ - runway
+ - apron
+ - beach
+ - roller_coaster
+ - amusement_ride
+ - summer_toboggan
+ - trail_riding_station
+ - water_slide
+ - carousel
+ - animal
+ - enclosure
+ - petting_zoo
+ - aviary
+ draw:
+ dots2:
+ order: function() { return feature.sort_key; }
+ visible: false
+ dots-rev:
+ order: function() { return feature.sort_key; }
+ visible: false
+ polygons:
+ visible: false
+ order: function() { return feature.sort_key; }
+ runway:
+ filter:
+ kind: runway
+ draw:
+ polygons:
+ visible: true
+ color: [[10,[0.4,0.4,0.4]],[11,[0.50,0.50,0.50]],[12,[0.7,0.7,0.7]],[13,[0.75,0.75,0.75]],[14,[0.95,0.95,0.95]]]
+ apron:
+ filter:
+ kind: apron
+ $zoom: { min: 15}
+ draw:
+ dots-rev:
+ visible: true
+ color: [0.820,0.820,0.820]
+ minor-amusement-park-landuse:
+ filter:
+ kind:
+ - roller_coaster
+ - amusement_ride
+ - summer_toboggan
+ - trail_riding_station
+ - water_slide
+ - carousel
+ draw:
+ dots2:
+ color: *grey12
+ visible: true
+ minor-zoo-landuse:
+ filter:
+ kind:
+ - animal
+ - enclosure
+ - petting_zoo
+ - aviary
+ draw:
+ dots2:
+ color: *green11
+ visible: true
+ landuse_urban_area-early:
+ data: { source: osm, layer: landuse }
+ filter:
+ # This is from Natural Earth and only shows up from zoom(0,9)
+ kind: ['urban area']
+ draw:
+ dots2:
+ visible: *earth2_ev
+ order: function() { return feature.sort_key; }
+ color: [[4,[0.965,0.600,0.882]],[6,[0.965,0.600,0.882]],[7,[0.882,0.639,0.827]],[8,[0.757,0.729,0.753]]]
+
+
+ debug:
+ data: { source: osm }
+ draw:
+ flat_lines:
+ width: 2px
+ order: 1000
+ color: '#ff0000'
--- /dev/null
+# Terrain environment map demo
+
+labels-global:
+ - &text_visible_continent true
+ - &text_visible_island true
+ - &text_visible_admin true
+ - &text_visible_populated_places true
+ - &icon_visible_populated_places true
+ - &text_visible_neighbourhoods true
+ - &text_visible_neighbourhoods_e true
+ - &text_visible_building true
+ - &text_visible_address true
+ - &text_visible_water_labels true
+ - &label_visible_landuse_green true
+ - &icon_visible_landuse_green true
+ - &text_visible_landuse_green true
+ - &label_visible_poi_landuse true
+ - &icon_visible_poi_landuse true
+ - &text_visible_poi_landuse true
+ - &label_visible_poi_landuse_e true
+ - &icon_visible_poi_landuse_e true
+ - &text_visible_poi_landuse_e true
+ - &label_visible_station true
+ - &icon_visible_station true
+ - &text_visible_station true
+ - &text_visible_highway true
+ - &text_visible_highway_e true
+ - &text_visible_trunk_primary true
+ - &text_visible_trunk_primary_e2 true
+ - &text_visible_trunk_primary_e true
+ - &text_visible_secondary true
+ - &text_visible_secondary_e true
+ - &text_visible_tertiary true
+ - &text_visible_tertiary_e true
+ - &text_visible_minor_road true
+ - &text_visible_minor_road_e true
+ - &text_visible_service_road true
+ - &text_visible_path true
+ - &text_visible_piste true
+ - &text_visible_steps true
+ - &text_visible_aerialway true
+ - &text_visible_shields false
+ - &text_visible_exits true
+ - &text_visible_exits_e true
+ - &text_visible_airport_gate true
+
+settings:
+ cameras:
+ - &camera_settings { type: isometric, axis: [-.2, .2] }
+
+ lights:
+ - &light_settings { type: directional, direction: [1, 1, -.9], diffuse: 0.5, ambient: 0.85 }
+
+ roads:
+ - &highway1 [1.00,1.00,1.00]
+ - &highway_link1 [0.00, 0.00, 0.00]
+ - &highway_casing1 [0.894,0.906,0.914]
+ - &highway_tunnel1 [0.930,0.930,0.930]
+ - &highway_tunnel_casing1 [0.894,0.906,0.914]
+ - &highway_link_tunnel_casing1 [0.350,0.350,0.350]
+ - &ferry1 [0.410,0.750,0.833]
+ - &rail1 '#999'
+ - &rail1_e '#bbb'
+ - &rail2 '#777' # less important rail (service, sidings)
+ - &major_road1 [1.0, 1.0, 1.0]
+ - &major_road1b [0.935, 0.935, 0.935]
+ - &major_road1c white #15%
+ - &major_road2 [0.935, 0.935, 0.935]
+ - &major_road2a [0.935, 0.935, 0.935]
+ - &major_road2b [0.935, 0.935, 0.935]
+ - &major_road3 [0.935, 0.935, 0.935]
+ - &major_road4 [0.00, 0.00, 0.00]
+ - &major_road5 white
+ - &major_casing1 [0.40, 0.40, 0.40] # same as highway_casing1
+ - &major_casing2 [0.40, 0.40, 0.40] # zoomed out
+ - &major_tunnel1 [0.930,0.930,0.930]
+ - &major_tunnel_casing1 [1.00, 1.00, 1.00]
+ - &major_route1 [0.0, 0.0, 0.0]
+ - &major_route2 [0.2, 0.2, 0.2] # zoomed out
+ - &minor_route [0.97, 0.97, 0.97] # same as major_route
+ - &minor_road1 [0.935, 0.935, 0.935] # natural earth
+ - &minor_road2 [1.00,1.00,1.00] # natural earth, same as major_road2
+ - &minor_road3 [0.935, 0.935, 0.935]
+ - &minor_road4 [0.935, 0.935, 0.935] # zoomed out
+ - &minor_road5 [0.935, 0.935, 0.935] # zoomed out, again
+ - &minor_casing1 white # same as highway_casing1
+ - &minor_casing2 white # zoomed out
+ - &minor_tunnel1 [0.930,0.930,0.930]
+ - &minor_tunnel_casing1 [1.00, 1.00, 1.00]
+ - &service_road1 [0.935, 0.935, 0.935]
+ - &service_road2 white
+ - &service_road_casing1 [0.40, 0.40, 0.40]
+ - &service_road_casing2 white
+ - &path1 [0.97, 0.97, 0.97]
+ - &path2 [0.97, 0.97, 0.97] # zoomed out
+ - &path_casing1 [0.40, 0.40, 0.40]
+ - &path_bridge_casing1 [0.40, 0.40, 0.40]
+ - &path_bridge_casing2 [0.40, 0.40, 0.40] # zoomed out
+ - &path_steps1 red
+ - &path_steps1_b '#ccc'
+ - &piste_easy [0.367,0.750,0.622]
+ - &piste_intermediate [0.420,0.678,0.863]
+ - &piste_advanced [0.450,0.450,0.450]
+ - &piste_expert [0.450,0.450,0.450]
+
+ boundaries:
+ - &country_boundary [1.00,1.00,1.00]
+ - ®ion_boundary [1.00,1.00,1.00]
+ - &subregion_boundary [1.00,1.00,1.00]
+ - &city_wall [0.682,0.682,0.682]
+ - &retaining_wall [0.827,0.808,0.780]
+ - &snow_fence [0.827,0.808,0.780]
+ - &fence [0.827,0.808,0.780]
+ - &dam [0.827,0.808,0.780]
+
+ areas:
+ - &scene1 white # map background
+ - &water1 [0.870, 0.870, 0.870] # water wave
+ - &water2 [0.760, 0.760, 0.760] # water wave
+ - &water3 [0.5, 0.5, 0.5] # playa texture
+ - &water1_o '#fff' # water stroke (ocean coastline)
+ - &water2_o '#d1d1d1' # water stroke 2 (streams, lake outlines)
+ - &earth1 white # land color
+ - &earth2 '#e9e4e0' # urban
+ - &earth2_v false # urban
+ - &green1 [0.50,0.50,0.50] # park
+ - &green1_r '#bbbbbb' # park roads
+ - &green1_b [.65, .65, .65] # park buildings
+ - &green1_bo [.8, .8, .8] # park building outlines
+ - &green2 [0.90,0.90,0.90] # cemetery
+ - &green3 '#9a9a9a' # golf course
+ - &green4 [0.90,0.90,0.90] # farm faint
+ - &green4_v false # farm faint
+ - &green5 [0.75,0.75,0.75] # farm
+ - &green6 [0.40,0.40,0.40] # nature reserve
+ - &green7 [0.85,0.85,0.85] # forest
+ - &green8 [0.80,0.80,0.80] # conservation
+ - &green9 [0.85,0.85,0.85] # forest (landcover)
+ - &green9_e [0.90,0.90,0.90] # forest (landcover) early
+ - &green9_v true # forest (landcover) visibility
+ - &green10 [0.85,0.85,0.85] # sports_centre
+ - &green11 [0.85,0.85,0.85] # minor zoo related AOIs
+ - &green11_o [0.85,0.85,0.85] # minor zoo related AOIs outline
+ - &orange1 '#aaaaaa' # stadium
+ - &orange2 [0.40,0.40,0.40] # pitch (play field)
+ - &brown1 '#7b7b7b' # university
+ - &brown1_r '#bbbbbb' # university roads
+ - &brown1_b [.65, .65, .65] # university buildings
+ - &brown1_bo [.8, .8, .8] # university building outlines
+ - &brown2 '#aaaaaa' # school
+ - &brown3 [0.40,0.40,0.40] # playground
+ - &red1 '#a2a2a2' # hospital
+ - &red1_r '#bbbbbb' # hospital roads
+ - &red1_b [.65, .65, .65] # hospital buildings
+ - &red1_bo [.8, .8, .8] # hospital building outlines
+ - &gray-all [0.935,0.960,0.970] # default gray for landuse outdoor style
+ - &grey1 '#cccccc' # pedestrian, retail, airport apron, parking, church
+ - &grey1_e '#dad6d4' # pedestrian, retail, airport apron, parking, church early zoom 14
+ - &grey1_v true # pedestrian, retail, airport apron, parking, church
+ - &grey2 [0.5, 0.5, 0.5] # airport runway
+ - &grey3 '#bbbbbb' # railway
+ - &grey4 '#ffc52a' # airport taxiway
+ - &grey5 '#ffc52a' # airport taxiway
+ - &grey6 '#dddddd' # industrial
+ - &grey6_b [.65, .65, .65] # industrial buildings
+ - &grey6_bo [.8, .8, .8] # industrial building outlines
+ - &grey7 '#ecebe9' # pedestrian, match minor road / path color
+ - &grey7_v true # pedestrian visibility
+ - &grey8 '#ecebe9' # winter sports
+ - &grey8_v true # winter sports visibility
+ - &grey9 [.7, .0, .0, 0.5] #[.7, .7, .7] # transit platform
+ - &grey9_o [.5, .5, .5] # transit platform outline
+ - &grey9_v true # transit platform visibility
+ - &grey10 '#d4cce6' # generic major landuse (theme park, resort, aquarium, winery)
+ - &grey10_o '#bcb9c5' # generic major landuse outline
+ - &grey11 '#d7d7d7' # generic minor landuse (attraction, artwork)
+ - &grey11_o '#cccccc' # generic minor landuse outline
+ - &grey12 '#cfcfcf' # generic minor amusements (roller coasters, rides, slide, carousel)
+ - &grey12_o '#c5c5c5' # generic minor amusements
+ - &purple '#f0e1e1' # airport
+ - &purple_v false # airport
+ - &mystry1 '#aaaaaa' # recreation ground (type of park, sometimes around reservoirs)
+ - &building1 white # building
+ - &building2 white # building stroke
+ - &building_o 25 # building stroke order
+ - &building_e true # building stroke order
+
+ labels:
+ - &text_fill '#000' # WHITE
+ - &text_fill2 '#000' # WHITE
+ - &text_fill_road_e '#555' # WHITE
+ - &text_fill_exits [0.40,0.40,0.40] # motorway junctions, highway_casing1
+ - &text_fill_building '#000' # tan
+ - &text_fill_address [0.60,0.60,0.60] # HUH
+ - &text_fill_water [0.354,0.531,0.620] # blue
+ - &text_fill_park [0.175,0.175,0.175] # green
+ - &text_fill_beach [0.35,0.35,0.35] # black
+ - &text_fill_piste [0.350,0.350,0.350] # dark gray
+ - &text_fill_piste_e [0.350,0.350,0.350] # dark gray early
+ - &text_stroke [0.913,0.925,0.933] # land color
+ - &text_stroke_park [0.913,0.925,0.933] # land color
+ - &text_stroke_water [0.913,0.925,0.933]
+ - &text_stroke_address [0.913,0.925,0.933] # address stroke color
+ - &townspot_sprite townspot-m-rev # depends on land color and text settings
+ - &text_font_family 'Open Sans' # branding in asperational Unicode, yo (or Helvetica)
+
+cameras:
+ camera1: *camera_settings
+
+scene:
+ background:
+ color: [0.894,0.902,0.898]
+ # animated: true
+
+textures:
+ pois:
+ url: images/poi_icons_18@2x.png
+ filtering: mipmap
+ sprites:
+ # define sprites: [x origin, y origin, width, height]
+ airport: [952, 0, 38, 38]
+ allotments: [552, 252, 38, 38]
+ aquarium: [916, 168, 38, 38]
+ art-gallery: [824, 168, 38, 38]
+ athletics-sports: [368, 168, 38, 38]
+ atm: [92, 168, 38, 38]
+ attraction: [550, 210, 38, 36]
+ automotive-shop: [184, 168, 38, 38]
+ bakery: [732, 168, 38, 38]
+ bank: [138, 168, 38, 36]
+ bar: [414, 168, 38, 38]
+ baseball-field: [690, 84, 38, 38]
+ basketball-court: [644, 84, 38, 38]
+ battlefield: [826, 210, 38, 38]
+ bbq: [230, 252, 38, 38]
+ beach: [828, 84, 38, 38]
+ beach-resort: [734, 210, 38, 38]
+ beer-garden: [458, 210, 38, 38]
+ bench: [630, 0, 38, 38]
+ bicycle-parking: [828, 126, 38, 38]
+ bike-shop: [46, 168, 38, 38]
+ boat-ferry: [906, 0, 38, 38]
+ boat-ramp: [276, 84, 40, 38]
+ boat-rental: [598, 252, 38, 38]
+ bookstore: [0, 168, 38, 38]
+ bridge: [92, 126, 38, 38]
+ buddhism: [966, 84, 38, 38]
+ building: [598, 168, 34, 34]
+ burger: [320, 210, 38, 38]
+ bus-station: [860, 0, 38, 38]
+ butcher: [46, 84, 38, 38]
+ campground: [0, 126, 38, 38]
+ candy-store: [182, 210, 38, 38]
+ capital-l: [146, 294, 16, 16]
+ capital-m: [126, 294, 12, 12]
+ capital-s: [106, 294, 10, 10]
+ capital-xl: [170, 294, 20, 20]
+ capital-xs: [92, 294, 8, 8]
+ car-dealership: [964, 126, 38, 38]
+ caravan-site: [964, 210, 38, 38]
+ castle: [506, 42, 38, 38]
+ cemetery: [920, 84, 38, 38]
+ church: [414, 126, 38, 38]
+ clothing-store: [0, 210, 38, 38]
+ coffee-shop: [686, 168, 38, 36]
+ college-university: [46, 210, 38, 38]
+ convenience-store: [184, 84, 38, 38]
+ courthouse: [446, 0, 38, 38]
+ current-location: [702, 294, 88, 86]
+ dentist: [266, 0, 34, 34]
+ department-store: [918, 126, 38, 38]
+ doctors: [224, 0, 34, 34]
+ dog-park: [138, 252, 38, 38]
+ dot-black: [0, 294, 38, 38]
+ dot-white: [966, 252, 38, 38]
+ drinking-water: [412, 210, 38, 38]
+ dry-cleaning: [138, 84, 38, 38]
+ electronics-store: [782, 126, 38, 38]
+ factory: [552, 168, 38, 38]
+ fire-station: [400, 0, 38, 38]
+ firepit: [92, 252, 38, 38]
+ fishing-area: [0, 252, 38, 38]
+ fitness: [0, 84, 38, 38]
+ flower-shop: [368, 126, 38, 38]
+ forest: [228, 210, 38, 38]
+ fountain: [506, 126, 38, 38]
+ garden: [874, 84, 38, 38]
+ gas: [736, 252, 38, 38]
+ gas-station: [136, 210, 38, 38]
+ generic: [46, 294, 38, 38]
+ geyser: [688, 210, 38, 38]
+ gift-shop: [322, 126, 38, 38]
+ golf-course: [598, 84, 38, 38]
+ government-building: [322, 168, 38, 38]
+ grocery-store: [736, 126, 38, 38]
+ harbor-marina: [276, 168, 40, 38]
+ hardware-store: [966, 42, 38, 38]
+ historic-site: [276, 126, 38, 38]
+ hospital: [182, 0, 34, 34]
+ hot-spring: [460, 84, 38, 38]
+ hotel: [814, 0, 38, 38]
+ hunting: [642, 210, 38, 38]
+ ice-cream-shop: [504, 210, 38, 38]
+ information: [596, 210, 38, 36]
+ jewelry-store: [828, 42, 38, 38]
+ landmark: [354, 0, 38, 38]
+ laundry: [782, 42, 38, 38]
+ library: [0, 0, 38, 38]
+ light-rail: [768, 0, 38, 38]
+ lighthouse: [414, 84, 38, 38]
+ liquor-store: [690, 126, 38, 38]
+ locate-off: [80, 426, 72, 70]
+ locate-on: [0, 426, 72, 70]
+ mall: [736, 42, 38, 38]
+ market: [690, 42, 38, 38]
+ mine: [874, 42, 38, 38]
+ mobile-phone-shop: [598, 42, 38, 38]
+ mosque: [90, 0, 38, 38]
+ motorcycle: [368, 252, 38, 38]
+ mountain: [368, 84, 38, 38]
+ movie-theatre: [962, 168, 38, 38]
+ museum: [230, 126, 38, 38]
+ music-store: [460, 42, 38, 38]
+ newsstand: [414, 42, 38, 38]
+ observatory: [690, 252, 38, 38]
+ office: [782, 84, 38, 38]
+ optical-shop: [368, 42, 38, 38]
+ outdoor: [828, 252, 38, 38]
+ park: [460, 126, 38, 38]
+ parking: [874, 126, 38, 36]
+ performing-arts: [778, 168, 38, 38]
+ pet-store: [322, 42, 38, 38]
+ pharmacy: [92, 84, 38, 38]
+ photography-lab: [276, 42, 38, 38]
+ picnic-spot: [322, 252, 38, 38]
+ pier: [722, 0, 38, 38]
+ playground: [552, 42, 38, 38]
+ police: [308, 0, 38, 38]
+ pool: [322, 84, 38, 38]
+ post-office: [506, 168, 38, 38]
+ quarry: [920, 42, 40, 38]
+ ranger-station: [276, 252, 38, 38]
+ real-estate: [230, 42, 38, 38]
+ recreation-track: [460, 252, 38, 38]
+ recycling-facility: [184, 42, 38, 38]
+ rental-car: [676, 0, 38, 38]
+ restaurant: [274, 210, 38, 38]
+ route-arrow: [408, 294, 128, 128]
+ route-start: [622, 294, 72, 92]
+ route-stop: [544, 294, 72, 92]
+ ruin: [584, 0, 38, 38]
+ salon-barber: [138, 42, 38, 38]
+ school: [736, 84, 38, 38]
+ scuba-diving: [782, 252, 38, 38]
+ search-active: [796, 294, 72, 108]
+ search-inactive: [876, 294, 72, 108]
+ shoe-store: [644, 42, 38, 38]
+ shower: [918, 210, 38, 38]
+ ski-area: [552, 126, 38, 38]
+ slipway: [872, 210, 38, 38]
+ soccer-field: [552, 84, 38, 38]
+ spiritual-center: [460, 168, 38, 38]
+ sporting-goods-shop: [92, 42, 38, 38]
+ spring: [506, 84, 38, 38]
+ stadium: [644, 126, 38, 38]
+ subway-entrance: [538, 0, 38, 38]
+ summer-camp: [506, 252, 38, 38]
+ swimming-area: [46, 252, 38, 38]
+ synagogue: [44, 0, 38, 38]
+ tailor-shop: [46, 42, 38, 38]
+ telescope: [644, 252, 38, 38]
+ tennis: [598, 126, 38, 38]
+ theme-park: [184, 126, 38, 38]
+ toilets: [46, 126, 38, 38]
+ townspot-l: [356, 294, 16, 16]
+ townspot-l-rev: [250, 294, 16, 16]
+ townspot-m: [336, 294, 12, 12]
+ townspot-m-rev: [230, 294, 12, 12]
+ townspot-s: [318, 294, 10, 10]
+ townspot-s-rev: [212, 294, 10, 10]
+ townspot-xl: [380, 294, 20, 20]
+ townspot-xl-rev: [274, 294, 20, 20]
+ townspot-xs: [302, 294, 8, 8]
+ townspot-xs-rev: [198, 294, 6, 6]
+ toy-game-store: [0, 42, 38, 38]
+ traffic-signal: [92, 210, 36, 34]
+ trailhead: [874, 252, 38, 38]
+ train-station: [492, 0, 38, 38]
+ tree: [920, 252, 38, 38]
+ veterinarian: [136, 0, 38, 38]
+ view-point: [870, 168, 40, 38]
+ vineyard: [230, 168, 40, 38]
+ volcano: [230, 84, 38, 38]
+ water-tower: [414, 252, 38, 38]
+ waterfall: [184, 252, 38, 38]
+ waterpark: [780, 210, 38, 38]
+ wine-bar: [366, 210, 38, 38]
+ winery: [640, 168, 38, 38]
+ zoo: [138, 126, 38, 38]
+
+ building-grid:
+ url: images/building-grid.gif
+ filtering: mipmap
+
+sources:
+ mapzen:
+ type: TopoJSON
+ # prod
+ url: https://vector.mapzen.com/osm/all/{z}/{x}/{y}.topojson?api_key=vector-tiles-TMwazSG
+ # earlier prod version
+ #url: https://vector.mapzen.com/osm/v0.9/all/{z}/{x}/{y}.topojson?api_key=vector-tiles-JUsa0Gc
+ # dev
+ #url: http://vector.dev.mapzen.com/osm/all/{z}/{x}/{y}.topojson
+ # staging (proxy)
+ #url: //localhost:8081/osm/all/{z}/{x}/{y}.topojson
+ # local tiles
+ #url: //localhost:8080/all/{z}/{x}/{y}.topojson
+ rasters: [normals]
+ max_zoom: 16
+ normals: # normals
+ type: Raster
+ # prod
+ url: https://terrain-preview.mapzen.com/normal/{z}/{x}/{y}.png
+ # staging
+ #url: https://s3.amazonaws.com/elevation-tiles-prod/normal/{z}/{x}/{y}.png
+ # dev
+ #url: https://s3.amazonaws.com/mapzen-terrain-dev-us-east/v0.0.3/normal/{z}/{x}/{y}.png
+ #url: https://s3.amazonaws.com/mapzen-terrain-dev-us-east/v0.0.2/normal/{z}/{x}/{y}.png
+ max_zoom: 15
+
+styles:
+ highlight:
+ base: lines
+ dots-lines:
+ base: lines
+ lighting: false
+ texcoords: true
+ blend: overlay
+ shaders:
+ defines:
+ dotSize: .1
+ blocks:
+ color: |
+ vec2 st = fract(v_texcoord.xy);
+ st -= .5;
+ color.a = 1.- step(dotSize, dot(st,st)*2.);
+ dashed:
+ base: lines
+ dash: [1.25, 1.25]
+ dash_background_color: [0.808,0.860,0.851]
+ dashedTunnel:
+ base: lines
+ dash: [5, 3]
+ #dash_background_color: red
+ dashedline:
+ base: lines
+ texcoords: true
+ shaders:
+ defines:
+ background: vec3(0.867, 0.867, 0.867)
+ blocks:
+ color: |
+ // blend line 50/50 between two colors
+ float t = fract(v_texcoord.y*.5);
+ float e = 0.1; // edge feather
+ vec3 v = vec3(
+ smoothstep(.0, e, t) *
+ (1. - smoothstep(.5, .5 + e, t))
+ );
+ color.rgb = mix(color.rgb, background, v);
+
+ functions-map:
+ shaders:
+ defines:
+ EPSILON: 0.0000001
+ blocks:
+ global: |
+ float map (in float value, in float inputMin, in float inputMax, in float outputMin, in float outputMax, bool clamp) {
+ if (abs(inputMin - inputMax) < EPSILON){
+ return outputMin;
+ } else {
+ float outVal = ((value - inputMin) / (inputMax - inputMin) * (outputMax - outputMin) + outputMin);
+
+ if( clamp ){
+ if(outputMax < outputMin){
+ if( outVal < outputMax ) outVal = outputMax;
+ else if( outVal > outputMin ) outVal = outputMin;
+ } else {
+ if( outVal > outputMax ) outVal = outputMax;
+ else if( outVal < outputMin ) outVal = outputMin;
+ }
+ }
+ return outVal;
+ }
+ }
+
+ float map (in float value, in float inputMin, in float inputMax, in float outputMin, in float outputMax) {
+ return map(value, inputMin, inputMax, outputMin, outputMax, true);
+ }
+ space-tile:
+ shaders:
+ blocks:
+ global: |
+ // Variant to be add to both vertex and fragments shaders
+ varying vec3 v_pos;
+ //
+ // Get the coordinates in tile space
+ // ================================
+ vec2 getTileCoords () {
+ return fract(v_pos.xy);
+ }
+ position: |
+ // Normalize the attribute position of a vertex
+ v_pos = modelPosition().xyz;
+
+ grids-grid:
+ shaders:
+ blocks:
+ global: |
+ // Draw a grid in the space a specific resolution and pressition
+ bool grid(vec2 st, float res, float press){
+ vec2 grid = fract(st*res);
+ return grid.x < res*press || grid.y < res*press;
+ }
+ //
+ // Draw a grid in the space a specific resolution
+ bool grid(vec2 st, float res){
+ return grid(st, res, 1.0);
+ }
+
+ grids-tile:
+ mix: [space-tile,grids-grid]
+ shaders:
+ blocks:
+ global: |
+ // Draw a grid using tile coordenates in a specific resolution
+ float tileGrid(float res){
+ vec2 st = getTileCoords()*100.*res;
+ float pct = 0.0;
+ float press = .4+(1.0-fract(u_map_position.z))*0.1; //0.4
+ if (grid(st,0.01,press)) pct += .5; //.5
+ return pct;
+ }
+ // Draw two grid that smoothly interpolates acording to zooms
+ float tileGrid(){
+ return mix(tileGrid(1.),tileGrid(2.),fract(u_map_position.z));
+ }
+
+ grid:
+ base: polygons
+ mix: [grids-tile]
+ shaders:
+ blocks:
+ color: |
+ color = v_color*tileGrid();
+ // color = vec4(v_color.r, v_color.g, v_color.b, 1.0);
+ // color.rgba
+
+ shapes-rect:
+ shaders:
+ blocks:
+ global: |
+ // get distance field of a rectangle in the center
+ // ================================
+ float rectDF(vec2 st, vec2 size) {
+ //float aspect = u_resolution.x/u_resolution.y;
+ st = st*2.-1.;
+ //st.x *= aspect;
+ return length(max(abs(st)-size,.0));
+ }
+ float rectDF(vec2 st, float size) {
+ //float aspect = u_resolution.x/u_resolution.y;
+ st = st*2.-1.;
+ //st.x *= aspect;
+ return length(max(abs(st)-size,.0));
+ }
+
+ // Draw a round corners rectangle in the center
+ // ================================
+ float rect(vec2 st, vec2 size, float radio) {
+ radio = max(.000001, radio);
+ return 1.0-step(radio, rectDF(st, size-radio));
+ }
+
+ float rect(vec2 st, float size, float radio) {
+ return rect(st,vec2(size),radio);
+ }
+
+ // Draw a rectangle in the center
+ // ================================
+ float rect(vec2 st, vec2 size){
+ size = .25-size*.125;
+ vec2 uv = step(size,st*(1.0-st));
+ return (uv.x*uv.y);
+ }
+
+ float rect(vec2 st, float size){
+ return rect(st,vec2(size));
+ }
+ shapes-cross:
+ mix: shapes-rect
+ shaders:
+ blocks:
+ global: |
+ // Draw a Cross in the middle of the ST space
+ float cross (vec2 st, float size, float width) {
+ return clamp( rect(st, vec2(size*0.5,width*0.125)) +
+ rect(st, vec2(width*0.125,size*0.5)),0.,1.);
+ }
+ float cross(in vec2 st, float _size){
+ return rect(st, vec2(_size*0.5,_size*0.125)) +
+ rect(st, vec2(_size*0.125,_size*0.5));
+ }
+ float cross(in vec2 st, vec2 _size){
+ return rect(st, vec2(_size.x*0.5,_size.y*0.125)) +
+ rect(st, vec2(_size.y*0.125,_size.x*0.5));
+ }
+ # terrain:
+ # base: polygons
+ # # mix: [grid]
+ # raster: normal
+ # shaders:
+ # uniforms:
+ # # u_envmap: images/relief-shading-environment-map.jpg
+ # u_envmap: images/draw-test8.jpg
+ # u_scale: 4.5 # higher values are more exaggerated
+ # # z0 = 0.0001
+ # # z1 = 0.0001
+ # # z2 = 3.5
+ # # z3 = 4.5
+ # # z4 = 4.5
+ # # z5 = 4.
+ # # z6 = 3.5
+ # # z7 = 2.5
+ # # z8 = 2.5
+ # # z9 = 2.
+ # # z10 = 1.7
+ # # z11 = 1.5
+ # # z12 = 1.5
+ # # z13 = 1.3
+ # # z14 = 1.2
+ # # z15 = 1.
+ # # z16 = 0.8
+ # # z17 = 0.4
+ # # z17.8 = 0.1
+ # # z18+ = 0.001
+ # u_scale_end: 0.001
+ # u_scale_fade_start: 3.
+ # u_scale_fade_duration: 15.
+ # u_color: [.9, .9, .9]
+ # u_color_fade_start: 20.
+ # u_color_fade_duration: 1.
+ # blocks:
+ # global: |
+ # // Simplified view-independent environment map
+ # vec4 terrainEnvmap (in sampler2D _tex, in vec3 _normal) {
+ # const vec3 eye = vec3(0.,0.,-1.);
+ # vec3 r = reflect(eye, _normal);
+ # r.z += 1.0;
+ # float m = 2. * length(r);
+ # vec2 uv = r.xy / m + .5;
+ # return texture2D(_tex, uv);
+ # }
+ # color: |
+ # normal.z /= u_scale; // turn terrain exaggeration up/down
+ # // fade out spheremap normals
+ # float m = clamp((u_scale_fade_start + u_scale_fade_duration - u_map_position.z) * 1./u_scale_fade_duration, u_scale_end, u_scale);
+ # normal.z /= m;
+
+ # normal = normalize(normal);
+ # color = terrainEnvmap(u_envmap, normal);
+ # color *= v_color; // apply layer color
+ # // fade from spheremap to a solid color
+ # float c = clamp((u_map_position.z - u_color_fade_start) * 1./u_color_fade_duration, 0., 1.);
+ # color.rgb = mix(color.rgb, u_color, c);
+
+ terrain:
+ base: polygons
+ # mix: [grid]
+ raster: normal
+ shaders:
+ uniforms:
+ # u_envmap: images/relief-shading-environment-map.jpg
+ u_envmap: images/draw-test9.jpg
+ u_contrast: 1.
+ u_brightness: 1.
+ blocks:
+ global: |
+ // Simplified view-independent environment map
+ vec4 terrainEnvmap (in sampler2D _tex, in vec3 _normal) {
+ const vec3 eye = vec3(0.,0.,-1.);
+ vec3 r = reflect(eye, _normal);
+ r.z += 1.;
+ float m = 2. * length(r);
+ vec2 uv = r.xy / m + .5;
+ return texture2D(_tex, uv);
+ }
+ const float e = 2.71828;
+ color: |
+ // scale up normals with a function
+ // https://www.desmos.com/calculator/bv4mzh8erz
+ //float scale = 10./(u_map_position.z-.7) + 1.8;
+ float scale1 = 20./(u_map_position.z) + 1.5;
+ normal.z /= scale1; // turn terrain exaggeration up/down
+ // fade out spheremap normals with a function
+ // https://www.desmos.com/calculator/ptgkzcnfyc
+ float m = 3.5 * (u_map_position.z - 0.8) * pow(e, u_map_position.z * -.29);
+ m = clamp(m, 0., 1.5);
+ color = terrainEnvmap(u_envmap, normal);
+
+ // Apply contrast
+ float contrast = m;
+ color.rgb = ((color.rgb - 0.5) * max(contrast, 0.)) + 0.5;
+ // Apply brightness
+ float brightness = .5 - m * .5;
+ color.rgb += brightness;
+
+ color *= v_color; // apply layer color
+
+ water-grid:
+ mix: grid
+ shaders:
+ blocks:
+ color: |
+ color = v_color;
+ color.rgb -= vec3(tileGrid());
+ vec4 linecolor = vec4(0.489,0.776,0.820,1.0);
+ vec4 colorlines = linecolor * tileGrid();
+ color += colorlines;
+
+ # HSV/RGB functions
+ hsv:
+ shaders:
+ blocks:
+ global: |
+ vec3 rgb2hsv(vec3 c)
+ {
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+ float d = q.x - min(q.w, q.y);
+ float e = 1.0e-10;
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+ }
+ vec3 hsv2rgb(vec3 c)
+ {
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+ }
+
+ scale-buildings:
+ shaders:
+ blocks:
+ position: |
+ // scale buildings based on zoom
+ float zoom = u_map_position.z;
+ float min = .1; // minimum building scale
+ float midpoint = 16.; // middle of zoom range
+ float inspeed = .1; // number of zooms to scale buildings up
+ float outspeed = 2.; // number of zooms to scale buildings back down
+ float e = 0.;
+
+ if (zoom >= midpoint) {
+ e = (zoom - midpoint) / (outspeed * .2);
+ } else {
+ e = abs(zoom - midpoint) / inspeed;
+ }
+ position.z *= ((1. - min) / (1. + (exp(e)))) + min;
+
+ building-grid:
+ base: polygons
+ lighting: false
+ mix: [hsv, scale-buildings]
+ texcoords: true
+ shaders:
+ uniforms:
+ u_tex_grid: building-grid
+ defines:
+ WALL_TINT: vec3(0.950, 0.950, 0.950)
+ blocks:
+ color: |
+ if (dot(vec3(0., 0., 1.), worldNormal()) < 1.0 - TANGRAM_EPSILON) {
+ // If it's a wall
+ color.rgb = hsv2rgb(rgb2hsv(color.rgb) * WALL_TINT);
+ color.rgb = mix(color.rgb, vec3(0.),
+ texture2D(u_tex_grid, v_texcoord).a);
+ }
+
+ building-lines:
+ base: lines
+ mix: scale-buildings
+ texcoords: true
+
+
+ terrain-muted:
+ mix: grid-on-terrain
+ shaders:
+ uniforms:
+ u_scale: 1 # turn down the terrain
+
+ terrain-grid:
+ mix: grid-on-terrain
+ shaders:
+ uniforms:
+ u_scale: 2
+
+ grid-on-terrain:
+ mix: [grids-tile, terrain]
+ shaders:
+ blocks:
+ color: |
+ color -= v_color*tileGrid();
+ vec4 linecolor = vec4(0.489,0.776,0.820,1.0);
+ color += linecolor * tileGrid();
+ dots-terrain:
+ mix: [space-tile, functions-map, terrain, shapes-cross]
+ shaders:
+ blocks:
+ color: |
+ // Brightness
+ float brightness2 = dot(normal, vec3(-0.838,-1.010,0.805));
+
+ brightness2 = 1.-brightness2;
+
+ // Scale
+ float scale2 = map(floor(u_map_position.z), 8., 22., 0.0000001, .1, true);
+ vec2 st = worldPosition().xy*scale2;
+
+
+ // PATERNS
+ float pct = 0.0;
+
+ // Stripes
+ // pct = step(brightness2*4.556,cos((st.x+st.y)));
+
+
+ // Cell patterns
+ st.x += step(1., mod(st.y,2.0)) *.5;
+ vec2 f_st = fract(st);
+ f_st -= .5;
+
+ // Dots
+ pct = step(brightness2*2.056,1.-dot(f_st,f_st)*10.400);
+
+ // Lines
+ // pct = rect(f_st+0.5,vec2(0.704,brightness2*0.472));
+
+ // Cross
+ //pct = cross(f_st+0.5,brightness2*6.128,brightness2*2.604);
+
+ // Use this if you tint
+ // if (pct < .5) {
+ // discard;
+ // }
+
+ color.rgb = mix(color.rgb, v_color.rgb ,pct);
+
+ icons:
+ base: points
+ texture: pois
+ blend_order: 1
+ text-blend-order:
+ base: text
+ blend_order: 1
+ lines_transparent:
+ base: lines
+ blend: overlay
+ polygons_transparent:
+ base: polygons
+ blend: overlay
+
+
+layers:
+ earth:
+ data: { source: mapzen}
+ draw:
+ terrain:
+ order: function() { return feature.sort_key; }
+ color: [1.0, 1.0, 1.0]
+
+ water:
+ data: { source: mapzen, layer: water }
+ draw:
+ polygons:
+ #interactive: true
+ order: function() { return feature.sort_key; }
+ #color: [0.608,0.925,0.965]
+ later:
+ filter: { $zoom: { min: 12 } }
+ draw:
+ polygons:
+ order: function() { return feature.sort_key + 1; }
+ #color: [0.608,0.925,0.965]
+
+ lakes:
+ filter:
+ all:
+ - kind: [ocean, lake, water, riverbank, reservoir, swimming_pool]
+ # WARNING: any area filters here must match the area filters in the water_boundaries-not-ocean layer
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 1 }, area: { min: 40000000000 } }
+ - { $zoom: { min: 2 }, area: { min: 20000000000 } }
+ # some weird natural earth scale set transition
+ - { $zoom: { min: 3 }, area: { min: 80000000000 } }
+ - { $zoom: { min: 4 }, area: { min: 5000000000 } }
+ - { $zoom: { min: 5 }, area: { min: 700000000 } }
+ - { $zoom: { min: 6 }, area: { min: 500000000 } }
+ - { $zoom: { min: 7 }, area: { min: 160000000 } }
+ - { $zoom: { min: 8 }, area: { min: 40000000 } }
+ - { $zoom: { min: 9 }, area: { min: 10000000 } }
+ - { $zoom: { min: 10 }, area: { min: 8000000 } }
+ - { $zoom: { min: 11 }, area: { min: 2000000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 2000 } }
+ - { $zoom: { min: 15 } }
+ draw:
+ polygons:
+ # color: [0.608,0.925,0.965] ## original color
+ # color: [0.528,0.902,0.960] ## more saturated
+ color: [0.432,0.890,0.960] ## even more saturated
+ playas:
+ filter: { kind: playa, $zoom: {min: 6} }
+ draw:
+ dashedline:
+ order: function() { return feature.sort_key; }
+ color: grey
+ width: 1px
+ polygons_transparent:
+ color: [0.85,0.85,0.85, 0.5]
+ other-water-areas:
+ filter: { not: { kind: [ocean, lake, water, reservoir, playa] }, $zoom: { min: 11 }, area: { min: 100 } }
+ draw:
+ polygons:
+ color: [0.432,0.890,0.960]
+ swimming_pool:
+ filter: { kind: swimming_pool }
+ draw:
+ polygons:
+ color: [0.432,0.890,0.960]
+ water-boundary-ocean-early:
+ filter: { boundary: yes, kind: ocean, $zoom: {min: 1, max: 17} }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ color: [0.431,0.806,0.914]
+ width: 1px
+ join: round
+ water-boundary-ocean-late:
+ filter: { boundary: yes, kind: ocean, $zoom: {min: 17} }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ color: [0.431,0.806,0.914]
+ width: 1px
+ join: round
+ water_boundaries-not-ocean:
+ # filter: { boundary: yes, not: { kind: [ocean,playa] }, $zoom: { min: 8 } }
+ filter:
+ all:
+ - boundary: yes
+ - not: { kind: [ocean,playa] }
+ - $zoom: { min: 8}
+ # WARNING: any area filters here must match the area filters in the lakes layer
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 1 }, area: { min: 40000000000 } }
+ - { $zoom: { min: 2 }, area: { min: 20000000000 } }
+ # some weird natural earth scale set transition
+ - { $zoom: { min: 3 }, area: { min: 80000000000 } }
+ - { $zoom: { min: 4 }, area: { min: 5000000000 } }
+ - { $zoom: { min: 5 }, area: { min: 700000000 } }
+ - { $zoom: { min: 6 }, area: { min: 500000000 } }
+ - { $zoom: { min: 7 }, area: { min: 160000000 } }
+ - { $zoom: { min: 8 }, area: { min: 40000000 } }
+ - { $zoom: { min: 9 }, area: { min: 10000000 } }
+ - { $zoom: { min: 10 }, area: { min: 8000000 } }
+ - { $zoom: { min: 11 }, area: { min: 2000000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 2000 } }
+ - { $zoom: { min: 15 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ # color: [0.625,0.806,0.822]
+ color: [0.431,0.806,0.914]
+ width: 1px
+ join: round
+ early:
+ filter: { $zoom: { min: 14 } }
+ draw:
+ lines:
+ order: 241
+ swimming-pools-early:
+ filter: { kind: swimming_pool, $zoom: { max: 19 } }
+ draw:
+ lines:
+ visible: false
+ riverbank:
+ # river boundaries like the thames in london, la seine in paris
+ filter: { kind: riverbank }
+ draw:
+ lines:
+ color: [0.431,0.806,0.914]
+ width: 1px
+ river:
+ #river center lines, not boundaries for polygons
+ filter: { kind: [river,canal,stream,dam,ditch,drain], $zoom: { min: 11 }, not: { is_tunnel: true } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key; }
+ interactive: true
+ color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
+ # color: [0.592,0.929,0.961]
+ #color: [[11,[0.753,0.820,0.835]],[12,[0.710,0.800,0.824]],[13,[0.886,0.937,0.988]]]
+ #width: [[14,2.5px],[15,4.0px],[17,8.0px],[18,10.0px]]
+ width: [[10,0px],[11,0.75px],[12,1.0px],[13,1.25px],[14,2.25px],[15,3px],[16,4px],[17,5m]]
+ cap: round
+ outline:
+ #color: [[11,[0.671,0.788,0.812]],[13,[0.710,0.800,0.824]],[14,[0.635,0.812,0.843]]]
+ width: [[9,0px],[11,0px],[12,0px],[13,0.5px],[14,0.75px],[15,0.75px],[16,0.75px],[17,1px]]
+ not-river-early:
+ filter: { $zoom: [11,12], not: { kind: river } }
+ draw:
+ lines:
+ width: [[11,0px], [12,0.6px]]
+ intermittent:
+ filter:
+ any:
+ - intermittent: yes
+ - kind: drain
+ draw:
+ lines:
+ visible: false
+ dots-lines:
+ interactive: true
+ order: function() { return feature.sort_key; }
+ color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
+ width: [[10,0px],[11,0.5px],[12,1px],[13,2px],[14,3px],[15,4px],[16,5px]]
+
+ water-line-labels:
+ data: { source: mapzen, layer: [water] }
+ filter:
+ all:
+ - name: true
+ - $geometry: line
+ - kind: [river,canal,stream,dam,ditch,drain]
+ - $zoom: { min: 11 }
+ draw:
+ text-blend-order:
+ font:
+ fill: *text_fill_water
+ family: *text_font_family
+ style: italic
+ weight: 400
+ size: [[12,11px],[13,12px]]
+ water-line-labels-z17:
+ filter: { $zoom: [17] }
+ draw:
+ text-blend-order: { font: { size: 14px } }
+ not-river-not-stream:
+ filter: { kind: [canal,dam,ditch,drain], $zoom: { max: 14 } }
+ draw:
+ text-blend-order:
+ visible: false
+ stream:
+ filter: { kind: [stream], $zoom: { max: 14 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+ subway-light-rail:
+ data: { source: mapzen, layer: transit }
+ filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
+ draw:
+ lines:
+ interactive: true
+ order: function() { return feature.sort_key || 275; }
+ railway:
+ filter: { kind: [railway,train] }
+ draw:
+ lines:
+ color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
+ width: [[14,0.4px],[15,0.75px],[16,1.1px],[18,2px],[19,1m]]
+ subway:
+ filter: { kind: subway }
+ draw:
+ lines:
+ color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
+ width: [[14,0.4px],[15,0.75px],[16,1.3px],[17,1.5px],[18,2m]]
+ light_rail:
+ filter: { kind: [light_rail,tram], $zoom: { min: 15 } }
+ draw:
+ lines:
+ order: 415
+ color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
+ width: [[14,0px],[15,0.6px],[16,0.75px],[17,1.5px],[19,1m]]
+
+ railway-late:
+ data: { source: mapzen, layer: roads }
+ filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
+ draw:
+ lines:
+ interactive: true
+ order: function() { return feature.sort_key; }
+ color: [0.588,0.671,0.698]
+ width: [[12,0px],[13,0.25px],[14,0.4px],[15,0.75px],[16,0.75px],[18,1m]]
+ service:
+ filter: { service: true }
+ draw:
+ lines:
+ color: [[14,[0.653,0.758,0.786]], [17,[0.670,0.777,0.807]]]
+ width: [[14,0px],[15,0.3px],[16,0.5px],[18,0.75px],[19,0.5m]]
+ z-order:
+ #filter: { $zoom: {min: 12} }
+ draw:
+ lines:
+ # let roads sort themselves past zoom 14
+ order: function() { return feature.sort_key; }
+ # but give them all the same outline
+ outline:
+ order: 354
+
+ bridges-tunnels:
+ filter: { any: [is_bridge: yes, is_tunnel: yes] }
+ draw:
+ lines:
+ outline:
+ # except bridges and tunnels, their outlines should also self-sort
+ order: function() { return feature.sort_key || 305; }
+
+ roads:
+ data: { source: mapzen, layer: roads }
+ filter: { not: { kind: rail } }
+ draw:
+ lines:
+ interactive: true
+ #color: black
+ width: 1px
+ order: function() { return feature.sort_key; }
+ # but give them all the same outline
+ outline:
+ order: 352
+ text-blend-order:
+ visible: false # labels are enabled by each layer below
+ font:
+ family: *text_font_family
+ weight: 500
+ fill: *text_fill
+
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ outline:
+ order: function() { return feature.sort_key; }
+ bridges-tunnels:
+ filter: { any: [is_bridge: yes, is_tunnel: yes] }
+ draw:
+ lines:
+ #cap: butt
+ outline:
+ # except bridges and tunnels, their outlines should also self-sort
+ order: function() { return feature.sort_key; }
+
+ # default outlines starting at zoom 16
+ default-outline-width:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ lines:
+ outline:
+ width: function () { return 3/16 * Math.log($zoom); }
+
+ natural_earth_highways:
+ filter: { source: 'naturalearthdata.com' }
+ draw:
+ lines:
+ color: [[5, [0.5,0.5,0.5]],[6, [0.350,0.350,0.350]]]
+ width: [[5, 0.5px], [6, 0.5px], [7, 0.75px], [9, 1.5px], [14, 1.5px], [16, 4px], [17, 10m]]
+ outline:
+ color: *highway_casing1
+ width: [[9, 0px], [10, 0px], [12, 1px], [16, 2px]]
+ major_road:
+ filter: { type: ['Secondary Highway','Road'] }
+ draw:
+ lines:
+ color: [[5, [0.75,0.75,0.75]], [8, [0.4,0.4,0.4]], [13, [0.4,0.4,0.4]], [17, *major_road1]]
+ #color: red
+ width: [[5, 0.25px], [7, 0.5px], [7, 0.75px], [9, 1px], [10, 9px], [11, 9px], [13, 1px], [16, 2.5px], [19, 6m]]
+ outline:
+ width: [[8, 0.0px], [9, 0.0px], [11, .5px], [16, .75px]]
+ minor_road:
+ filter: { type: 'Unknown' }
+ draw:
+ lines:
+ color: [[12, *minor_road1], [17, *minor_road2]]
+ width: [[12, 1.0px], [14, 1.5px], [15, 3px], [16, 5m]]
+ # outline:
+ # width: [[12, 0px], [14, .5px], [17, 1px]]
+ ferry:
+ filter: { kind: Ferry }
+ draw:
+ lines:
+ color: *ferry1
+ width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
+ outline:
+ width: 0px
+ highway:
+ filter: { kind: highway }
+ draw:
+ lines:
+ color: [[8, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[8, 1px], [12, 1.25px], [13, 1.5px], [14, 0px], [15, 1px], [16, 5px], [17, 10px], [18, 10m]]
+ outline:
+ color: [[8, [0.894,0.906,0.914]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [16, [0.408,0.430,0.461]]]
+ width: [[8,0px], [13,0px], [14,1px], [15,2px], [16, 3px], [17, 4px], [18, 5px]]
+ #dashedTunnel:
+ # width: [[8, 1px], [12, 1.25px], [13, 1.5px], [14, 0px], [15, 1px], [16, 5px], [17, 10px], [18, 10m]]
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ #color: *highway_link1
+ color: [[9, [0.50,0.50,0.50]], [13, [0.408,0.430,0.461]], [14, [1.0,1.0,1.0]], [15, [1.0,1.0,1.0]]]
+ width: [[9, 0px], [11, 0.15px], [12, 0.5px], [13, 0.75px], [14, 0px], [15, 1px], [16, 2.5px], [17, 4px], [18, 8px], [19, 8px]]
+ outline:
+ color: [[9,[0.894,0.906,0.914]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [0.408,0.430,0.461]]]
+ width: [[9, 0px], [13, 0px], [14, 0.5px], [15, 1px], [16, 2px], [17, 2px], [18, 2px]]
+ early_link:
+ filter: { $zoom: {min: 13, max: 15} }
+ draw:
+ lines:
+ order: 352
+ tunnel-link:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: [[13,[0.790,0.790,0.790]], [14,[0.820,0.820,0.820]], [15,[0.950,0.950,0.950]], [16,[0.950,0.950,0.950]]]
+ outline:
+ color: [0.900,0.900,0.900]
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ #dashedTunnel:
+ # color: blue
+ # order: function() { return (feature.sort_key - 1); }
+ lines:
+ #visible: false
+ color: [[13,[0.710,0.710,0.710]], [14,[0.779,0.802,0.828]], [15,[0.950,0.950,0.950]], [16,[0.950,0.950,0.950]]]
+ outline:
+ color: [[13, [0.720,0.720,0.720]], [14, [0.770,0.770,0.770]], [15, [0.80,0.80,0.80]], [16, [0.825,0.825,0.825]]]
+ highway_bridge:
+ filter: {is_bridge: yes}
+ draw:
+ lines:
+ cap: round
+ outline:
+ cap: butt
+ labels-highway-early:
+ filter: { $zoom: [7,8,9] }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 400
+ size: 9px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z10:
+ filter:
+ $zoom: 10
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 400
+ size: 9px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z11:
+ filter:
+ $zoom: 11
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 10px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z12:
+ filter:
+ $zoom: 12
+ draw:
+ text-blend-order:
+ visible: *text_visible_shields
+ text_source: ref
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 10px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z13:
+ filter:
+ $zoom: 13
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 11px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z14:
+ filter:
+ $zoom: 14
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 11px
+ stroke: { color: [0.898,0.906,0.910], width: 4 }
+ labels-highway-z15:
+ filter:
+ $zoom: 15
+ draw:
+ text-blend-order:
+ visible: *text_visible_highway
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 12px
+ stroke: { color: [0.408,0.427,0.459], width: 4 }
+ labels-highway-z16:
+ filter: { $zoom: { min: 16, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 13px
+ stroke: { color: [0.408,0.427,0.459], width: 4 }
+ labels-highway-z17:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 15px
+ stroke: { color: [1.000,1.000,1.000], width: 4 }
+ labels-highway-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 16px
+ stroke: { color: [1.000,1.000,1.000], width: 4 }
+ labels-highway-z19:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text-blend-order:
+ priority: 50
+ visible: *text_visible_highway
+ font:
+ fill: [0.408,0.427,0.459]
+ weight: 600
+ size: 16px
+ stroke: { color: [1.000,1.000,1.000], width: 4 }
+
+ major_road:
+ filter: { kind: major_road }
+ # default style
+ draw:
+ lines:
+ color: [[8, *major_road4], [13, major_road2], [17, [1.0,1.0,1.0]]]
+ width: [[13, 1px], [14, 1px], [16, 2.5px], [17,3px]]
+ outline:
+ width: [[12, 0px], [13, .5px], [15, 1px], [17, 2px]]
+ trunk_primary:
+ filter: { highway: [trunk, primary] }
+ draw:
+ lines:
+ color: [[8, [0.529,0.556,0.592]], [11, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[8, 0px], [11, 0.65px], [12, 0.75px], [13, 1px], [14, 1.5px], [15, 0px], [16, 3px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[8,0px], [11,0px], [14,0px], [15, 1px], [16, 1.5px], [17, 2px], [18, 4px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: function() { return feature.sort_key + 2; }
+ primary:
+ filter: { kind: [primary] }
+ draw:
+ lines:
+ outline:
+ order: function() { return feature.sort_key + 1; }
+ routes:
+ filter: { ref: true }
+ draw:
+ #dashedTunnel:
+ # width: [[9, 0.5px], [10, 0.5px], [11, 0.75px], [12, 1.25px], [13, 1.25px], [14, 0px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
+ # outline:
+ # color: green
+ # width: [[8,0px], [13,0px], [14,0.75px], [15,2px], [16, 3px], [17, 4px], [18, 4px]]
+ lines:
+ color: [[10, [0.508,0.530,0.561]], [11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[1.0,1.0,1.0]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 0.8px], [14, 0.5px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
+ outline:
+ color: [[8,[0.894,0.906,0.914]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[8,0px], [13,0px], [14,0.75px], [15,2px], [16, 3px], [17, 4px], [18, 4px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 2; }
+ outline:
+ order: 353
+ primary-route-in-green:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
+ draw:
+ lines:
+ color: [[8, [0.408,0.430,0.461]], [11, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 1.2px], [14, 0.5px], [15, 1px], [16, 4px], [17, 8px], [18, 9m]]
+ outline:
+ color: [[8,[0.894,0.906,0.914]], [13, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ # national-routes:
+ # filter: { network: [US:US, US:I] }
+ # draw:
+ # lines:
+ # color: *major_route1
+ # #color: [[8,*major_route2],[9,major_route2],[10,*major_route1]]
+ # width: [[8, 1px], [10, 1.15px], [11, 1px], [12, 1px], [14, 1.75px], [15, 3px], [16, 4px], [17, 4px]]
+ # outline:
+ # color: [1.0,1.0,1.0]
+ # width: 2px
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ #dashedTunnel:
+ # color: blue
+ # order: function() { return (feature.sort_key - 1); }
+ lines:
+ #visible: false
+ color: [[13,[0.710,0.710,0.710]], [14,[0.779,0.802,0.828]], [15,[0.950,0.950,0.950]]] #[15,[0.744,0.764,0.792]]
+ outline:
+ color: [[13, [0.720,0.720,0.720]], [14, [0.770,0.770,0.770]], [15, [0.80,0.80,0.80]], [16, [0.825,0.825,0.825]]] #[15, [0.894,0.906,0.914]]
+ labels-trunk_primary-route-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e2
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 11px
+ stroke: { color: *text_stroke, width: 3 }
+ labels-trunk_primary-route-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 3 }
+ labels-trunk_primary-route-z16:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-trunk_primary-route-z17-z18:
+ filter: { $zoom: [17,18] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 6 }
+ labels-trunk_primary-route-z19:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 16px
+ stroke: { color: [0.969,0.973,0.973], width: 6 }
+ primary-in-green:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
+ draw:
+ lines:
+ color: [[8, [0.408,0.430,0.461]], [11, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[9, 0.6px], [10, 0.75px], [11, 1.0px], [12, 1.1px], [13, 1.0px], [14, 0.5px], [15, 1.2px], [16, 4px], [17, 8px], [18, 9m]]
+ outline:
+ color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[8,0px], [13,0px], [14,0.75px], [15,1.5px], [16, 3px], [17, 4px], [18, 4px]]
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: [[13,[0.670,0.670,0.670]], [14,[0.720,0.720,0.720]], [15,[0.920,0.920,0.920]], [16,[0.920,0.920,0.920]]]
+ outline:
+ color: [[13,[0.894,0.906,0.914]],[14,[0.894,0.906,0.914]],[15,[0.744,0.764,0.792]]]
+ width: [[13, 0px], [14, 0px], [15, 1px], [16, 1.5px], [17, 2px], [18, 4px]]
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ labels-trunk_primary-z11:
+ filter:
+ $zoom: [11]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 9px
+ stroke: { color: *text_stroke, width: 2 }
+ labels-trunk_primary-z12:
+ filter:
+ $zoom: [12]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 10px
+ stroke: { color: *text_stroke, width: 3 }
+ labels-trunk_primary-z13:
+ filter:
+ $zoom: [13]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 11px
+ stroke: { color: *text_stroke, width: 3 }
+ labels-trunk_primary-z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-trunk_primary-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-trunk_primary-z16:
+ filter: { $zoom: [16] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-trunk_primary-z17:
+ filter: { $zoom: [17] }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 6 }
+ labels-trunk_primary-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 53
+ visible: *text_visible_trunk_primary
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.495,0.511,0.532]
+ weight: 600
+ size: [[18,13px],[19,16px]]
+ stroke: { color: [0.969,0.973,0.973], width: 6 }
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ color: [[8, [0.529,0.556,0.592]], [11, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[10, 0.5px], [13, 0.5px], [14, 1px], [15, 0px], [16, 1.75px], [17, 2px], [18, 3px], [19, 8px]]
+ outline:
+ color: [[8,[0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[10, 0px], [14, 0px], [15, 0.5px], [16, 1px], [17, 1px], [18, 1px]]
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: [[13,[0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15,[0.744,0.764,0.792]], [16,[0.950,0.950,0.950]]]
+ outline:
+ color: [[13, [0.894,0.906,0.914]], [15, [0.894,0.906,0.914]], [16, [0.85,0.85,0.85]]]
+ width: [[8,0px], [11,0px], [14,0px], [16,1.5px], [17, 3px], [18, 3px]]
+ secondary:
+ filter: { highway: secondary }
+ draw:
+ lines:
+ color: [[10, [0.714,0.733,0.760]], [11, [0.714,0.733,0.760]], [12, [0.533,0.555,0.586]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[10, 0.5px], [12, 0.5px], [13, 0.65px], [14, 1px], [15, 0px], [16, 3px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[10,0px], [14,0px], [15,1px], [16, 1.5px], [17, 2px], [18, 4px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: 353 #function() { return feature.sort_key + 2; }
+ routes:
+ filter: { ref: true, $zoom: { min: 10} }
+ draw:
+ lines:
+ color: [[11, [0.508,0.530,0.561]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.4px], [12, 0.75px], [13, 0.75px], [14, 1px], [15, 0px], [16, 1.5px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[10,0.4px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 2; }
+ outline:
+ order: 353
+ secondary-route-in-green:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
+ draw:
+ lines:
+ color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.6px], [12, 0.75px], [13, 0.75px], [14, 1px], [15, 0px], [16, 1.5px], [17, 6px], [18, 9m]]
+ outline:
+ width: [[10,0.5px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: [[13,[0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15,[0.8,0.8,0.8]], [16,[0.85,0.85,0.85]], [17,[0.950,0.950,0.950]]]
+ outline:
+ color: [[13, [0.350,0.350,0.350]], [16, [0.350,0.350,0.350]], [17, [0.85,0.85,0.85]]]
+ width: [[10,0px], [17, 2px], [18, 2px]]
+ labels-secondary-routes:
+ filter: { $zoom: [13] }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-routes-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-routes-z15:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ weight: 600
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-routes-z16:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ weight: 600
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ secondary-in-green:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield] }
+ draw:
+ lines:
+ color: [[10, [0.714,0.733,0.760]], [11, [0.714,0.733,0.760]], [12, [0.533,0.555,0.586]], [13, [0.529,0.556,0.592]], [14, [0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ outline:
+ color: [[10, [0.894,0.906,0.914]], [14, [0.529,0.556,0.592]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ labels-secondary-in-green-z13:
+ filter: { $zoom: { min: 13 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [0.843,0.961,0.914], width: 4 }
+ labels-secondary-in-green-z17:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [1.00,1.00,1.00], width: 4 }
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[10, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ labels-secondary-z13:
+ filter:
+ $zoom: [13]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 9px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 9px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-secondary-z15:
+ filter:
+ $zoom: [15]
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 10px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-secondary-z16:
+ filter: { $zoom: { min: 16, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-secondary-z17:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 54
+ visible: *text_visible_secondary
+ #text_source: ref
+ text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ tertiary:
+ filter: { highway: [tertiary, tertiary_link] }
+ draw:
+ lines:
+ color: [[11, [0.714,0.733,0.760]], [12, [0.633,0.655,0.686]], [13, [0.529,0.556,0.592]], [14,[0.529,0.556,0.592]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.5px], [12, 0.65px], [13, 0.65px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ outline:
+ color: [0.529,0.556,0.592]
+ width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: 352
+ outline:
+ order: function() { return feature.sort_key + 3; }
+ routes:
+ filter: { ref: true, $zoom: { min: 12} }
+ draw:
+ lines:
+ color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.3px], [12, 0.4px], [13, .6px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.529,0.556,0.592]]]
+ width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ order: function() { return feature.sort_key + 3; }
+ outline:
+ order: 353
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *major_tunnel1
+ outline:
+ color: *major_tunnel_casing1
+ link:
+ filter: { is_link: yes } # on- and off-ramps, etc
+ draw:
+ lines:
+ color: [[14, [0.714,0.733,0.760]], [15, [0.578,0.608,0.650]], [16, [0.533,0.555,0.586]], [17, [1.00,1.00,1.00]]]
+ width: [[11, 0.0px], [12, 0.15px], [14, 0.15px], [15, 0.75px], [16, 1.25px], [17, 2px], [18, 2px], [19, 4px]]
+ outline:
+ color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17,[0.578,0.608,0.650]]]
+ width: [[11, 0px], [16, 0px], [17, 1px], [18, 1px]]
+ tertiary-in-green:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden,wood,national_park,protected_area,battlefield,forest] }
+ draw:
+ lines:
+ color: [[11, [0.408,0.430,0.461]], [13, [0.408,0.430,0.461]], [14,[0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.4px], [12, 0.5px], [13, 0.6px], [14, .8px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.529,0.556,0.592]], [16, [0.529,0.556,0.592]], [17,[0.578,0.608,0.650]], [18,[0.714,0.733,0.760]]]
+ width: [[10,0.5px], [14,0.5px], [15,0.65px], [16,1.5px], [17, 2px], [18, 4px]]
+ green-routes:
+ filter: { ref: true, $zoom: { min: 12} }
+ draw:
+ lines:
+ width: [[11, 0.5px], [12, 0.6px], [13, 0.7px], [14, .9px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ labels-tertiary-in-green-z13:
+ filter: { $zoom: { min: 13 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [0.843,0.961,0.914], width: 4 }
+ labels-tertiary-in-green-z17:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [1.00,1.00,1.00], width: 4 }
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ labels-tertiary-z13:
+ filter: { $zoom: [13] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 9px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-tertiary-z14:
+ filter: { $zoom: [14] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary_e
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 9px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-tertiary-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 10px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-tertiary-z16:
+ filter: { $zoom: [16] }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-tertiary-z17:
+ filter: { $zoom: { min: 17, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-tertiary-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 55
+ visible: *text_visible_tertiary
+ text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ minor_road:
+ filter: { kind: minor_road, not: { highway: service, aeroway: [runway, taxiway] } }
+ draw:
+ lines:
+ color: [[11, [0.885,0.885,0.885]], [12, [0.714,0.733,0.760]], [13, [0.779,0.802,0.828]], [14, [0.779,0.802,0.828]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[11, [0.894,0.906,0.914]], [14, [0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
+ width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ order: 350
+ outline:
+ order: 351
+ motor_vehicle_no:
+ filter: { highway: unclassified, motor_vehicle: no }
+ draw:
+ lines:
+ visible: false
+
+ # Is this junk code?
+ round:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ lines:
+ cap: round
+ join: round
+
+ minor-in-green:
+ filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,protected_area,battlefield] }
+ draw:
+ lines:
+ color: [[11, [0.885,0.885,0.885]], [12, [0.662,0.681,0.704]], [13, [0.662,0.681,0.704]], [14, [0.662,0.681,0.704]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ outline:
+ color: [[11, [0.894,0.906,0.914]], [14, [0.662,0.681,0.704]], [15, [0.662,0.681,0.704]], [16, [0.662,0.681,0.704]]]
+ labels-minor-in-green-z15:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [0.843,0.961,0.914], width: 4 }
+ labels-minor-in-green-z17:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [1.00,1.00,1.00], width: 4 }
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.30,0.30,0.30]], [18, [0.00,0.00,0.00]]]
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.30,0.30,0.30]], [18, [0.00,0.00,0.00]]]
+ # in_university:
+ # filter: { landuse_kind: university }
+ # draw:
+ # lines:
+ # color: [[11, [0.885,0.885,0.885]], [13, [0.75,0.75,0.75]], [14, [0.70,0.70,0.70]], [15, [0.6,0.6,0.6]], [16, [0.3,0.3,0.3]], [17, [1.0,1.0,1.0]]]
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ # width: [[11, 1px], [16, 0px], [17, 1.5px]]
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # lines:
+ # color: [[11, [0.885,0.885,0.885]], [13, [0.75,0.75,0.75]], [14, [0.70,0.70,0.70]], [15, [0.6,0.6,0.6]], [16, [0.3,0.3,0.3]], [17, [1.0,1.0,1.0]]]
+ # outline:
+ # color: [[11, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]], [17, [0.00,0.00,0.00]]]
+ # width: [[11, 1px], [16, 0px], [17, 1.5px]]
+
+ tunnel:
+ filter: {is_tunnel: yes, $zoom: {min: 13} }
+ draw:
+ lines:
+ color: *minor_tunnel1
+ outline:
+ color: *minor_tunnel_casing1
+ minor_road_bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ cap: round
+ outline:
+ cap: butt
+ labels-minor_road-z15:
+ filter: { $zoom: 15 }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 9px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-minor_road-z16:
+ filter: { $zoom: 16 }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ labels-minor_road-z17:
+ filter: { $zoom: { min: 17, max: 18 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road_e
+ text_source: name
+ font:
+ fill: [0.40,0.40,0.40]
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-minor_road-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 56
+ visible: *text_visible_minor_road
+ text_source: name
+ font:
+ fill: [0.40,0.40,0.40]
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ service_road:
+ filter: { kind: minor_road, highway: service }
+ draw:
+ lines:
+ color: [[14, [0.714,0.733,0.760]], [15, [0.714,0.733,0.760]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ width: [[14, 0.25px], [15, 0.5px], [16, 0px], [17, 2px], [18, 6px], [19, 6px]]
+ outline:
+ color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [16,[0.714,0.733,0.760]], [17, [0.791,0.812,0.842]]]
+ width: [[13, 0px], [15, 0px], [16, 0.5px], [17, 2px], [18, 2px]]
+ service-in-green:
+ filter: { landuse_kind: [park,protected_area,nature_reserve,conservation,golf_course,garden,wood,farmland,farm,national_park,battlefield] }
+ draw:
+ lines:
+ color: [[14, [0.779,0.802,0.828]], [15, [0.779,0.802,0.828]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ outline:
+ color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [17,[0.714,0.733,0.760]]]
+ labels-service-in-green:
+ draw:
+ text-blend-order:
+ priority: 57
+ visible: *text_visible_service_road
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ stroke: { color: [0.843,0.961,0.914], width: 4 }
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ # nature_reserve:
+ # filter: { landuse_kind: nature_reserve }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ # conservation:
+ # filter: { landuse_kind: conservation }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ # zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ in_cemetery_garden:
+ filter: { landuse_kind: [cemetery,garden] }
+ draw:
+ lines:
+ color: [[14, [0.779,0.802,0.828]], [15, [0.779,0.802,0.828]], [16, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ width: [[14, 0.4px], [15, 0.5px], [16, 0px], [17, 2px], [18, 6px], [19, 6px]]
+ outline:
+ color: [[14,[0.894,0.906,0.914]], [15,[0.714,0.733,0.760]], [17,[0.714,0.733,0.760]]]
+ # in_university:
+ # filter: { landuse_kind: university }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # lines:
+ # outline:
+ # color: [[14,[1.0,1.0,1.0]], [16,[1.0,1.0,1.0]], [17,[0.30,0.30,0.30]], [18,[0.00,0.00,0.00]]]
+ # width: [[13, 0px], [14, 0.5px], [16, 0px], [17, 1.0px]]
+ labels-service_road:
+ filter: { $zoom: 17 }
+ draw:
+ text-blend-order:
+ priority: 57
+ visible: *text_visible_service_road
+ text_source: name
+ font:
+ # need fill color?
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ labels-service_road-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ text-blend-order:
+ priority: 57
+ visible: *text_visible_service_road
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 13px
+ stroke: { color: [0.969,0.973,0.973], width: 4 }
+ path:
+ filter:
+ all:
+ - kind: [path, portage_way]
+ not:
+ - highway: [footway, steps, track, cycleway]
+ - man_made: [pier]
+ draw:
+ dashedline:
+ order: function() { return feature.sort_key; }
+ interactive: true
+ visible: false
+ color: [0.350,0.350,0.350]
+ width: [[14, 0.35px], [15, 0.5px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ early:
+ filter:
+ $zoom: { max: 17 }
+ draw:
+ lines:
+ order: 351
+ outline:
+ order: 350
+ portage_way:
+ filter: { kind: portage_way }
+ draw:
+ lines:
+ color: [0.350,0.350,0.350]
+ pedestrian:
+ filter: { highway: pedestrian }
+ draw:
+ lines:
+ color: [[16,[0.749,0.749,0.749]]]
+ width: [[14, 0.35px], [15, 0.35px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: round
+ outline:
+ color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ cap: butt
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ dashedline:
+ color: [0.350,0.350,0.350]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # nature_reserve:
+ # filter: { landuse_kind: nature_reserve }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # conservation:
+ # filter: { landuse_kind: conservation }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_cemetery_garden:
+ # filter: { landuse_kind: [cemetery,garden] }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_university:
+ # filter: { landuse_kind: university }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ labels-path:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ text_source: name
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ track:
+ filter: { kind: path, highway: track }
+ draw:
+ lines:
+ color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: butt
+ join: round
+ outline:
+ color: [0.790,0.790,0.790]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ bridge:
+ filter: { is_bridge: yes }
+ draw:
+ lines:
+ cap: butt
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: round
+ outline:
+ color: [1.0,1.0,1.0]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ cap: butt
+ in_park:
+ filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden,battlefield] }
+ draw:
+ lines:
+ color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ outline:
+ color: [0.790,0.790,0.790]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ steps:
+ filter:
+ all:
+ - kind: path
+ - highway: steps
+ draw:
+ dashed:
+ #order: function() { return feature.sort_key; }
+ order: 1005
+ color: [0.501,0.650,0.650]
+ width: [[15, 0.6], [16, 1px], [17, 1px], [18, 4px], [19, 1.5m]]
+ interactive: true
+ lines:
+ visible: false
+ order: 1000
+ interactive: true
+ #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
+ #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
+ color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
+ width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
+ visible: true
+ #color: purple
+ steps-late:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ # lines:
+ # color: [0.707,0.884,0.872]
+ # visible: true
+ # outline:
+ # width: [[17, 0px], [18, 1px], [19, 2px]]
+ # color: [0.850,0.850,0.850]
+ dashed:
+ width: [[17, 2px], [18, 3px], [19, 3.5px]]
+ color: [0.501,0.650,0.650]
+ early-show-as-lines-z14:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ dashed:
+ visible: false
+ lines:
+ visible: true
+ networked:
+ filter: { walking_network: true }
+ draw:
+ lines:
+ width: [[13, 0.75px], [14, 1px], [15, 2px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
+ dashed:
+ width: [[13, 1.25px],[14, 2px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
+ highlight:
+ order: 980
+ color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
+ join: round
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ color: [0.120,0.600,0.520]
+ networked-steps-late:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ dashed:
+ color: [0.120,0.600,0.520]
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
+ draw:
+ dashed:
+ color: [0.120,0.600,0.520]
+ # in_university:
+ # filter: { landuse_kind: university }
+ # draw:
+ # dashed:
+ # color: *path_steps1_b
+ # outline:
+ # color: [1.0,1.0,1.0]
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # dashed:
+ # color: *path_steps1_b
+ # outline:
+ # color: [1.0,1.0,1.0]
+ labels-steps:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 59
+ visible: *text_visible_steps
+ text_source: name
+ font:
+ fill: [0.45,0.45,0.45]
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ winter_sport_pistes:
+ filter: { kind: piste }
+ draw:
+ lines:
+ order: 388 # We override the server value here because Eraser Map is also a special Ski Map
+ cap: round
+ join: round
+ color: '#909090'
+ width: [[13,0px],[14,1px],[15, 1.25px], [16, 2px], [18, 3m]]
+ text-blend-order:
+ priority: 18
+ visible: *text_visible_piste
+ font:
+ fill: *text_fill_piste
+ size: 12px
+ stroke: { color: [0.913,0.925,0.933], width: 4 }
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ text-blend-order:
+ visible: false
+ early-z15:
+ filter: { $zoom: [15] }
+ draw:
+ text-blend-order:
+ font:
+ fill: *text_fill_piste_e
+ size: 11px
+ easy:
+ filter: { piste_difficulty: easy }
+ draw:
+ lines:
+ color: [0.367,0.750,0.622]
+ intermediate:
+ filter: { piste_difficulty: intermediate }
+ draw:
+ lines:
+ color: [0.420,0.678,0.863]
+ advanced:
+ filter: { piste_difficulty: advanced }
+ draw:
+ lines:
+ color: [0.450,0.450,0.450]
+ text-blend-order:
+ text_source: function() { if( feature.name ){ return '◆ ' + feature.name; } else { return ''; } }
+ expert:
+ filter: { piste_difficulty: expert }
+ draw:
+ lines:
+ color: [0.450,0.450,0.450]
+ text-blend-order:
+ text_source: function() { if( feature.name ){ return '◆◆ ' + feature.name; } else { return ''; } }
+ pier:
+ filter: { kind: path, man_made: pier }
+ draw:
+ lines:
+ color: [0.993,0.993,0.993]
+ width: [[13, 0px], [14, 0.5px],[15, 1.5px], [16, 2.5px],[17, 3px],[18, 3m]]
+ outline:
+ color: [0.431,0.806,0.914]
+ width: [[15, 0px],[16,0.65px], [17, 0.75px], [18, 1px], [19, 1.5px]]
+ racetrack:
+ filter: { kind: racetrack }
+ draw:
+ lines:
+ interactive: true
+ cap: round
+ join: round
+ color: [0.400,0.666,0.690]
+ width: [[13,0.5px],[14,1px],[15, 1px], [16, 1.5px], [18, 3px], [19, 5px]]
+ airport-lines:
+ filter: { kind: minor_road, aeroway: [runway,taxiway] }
+ draw:
+ lines:
+ color: [[11, [0.25,0.25,0.25]], [17, [0.0,0.0,0.0]]]
+ cap: butt
+ width: [[10, 1px], [11, 1.5px], [12, 2px], [13, 4px], [14, 8px], [15, 16px], [16, 32px], [17, 60m]]
+ outline:
+ color: [1.0,1.0,1.0]
+ # Features come in at zoom 9, but include mostly minor airports without POIs until z13
+ early:
+ filter: { $zoom: { max: 12 }, not: { landuse_kind: [aerodrome, runway, taxiway] } }
+ draw:
+ lines:
+ visible: false
+ not-round:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ lines:
+ cap: butt
+ taxiway:
+ filter: { aeroway: taxiway }
+ draw:
+ lines:
+ color: [[11, [0.885,0.885,0.885]], [13, [0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
+ width: [[11, 0.5px], [12, 0.65px], [13, 0.65px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ outline:
+ color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
+ width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
+ early:
+ filter: { $zoom: { max: 13 } }
+ draw:
+ lines:
+ visible: false
+ ferry:
+ filter: { kind: ferry }
+ draw:
+ lines:
+ color: [0.451,0.804,0.878]
+ width: [[12, 0.5px], [13, 0.75px], [15, 1.0px]]
+ aerialway:
+ filter: { kind: aerialway }
+ draw:
+ lines:
+ interactive: true
+ color: [0.5,0.5,0.5]
+ width: [[14, 0.5px], [15, 1.0px], [16, 2m]]
+ gondola_cable_car:
+ filter: { aerialway: [gondola, cable_car] }
+ draw:
+ lines:
+ color: [0.45,0.45,0.45]
+ width: [[12, 0.5px], [13, 0.5px], [14, 1.75px], [15, 2.5px], [16, 2.5px], [18, 3m]]
+# lines_transparent:
+# color: [0.5,0.5,0.5]
+# width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px]]
+ chair_lift:
+ filter: { aerialway: chair_lift }
+ draw:
+ lines:
+ color: [0.45,0.45,0.45]
+ width: [[12, 0.5px], [13, 0.5px], [14, 1.75px], [15, 2.5px], [16, 2.5px], [18, 3m]]
+# lines_transparent:
+# color: [0.5,0.5,0.5]
+# width: [[12, 0px], [13, 5px], [14, 8px], [15, 10px], [16, 12px], [18, 20px]]
+ aerialway-labels:
+ filter: { $zoom: { min: 14 } }
+ draw:
+ text-blend-order:
+ priority: 59
+ visible: *text_visible_aerialway
+ text_source: name
+ font:
+ fill: *text_fill
+ size: 10px
+ stroke: { color: *text_stroke_park, width: 4 }
+ minor:
+ filter: { not: { aerialway: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
+ draw:
+ text-blend-order:
+ visible: false
+ early_gondola:
+ filter: { $zoom: [14], aerialway: [gondola,cable_car] }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ later:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ buildings:
+ data: { source: mapzen, layer: buildings }
+ filter:
+ not: { location: underground }
+ # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
+ draw:
+ polygons:
+ visible: false
+ order: 329
+ color: [[14,[0.930,0.940,0.940]],[15,[0.920,0.930,0.930]],[16,[0.930,0.940,0.940]]]
+ lines:
+ style: lines
+ order: 330
+ visible: false
+ color: [[14,[0.750,0.750,0.750]],[17,[0.85, 0.85, 0.85]]]
+ width: [[14, 0px], [15, 0.5px], [16,0.5px], [17,1px], [18, 1.25px]]
+
+ # turn interactive feature selection on for buildings with names
+ interactive:
+ filter: { name: true }
+ draw: { polygons: { interactive: true } }
+
+ # building footprints, pre-extrusion
+ footprints:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: [13], area: { min: 100000 }, name: true }
+ - { $zoom: [13], area: { min: 100000 }, kind: true }
+ - { $zoom: [13], height: { min: 250 } }
+ - { $zoom: [13], volume: { min: 250000 } }
+ - { $zoom: [14], area: { min: 20000 }, name: true }
+ - { $zoom: [14], area: { min: 20000 }, kind: true }
+ - { $zoom: [14], area: { min: 5000 }, landuse_kind: true }
+ - { $zoom: [14], height: { min: 150 } }
+ - { $zoom: [14], volume: { min: 150000 } }
+ - { $zoom: [15], area: { min: 5000 }, name: true }
+ - { $zoom: [15], area: { min: 5000 }, kind: true }
+ - { $zoom: [15], area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: [15], height: { min: 100 } }
+ - { $zoom: [15], volume: { min: 100000 } }
+ - { $zoom: [16], area: { min: 1000 }, name: true }
+ - { $zoom: [16], area: { min: 1000 }, kind: true }
+ - { $zoom: [16], area: { min: 2000 }, landuse_kind: true }
+ - { $zoom: [16], volume: { min: 50000 } }
+ #- { $zoom: [16], height: { min: 50 } }
+ - { $zoom: { min: 17 } }
+ all:
+ - not: { location: underground }
+ # filter:
+ # $zoom: { min: 15 }
+ # any:
+ # # show footprints for buildings at least one zoom level before they will be extruded
+ # - { $zoom: [13], area: { min: 50000 } }
+ # - { $zoom: [13], height: { min: 250 } }
+ # - { $zoom: [13], volume: { min: 200000 } }
+ # - { $zoom: [14], area: { min: 5000 } }
+ # - { $zoom: [14], height: { min: 190 } }
+ # - { $zoom: [14], volume: { min: 150000 } }
+ # - { $zoom: [15], height: { min: 100 } }
+ # - { $zoom: [15], area: { min: 500 } }
+ # - { $zoom: [15], volume: { min: 100000 } }
+ # - { $zoom: [16], area: { min: 100 } }
+ # - { $zoom: [16], volume: { min: 50000 } }
+ # - { $zoom: { min: 17 } }
+ draw:
+ polygons:
+ visible: true
+ lines:
+ visible: true
+
+ extrude:
+ filter:
+ any:
+ # for the buildings that were visible at zoom 15, extrude those all up a bit at z17
+ - { $zoom: [16], area: { min: 20000 }, name: true }
+ - { $zoom: [16], area: { min: 20000 }, kind: true }
+ - { $zoom: [16], area: { min: 5000 }, landuse_kind: true }
+ - { $zoom: [16], height: { min: 150 } }
+ - { $zoom: [16], volume: { min: 150000 } }
+ - { $zoom: [17], area: { min: 5000 }, name: true }
+ - { $zoom: [17], area: { min: 5000 }, kind: true }
+ - { $zoom: [17], area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: [17], height: { min: 100 } }
+ - { $zoom: [17], volume: { min: 100000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ polygons:
+ visible: true
+ order: 438
+ style: building-grid
+ extrude: 100
+ color: [0.930,0.940,0.940]
+ lines:
+ visible: true
+ order: 439
+ style: building-lines
+ extrude: 100
+ z16-default:
+ filter: { $zoom: [16] }
+ draw:
+ polygons:
+ extrude: 20
+ lines:
+ extrude: 20
+ z18-default:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ polygons:
+ extrude: 20
+ lines:
+ extrude: 20
+ z18-special:
+ filter:
+ any:
+ - { $zoom: { min: 18 }, area: { min: 5000 }, name: true }
+ - { $zoom: { min: 18 }, area: { min: 5000 }, kind: true }
+ - { $zoom: { min: 18 }, area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: { min: 18 }, height: { min: 100 } }
+ - { $zoom: { min: 18 }, volume: { min: 100000 } }
+ draw:
+ polygons:
+ extrude: 100
+ lines:
+ extrude: 100
+
+
+ # landuse-specific rules
+ # in_park:
+ # filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
+ # draw:
+ # polygons:
+ # color: [0.864,0.910,0.905]
+
+ # # golf_course:
+ # # filter: { landuse_kind: golf_course }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # nature_reserve:
+ # # filter: { landuse_kind: nature_reserve }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # conservation:
+ # # filter: { landuse_kind: conservation }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # zoo:
+ # # filter: { landuse_kind: zoo }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # in_university:
+ # filter: { landuse_kind: [university,school] }
+ # draw:
+ # polygons:
+ # color: [0.950,0.917,0.883]
+ # lines:
+ # color: *brown1_bo
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # polygons:
+ # color: [0.976,0.908,0.913]
+ # in_airport:
+ # filter: { landuse_kind: [aerodrome, runway, taxiway] }
+ # draw:
+ # polygons:
+ # color: *purple_b
+ # lines:
+ # color: *purple_bo
+ # width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
+ # in_retail:
+ # filter: { landuse_kind: retail }
+ # draw:
+ # polygons:
+ # color: [0.945, 0.898, 0.878]
+
+ buildings-labels:
+ data: { source: mapzen, layer: buildings }
+ filter:
+ all:
+ - { $zoom: { min: 17 } }
+ - $geometry: point
+ - not: { location: underground, kind: address }
+ - name: true
+ any:
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 10000 }, landuse_kind: true }
+ - { $zoom: [16], area: { min: 7000 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: [16], volume: { min: 50000 }, name: true }
+ - { $zoom: [17], area: { min: 3000 } }
+ - { $zoom: [17], area: { min: 2000 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: [18], area: { min: 1000 } }
+ - { $zoom: [18], kind: [university, college, school, kindergarten] }
+ - { $zoom: [19], area: { min: 200 } }
+ - { $zoom: { min: 19 }, kind: [university, college, school, kindergarten] }
+ - { $zoom: { min: 20 }, area: true }
+ draw:
+ text-blend-order:
+ interactive: true
+ move_into_tile: true
+ priority: 70
+ visible: *text_visible_building
+ order: 7
+ font:
+ fill: '#666'
+ family: *text_font_family
+ style: italic
+ size: 11px
+ stroke: { color: *text_stroke_address, width: 1 }
+ building_labels-z15-z16-z17:
+ filter: { $zoom: [15,16,17] }
+ draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
+ building_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
+ building_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
+ building-labels-z16:
+ filter: function() { if( $zoom == 16 && feature.name.length > 20 ) { return true; } else { return false; } }
+ draw:
+ text-blend-order:
+ visible: false
+ building-labels-z17:
+ filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
+ draw:
+ text-blend-order:
+ visible: false
+ building-labels-z20+:
+ filter: { $zoom: { min: 20 } }
+ draw:
+ text-blend-order:
+ text_source: function() { if( feature.addr_housenumber ) { return feature.name + '\n' + feature.addr_housenumber; } else { return feature.name; } }
+ address-labels:
+ data: { source: mapzen, layer: buildings }
+ filter:
+ $zoom: { min: 20 }
+ any:
+ - kind: address
+ - { label_position: yes, addr_housenumber: true, name: false }
+ draw:
+ text-blend-order:
+ interactive: true
+ order: 7
+ visible: *text_visible_address
+ text_source: addr_housenumber
+ font:
+ fill: *text_fill_address
+ family: *text_font_family
+ style: italic
+ size: 10px
+ stroke: { color: *text_stroke_address, width: 4 }
+
+ boundaries:
+ data: { source: mapzen, layer: boundaries }
+ # country subdivisions (states, provinces)
+ draw:
+ lines:
+ interactive: true
+ order: function() { return (feature.sort_key + 100); }
+# color: red
+# width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
+ country:
+ filter:
+ any:
+ - type: country
+ - kind: nation
+ - admin_level: 2
+ draw:
+ lines:
+ interactive: true
+ color: *country_boundary
+ width: [[1, 0.5px], [2, 1.0px], [4, 1.5px], [9, 2.5px], [14, 3.5px], [16, 4.5px], [17, 14m]]
+ water:
+ filter: { maritime_boundary: yes }
+ draw:
+ lines:
+ visible: false
+ #order: function() { return (feature.sort_key - 2); }
+ #color: [0.568,0.942,1.000]
+ region:
+ filter:
+ any:
+ - type: state
+ # territorial here is probably a hack
+ - kind: [state, department, region, provincial, territorial]
+ - admin_level: 4
+ not:
+ # deal with bogus Hungary data
+ - scalerank: 0
+ draw:
+ lines:
+ interactive: true
+ color: *region_boundary
+ width: [[0, 0.5px], [2, 1.0px], [5, 1.25px], [6, 1.5px], [7, 1.75px], [9, 2.0px], [14, 4.0px], [16, 5.0px], [17, 10m]]
+ water:
+ filter: { maritime_boundary: yes }
+ draw:
+ lines:
+ visible: false
+ early:
+ filter: { scalerank: [0,3,4,5,6,7,8,9,10], $zoom: { max: 8 } }
+ draw:
+ lines:
+ visible: false
+ city_walls:
+ filter: { kind: city_wall }
+ draw:
+ lines:
+ color: *city_wall
+ width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
+ retaining_wall:
+ filter: { kind: retaining_wall }
+ draw:
+ lines:
+ color: *retaining_wall
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
+ snow_fence:
+ filter: { kind: snow_fence }
+ draw:
+ lines:
+ color: *snow_fence
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
+ fence:
+ filter: { kind: fence }
+ draw:
+ lines:
+ color: [[14,[0.770,0.765,0.755]],[18,[0.770,0.765,0.755]],[19,[0.841,0.837,0.824]]]
+ width: [[14, 0.5px], [15, 0.75px], [16, 0.75px], [18, 1.5px], [19, 1m]]
+ dam:
+ filter: { kind: dam }
+ draw:
+ lines:
+ color: *dam
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
+
+ places:
+ data: { source: mapzen, layer: places }
+ filter: { not: { kind: [ocean, sea] } }
+ draw:
+ text-blend-order:
+ visible: false # labels are enabled by each layer below
+ font:
+ family: *text_font_family
+ # weight: 500
+ fill: *text_fill
+
+ country-z2:
+ filter:
+ all:
+ - kind: [country]
+ - $zoom: [2]
+ - name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"]
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: *text_fill
+ weight: 200
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ country-z3:
+ filter: { name: true, population: true, kind: [country], $zoom: [3] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: *text_fill
+ weight: 200
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones:
+ # US, Brazil, China, Russia, Canada, Greenland, Iceland, Australia, India, Japan, Guam, Indonesia, South Africa, Egypt, Nigeria, Kenya
+ filter: { not: { name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"] }, $zoom: {min: 3, max: 4} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z4:
+ filter: { name: true, population: true, kind: [country], $zoom: [4] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: *text_fill
+ weight: 200
+ size: 13px
+ stroke: { color: *text_stroke, width: 4 }
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones-z4:
+ filter: { name: [Nederland,Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,Crna Gora,Македонија,The Gambia,Burundi,Swaziland,الإمارات العربية المتحدة,العراق,Singapore,El Salvador,Belize,Trinidad and Tobago, Saint Lucia, Montserrat,Anguilla,República Dominicana,Bahamas,British Virgin Islands,Antigua and Barbuda,Grenada,Sint Maarten,Saint Kitts and Nevis,Cayman Islands,België - Belgique - Belgien], $zoom: {min: 4, max: 5} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z5:
+ filter:
+ all:
+ - name: true
+ - population: true
+ - kind: [country]
+ - $zoom: [5]
+ any:
+ - { population: { min: 5000000 } }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ fill: *text_fill
+ weight: 600
+ size: 13px
+ stroke: { color: *text_stroke, width: 4 }
+ # country-spacer-z5:
+ # filter: { kind: country, $zoom: [5] }
+ # draw:
+ # text-blend-order:
+ # text_source: function() { return feature.name.split('').join(' ') }
+ # text_wrap: false
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ early-ones-z5:
+ filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien], $zoom: {min: 5, max: 6} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z6:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ filter: { name: true, kind: [country], $zoom: [6] }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 14px
+ weight: 600
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ small-ones-z6:
+ filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 6, max: 7} }
+ draw:
+ text-blend-order:
+ visible: false
+ country-z7:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ filter: { name: true, kind: [country], $zoom: { min: 7, max: 9 } }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: function() { return feature["name:en"] || feature["name"]; }
+ font:
+ size: 16px
+ weight: 600
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ small-ones-z7:
+ filter: { name: [Liechtenstein,San Marino,Civitatis Vaticanæ,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ visible: false
+
+ region-z4:
+ filter: { name: true, kind: [state], $zoom: [4], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 11px
+ weight: 400
+ fill: [0.70,0.70,0.70]
+ stroke: { color: *text_stroke, width: 4 }
+
+ region-z5:
+ filter: { name: true, kind: [state], $zoom: [5], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 18px
+ weight: 200
+ fill: [0.5,0.5,0.5,0.5]
+ stroke: { color: *text_stroke, width: 4 }
+
+ region-z6:
+ filter: { name: true, kind: [state], $zoom: [6], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: 'name:short'
+ font:
+ size: 21px
+ weight: 200
+ fill: [0.5,0.5,0.5,0.5]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+
+ region:
+ filter: { name: true, kind: [state], $zoom: {min: 7, max: 9} }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: *text_visible_admin
+ text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
+ font:
+ size: 30px
+ weight: 200
+ fill: [0.5,0.5,0.5,0.5]
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ # icons:
+ # size: [[13, 12px], [15, 18px]]
+ # interactive: true
+ # sprite: *townspot_sprite
+ pesky:
+ filter: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ visible: false
+ small-ones:
+ filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: {min: 7, max: 8} }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
+ font: { transform: uppercase }
+
+ populated-places:
+ draw:
+ icons:
+ interactive: true
+ priority: 5
+ text:
+ interactive: true
+ anchor: bottom
+
+ populated-places-natural-earth-z2:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [2], scalerank: 0 }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z3:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [3] }
+ z3places-1:
+ filter: { scalerank: [0] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ z3places-2:
+ filter: { scalerank: [1] }
+ draw:
+ icons:
+ priority: 7
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 9px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z4:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [4] }
+ z4places-1:
+ filter: { scalerank: [0] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z4places-2:
+ filter: { scalerank: [1,2] }
+ draw:
+ icons:
+ priority: 7
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 9px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z5:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [5] }
+ z5places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ priority: 7
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 15px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ priority: 5
+ size: 8px
+ sprite: capital-l
+# text:
+# priority: 6
+
+ z5places-2:
+ filter: { scalerank: [2] }
+ draw:
+ icons:
+ priority: 11
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ priority: 9
+ size: 6px
+ sprite: capital-m
+# text:
+# priority: 10
+
+ z5places-3:
+ filter: { scalerank: [3,4] }
+ draw:
+ icons:
+ priority: 17
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ priority: 15
+ size: 6px
+ sprite: capital-m
+# text:
+# priority: 16
+
+ populated-places-natural-earth-z6:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [6] }
+ z6places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ priority: 7
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 16px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-l
+ size: 8px
+ priority: 5
+# text:
+# priority: 6
+
+ z6places-2:
+ filter: { scalerank: [2,3,4] }
+ draw:
+ icons:
+ priority: 11
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 13px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 9
+# text:
+# priority: 10
+
+ z6places-3:
+ filter: { scalerank: [5,6] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 15
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 13
+# text:
+# priority: 14
+
+ populated-places-natural-earth-z7:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [7] }
+ z7places-1:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 7
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 5
+# text:
+# priority: 6
+
+ z7places-2:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 13
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 11
+# text:
+# priority: 12
+
+ z7places-3:
+ filter: { scalerank: [6,7] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 17
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 15
+# text:
+# priority: 16
+
+ populated-places-osm-z8:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [8]
+
+ z8places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 7
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 5
+# text:
+# priority: 6
+ z8places-2:
+ filter:
+ any:
+ - { population: { min: 150000, max: 999999 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 11
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 9
+# text:
+# priority: 10
+
+ z8places-3:
+ filter:
+ any:
+ - { population: { min: 85000, max: 149999 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 15
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 6px
+ sprite: capital-m
+ priority: 13
+# text:
+# priority: 14
+
+ z8places-4:
+ filter:
+ any:
+ - { population: { min: 50000, max: 84999 } }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 5px
+ sprite: capital-m
+ priority: 17
+# text:
+# priority: 18
+ z8places-5:
+ filter:
+ all:
+ - { population: { max: 50000 } }
+ any:
+ - { capital: yes }
+ - { state_capital: yes }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 5px
+ sprite: capital-s
+ priority: 17
+# text:
+# priority: 18
+
+ populated-places-natural-earth-z8-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [8], population: { max: 50000 } }
+ draw: { icons: { text: { font: { fill: *text_fill } } } }
+ z8places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 23
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 8px
+ sprite: capital-l
+ priority: 21
+# text:
+# priority: 22
+
+ z8places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+
+ z8places-3-ne:
+ filter: { scalerank: [6,7] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 27
+ repeat_group: abc
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-s
+ priority: 25
+# text:
+# priority: 26
+
+ populated-places-osm-z9:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [9]
+
+ z9places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 17px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z9places-2a:
+ filter:
+ any:
+ - { population: { min: 350000, max: 999999 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z9places-2b:
+ filter:
+ any:
+ - { population: { min: 150000, max: 350000 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 11
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+ priority: 9
+# text:
+# priority: 10
+
+ z9places-3:
+ filter:
+ any:
+ - { population: { min: 85000, max: 149999 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 15
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+ priority: 13
+ text:
+ font:
+ size: 14px
+
+ z9places-4:
+ filter:
+ any:
+ - { population: { min: 50000, max: 84999 } }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-s
+ priority: 17
+# text:
+# priority: 18
+ z9places-5:
+ filter:
+ all:
+ - { population: { max: 50000 } }
+ any:
+ - { capital: yes }
+ - { state_capital: yes }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 19
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-s
+ priority: 17
+# text:
+# priority: 18
+
+ populated-places-osm-z9-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [9]
+ - kind: [city,town]
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 21
+ text:
+ # anchor: center
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z9-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [9], population: { max: 50000 } }
+ draw: { icons: { text: { font: { fill: *text_fill } } } }
+ z9places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ size: 8px
+ visible: *icon_visible_populated_places
+ sprite: townspot-l-rev
+ priority: 25
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-l
+ priority: 23
+# text:
+# priority: 24
+
+ z9places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 29
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+ priority: 28
+# text:
+# priority: 27
+
+ z9places-3-ne:
+ filter: { scalerank: [6,7,8,9] }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 33
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+ priority: 31
+# text:
+# priority: 32
+
+ populated-places-osm-z10:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [10]
+
+ z10places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z10places-2a:
+ filter:
+ any:
+ - { population: { min: 350000, max: 1000000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z10places-2b:
+ filter:
+ any:
+ - { population: { min: 150000, max: 350000 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 7
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z10places-3:
+ filter:
+ any:
+ - { population: { min: 50000, max: 149999 } }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 11
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z10places-4:
+ filter:
+ any:
+ - { population: { min: 20000, max: 49999 } }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 13
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z10-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [10]
+ - kind: [city,town]
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 15
+ text:
+ # anchor: center
+ visible: *text_visible_populated_places
+ font:
+ size: 10px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z10-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [10], population: { max: 20000 } }
+ draw: { icons: { text: { font: { fill: *text_fill } } } }
+ z10places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ icons:
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 17px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z10places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ icons:
+ size: 6px
+ visible: *icon_visible_populated_places
+ sprite: townspot-m-rev
+ priority: 21
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ sprite: capital-m
+ priority: 20
+# text:
+# priority: 21
+
+ z10places-3-ne:
+ filter: { scalerank: [6,7,8,9,10] }
+ draw:
+ icons:
+ size: 5px
+ visible: *icon_visible_populated_places
+ sprite: townspot-s-rev
+ priority: 25
+ text:
+ visible: *text_visible_populated_places
+ font:
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ icons:
+ size: 7px
+ sprite: capital-m
+ priority: 23
+# text:
+# priority: 24
+
+ populated-places-osm-z11:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [11]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+
+ z11places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 18px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z11places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 999999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z11places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z11-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [11]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z11-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ font:
+ fill: *text_fill
+ z11places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 10
+ font:
+ size: 18px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 9
+ font:
+ size: 18px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z11places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 13
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 11
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ state_capital:
+ filter: { state_capital: yes }
+ draw:
+ text-blend-order:
+ priority: 12
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z11places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 15
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 14
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z12:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [12]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+
+ z12places-1:
+ filter:
+ any:
+ - { population: { min: 1000000 } }
+
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 18px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z12places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 999999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 14px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z12places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ z12places-4:
+ filter:
+ any:
+ - { population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 8
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z12-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [12]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 9
+ font:
+ size: 11px
+ fill: *text_fill
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z12-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ priority: 10
+ font:
+ fill: *text_fill
+
+ z12places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 12
+ font:
+ size: 18px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 11
+ font:
+ size: 18px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z12places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 14
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 13
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z12places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11,12] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 16
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ capital:
+ filter: { capital: yes }
+ draw:
+ text-blend-order:
+ priority: 15
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z13-z14:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: true
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [13,14]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ font:
+ weight: 600
+ fill: *text_fill
+ z14:
+ filter:
+ $zoom: [14]
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+ z13places-1:
+ filter:
+ any:
+ - { population: { min: 200000 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+ z13places-2:
+ filter:
+ any:
+ - { population: { min: 50000, max: 199999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 5
+ font:
+ size: 14px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z13places-3:
+ filter:
+ any:
+ - { population: { min: 5000, max: 49999 } }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 6
+ font:
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z13places-4:
+ filter:
+ any:
+ - population: false
+ - population: true
+ all:
+ - population: { max: 5000 }
+ draw:
+ text-blend-order:
+ font:
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-osm-z13-z14-no-population:
+ filter:
+ all:
+ - source: [openstreetmap, openstreetmap.org]
+ - name: true
+ - population: false
+ - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
+ - $zoom: [13, 14]
+ - kind: [city,town]
+ draw:
+ text-blend-order:
+ anchor: center
+ visible: *text_visible_populated_places
+ priority: 7
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+
+ populated-places-natural-earth-z13-z14-backfill:
+ filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
+ draw:
+ text-blend-order:
+ anchor: center
+ font:
+ fill: *text_fill
+ weight: 400
+
+ z13places-1-ne:
+ filter: { scalerank: [0,1] }
+ draw:
+ text-blend-order:
+ priority: 8
+ interactive: false
+ visible: false
+
+ z13places-2-ne:
+ filter: { scalerank: [2,3,4,5] }
+ draw:
+ text-blend-order:
+ priority: 9
+ visible: *text_visible_populated_places
+ font:
+ size: 13px
+ stroke: { color: *text_stroke, width: 4 }
+
+ z13places-3-ne:
+ filter: { scalerank: [6,7,8,9,10,11,12] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_populated_places
+ priority: 10
+ font:
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+
+ neighborhood-z11:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [11]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11]
+ - max_zoom: { min: 12 }
+ - is_landuse_aoi: false
+ #- kind_tile_rank: { max: 6 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 9px
+ weight: 400
+ fill: [0.085,0.658,0.710]
+ transform: uppercase
+ stroke: { color: [0.894,0.906,0.914], width: 4 }
+ neighborhood-z12:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [12]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12]
+ - max_zoom: { min: 13 }
+ - is_landuse_aoi: false
+ #- kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 10px
+ weight: 400
+ fill: [0.085,0.658,0.710]
+ transform: uppercase
+ stroke: { color: [0.894,0.906,0.914], width: 4 }
+ neighborhood-z13:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [13]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13]
+ - max_zoom: { min: 14 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 10
+ visible: *text_visible_neighbourhoods_e
+ font:
+ size: 12px
+ weight: 400
+ fill: [0.085,0.658,0.710]
+ transform: uppercase
+ stroke: { color: [0.904,0.916,0.924], width: 4 }
+ neighborhood-z14:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [14]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14]
+ - max_zoom: { min: 15 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 12
+ visible: *text_visible_neighbourhoods
+ font:
+ size: 15px
+ weight: 300
+ fill: [0.085,0.658,0.710]
+ transform: uppercase
+ stroke: { color: [0.914,0.926,0.934], width: 5 }
+ neighborhood-z15:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [15]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14,15]
+ - max_zoom: { min: 16 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ text_wrap: 12
+ visible: *text_visible_neighbourhoods
+ font:
+ size: 18px
+ weight: 200
+ fill: [0.085,0.658,0.710]
+ transform: uppercase
+ stroke: { color: [0.949,0.953,0.953], width: 6 }
+ z15-new:
+ filter:
+ all:
+ - min_zoom: 15
+ draw:
+ text-blend-order:
+ priority: 19
+ font:
+ size: 13px
+ neighborhood-z16:
+ filter:
+ all:
+ - name: true
+ - kind: [macrohood, neighbourhood]
+ - $zoom: [16]
+ any:
+ - source: [openstreetmap, openstreetmap.org]
+ - source: [whosonfirst, whosonfirst.mapzen.com]
+ all:
+ - min_zoom: [11,12,13,14,15,16]
+ - max_zoom: { min: 17 }
+ - is_landuse_aoi: false
+ - kind_tile_rank: { max: 8 }
+ draw:
+ text-blend-order:
+ priority: 18
+ visible: *text_visible_neighbourhoods
+ font:
+ size: 20px
+ weight: 300
+ fill: [0.082,0.780,1.000]
+ transform: uppercase
+ stroke: { color: [0.949,0.953,0.953], width: 6 }
+
+ highway-exit:
+ data: { source: mapzen, layer: [pois] }
+ filter: { kind: motorway_junction, $zoom: { min: 15 } }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: *text_visible_exits
+ interactive: true
+ text_source: ref
+ priority: 52
+ font:
+ fill: *text_fill_exits
+ size: [[12,9px],[15,12px],[17,14px]]
+ stroke: { color: *text_stroke, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+ airport-gate:
+ data: { source: mapzen, layer: [pois] }
+ filter: { kind: gate, aeroway: gate, $zoom: { min: 16 } }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: *text_visible_airport_gate
+ interactive: true
+ text_source: ref
+ font:
+ fill: *text_fill_exits
+ size: [[16,9px],[17,10px],[20,12px]]
+ #stroke: { color: *highway1, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+ pois_and_landuse_labels:
+ data: { source: mapzen, layer: [pois,landuse] }
+ visible: *label_visible_poi_landuse
+ filter:
+ all:
+ - not: { kind: [building,address,apron,residential] }
+ - $geometry: point
+ # White list a few kinds to "always" show per the tile zoom inclusion, else test feature's min_zoom
+ - function() { if( feature.kind == 'attraction' || feature.kind == 'landmark' || feature.kind == 'playground' || feature.kind == 'toilets' ) { return true } else { return feature.min_zoom <= $zoom } }
+ - any:
+ - area: false
+ all:
+ - $zoom: { min: 12 }
+ - area: false
+ elevation: true
+ all:
+ - $zoom: { min: 11 }
+ - area: true
+ all:
+ - kind: true
+ draw:
+ icons:
+ size: [[13, 18px], [16, 18px], [18, 22px]]
+ interactive: true
+ visible: false
+ priority: 45
+ repeat_group: abc
+ text:
+ visible: false # labels are enabled by each layer below
+ move_into_tile: false # preserves text alignment w/icons in JS
+ anchor: bottom
+ interactive: true
+ font:
+ family: *text_font_family
+ weight: 600
+ fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 3 }
+ text:
+ visible: false # labels are enabled by each layer below, and these are only for special cases like enclosures
+ move_into_tile: false # preserves text alignment w/icons in JS
+ anchor: bottom
+ interactive: true
+ font:
+ family: *text_font_family
+ weight: 600
+ fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 3 }
+ poi_labels-z14:
+ filter: { $zoom: [14] }
+ draw: { icons: { text: { font: { size: 10px } } } }
+ poi_labels-z15:
+ filter: { $zoom: [15,16,17] }
+ draw: { icons: { text: { font: { size: 10px, stroke: { width: 2 } } } } }
+ poi_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 } } } } }
+ poi_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { icons: { text: { font: { size: 11px, weight: 600, stroke: { width: 3 } } } } }
+
+ # since the blocks below are filtering by area and by name, we need a block here
+ # that adjusts the color by kind first
+ text-colours:
+ greens:
+ filter: { kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass, beach, battlefield] }
+ draw:
+ icons:
+ text:
+ font:
+ fill: [0.032,0.522,0.530]
+ weight: 600
+ stroke:
+ color: *text_stroke_park
+ no-name:
+ filter: { name: false }
+ sports-pitch:
+ filter: { kind: [grass, pitch], $geometry: point, area: true, $zoom: { min: 16 } }
+ draw:
+ icons:
+ sprite: function() { return feature.sport; }
+ visible: *icon_visible_poi_landuse_e
+ priority: 49
+ baseball:
+ filter: { sport: baseball }
+ draw: { icons: { sprite: baseball-field } }
+ basketball:
+ filter: { sport: basketball }
+ draw: { icons: { sprite: basketball-court } }
+ football:
+ filter: { sport: football }
+ draw: { icons: { sprite: football-stadium } }
+ hockey:
+ filter: { sport: hockey-field }
+ draw: { icons: { sprite: hockey-field } }
+ soccer:
+ filter: { sport: soccer }
+ draw: { icons: { sprite: soccer-field } }
+ tennis:
+ filter: { sport: tennis }
+ draw: { icons: { sprite: tennis } }
+ tree:
+ filter: { kind: tree, $zoom: { min: 18 } }
+ draw:
+ icons:
+ # TODO: put tree icons behind the buildings
+ # See SF State University #20/37.72314/-122.47772
+ sprite: tree
+ color: [0.145,0.745,0.643]
+ visible: *icon_visible_poi_landuse_e
+ z18:
+ filter: { $zoom: [18] }
+ draw:
+ icons:
+ # to circle white SMALL
+ color: [0.459,0.765,0.722]
+ sprite: dot-white
+ z19:
+ filter: { $zoom: [19] }
+ draw:
+ icons:
+ # to circle white SMALL
+ sprite: tree
+ gate:
+ filter: { kind: gate, $zoom: { min: 19 } }
+ draw:
+ icons:
+ # to circle black generic
+ sprite: dot-black
+ visible: *icon_visible_poi_landuse_e
+ text:
+ text_source: function() { return 'gate'; }
+ toilets:
+ filter: { kind: toilets, $zoom: { min: 16 } }
+ draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
+ toilets:
+ filter: { kind: toilets, $zoom: { min: 16 } }
+ draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
+ playground:
+ filter: { kind: playground, $zoom: { min: 18 } }
+ draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
+ picnic_site:
+ filter: { kind: [picnic_site, picnic_table], $zoom: { min: 15 } }
+ draw: { icons: { sprite: picnic-spot, visible: *icon_visible_poi_landuse_e } }
+ information:
+ filter: { kind: information, $zoom: { min: 18 } }
+ draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
+ drinking-water:
+ filter: { kind: drinking_water, $zoom: { min: 18 } }
+ draw: { icons: { sprite: drinking-water, visible: *icon_visible_poi_landuse_e } }
+ traffic-signal:
+ filter: { kind: traffic_signals, $zoom: { min: 18 } }
+ draw: { icons: { sprite: traffic-signal, visible: *icon_visible_poi_landuse_e } }
+ bicycle-parking:
+ filter: { kind: [bicycle_parking], $zoom: { min: 19 } }
+ draw: { icons: { sprite: bicycle-parking, visible: *icon_visible_poi_landuse_e } }
+ car-parking:
+ filter: { kind: parking, $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: parking
+ visible: *icon_visible_poi_landuse_e
+ power_tower:
+ filter: { kind: [power_tower], $zoom: { max: 16 } }
+ draw: { icons: { visible: false } }
+ power_pole:
+ filter: { kind: [power_pole], $zoom: { max: 17 } }
+ draw: { icons: { visible: false } }
+ playgrounds:
+ filter:
+ all:
+ - kind: [playground, allotments, attraction, landmark]
+ any:
+ - { $zoom: [15], area: { min: 600 } }
+ - { $zoom: [16], area: { min: 300 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: function() { return feature.kind; }
+ pylon:
+ filter: { kind: [pylon], $zoom: { max: 17 } }
+ draw: { icons: { visible: false }}
+ bbq:
+ filter: { kind: [bbq], $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: bbq
+ visible: *icon_visible_poi_landuse_e
+ ranger-station:
+ filter: { kind: [ranger_station], $zoom: { min: 15 } }
+ draw: { icons: { sprite: ranger-station, visible: *icon_visible_poi_landuse_e } }
+ trailhead:
+ filter: { kind: [trailhead], $zoom: { min: 15 } }
+ draw: { icons: { sprite: trailhead, visible: *icon_visible_poi_landuse_e } }
+ firepit:
+ filter: { kind: [firepit], $zoom: { min: 15 } }
+ draw: { icons: { sprite: firepit, visible: *icon_visible_poi_landuse_e } }
+ swimming-area:
+ filter: { kind: [swimming_area], $zoom: { min: 15 } }
+ draw: { icons: { sprite: swimming-area, visible: *icon_visible_poi_landuse_e } }
+ fishing_area:
+ filter: { kind: [fishing_area], $zoom: { min: 15 } }
+ draw: { icons: { sprite: fishing-area, visible: *icon_visible_poi_landuse_e } }
+ slipway:
+ filter: { kind: [slipway], $zoom: { min: 15 } }
+ draw: { icons: { sprite: slipway, visible: *icon_visible_poi_landuse_e } }
+ hot-spring:
+ filter: { kind: [hot_spring], $zoom: { min: 15 } }
+ draw: { icons: { sprite: hot-spring, visible: *icon_visible_poi_landuse_e } }
+ spring:
+ filter: { kind: [spring], $zoom: { min: 15 } }
+ draw: { icons: { sprite: spring, visible: *icon_visible_poi_landuse_e } }
+ shower:
+ filter: { kind: [shower], $zoom: { min: 15 } }
+ draw: { icons: { sprite: shower, visible: *icon_visible_poi_landuse_e } }
+ geyser:
+ filter: { kind: [geyser], $zoom: { min: 15 } }
+ draw: { icons: { sprite: geyser, visible: *icon_visible_poi_landuse_e } }
+ observatory:
+ filter: { kind: [observatory], $zoom: { min: 14 } }
+ draw: { icons: { sprite: observatory, visible: *icon_visible_poi_landuse_e } }
+ boat-rental:
+ filter: { kind: [boat_rental], $zoom: { min: 15 } }
+ draw: { icons: { sprite: boat-rental, visible: *icon_visible_poi_landuse_e } }
+ water-tower:
+ filter: { kind: [water_tower], $zoom: { min: 15 } }
+ draw: { icons: { sprite: water-tower, visible: *icon_visible_poi_landuse_e } }
+ battlefield:
+ filter: { kind: [battlefield] }
+ draw: { icons: { sprite: battlefield, visible: *icon_visible_poi_landuse_e } }
+ walking-or-bicycle_junction:
+ filter: { kind: [bicycle_junction, walking_junction] }
+ draw:
+ icons:
+ sprite: generic
+ visible: *icon_visible_poi_landuse_e
+ text:
+ visible: true
+ text_source: ref
+ outdoor-needing-icons:
+ filter: { kind: [bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, silo, putin, egress, hazard, put_in_egress, rapid, beacon, cross, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, horse, fire_lookout, fee_station, rest_area] }
+ draw:
+ icons:
+ priority: 43
+ sprite: generic
+ hide-early:
+ filter: { kind: [recreation_track, dam] }
+ draw:
+ icons:
+ priority: 50
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ icons:
+ visible: false
+ has-name:
+ filter: { name: true }
+ # match 1:1 correlations between data and sprite name
+ direct-match:
+ filter:
+ all:
+ - area: false
+ draw:
+ icons:
+ # sprite_source: kind
+ sprite: function() { return feature.kind; }
+ visible: *icon_visible_poi_landuse
+ # add generic icon at high zoom, if direct match fails
+ generic-icons:
+ filter: { $zoom: { min: 18 }, area: false }
+ draw:
+ icons:
+ priority: 47
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+
+ # add generic icon at high zoom
+ default-label-names:
+ filter: { $zoom: { min: 13 }, area: false }
+ draw:
+ icons:
+ text:
+ visible: *text_visible_poi_landuse
+ landuse-labels-green-areas-national-park:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [national_park, "park or protected land"]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [4], area: { min: 3000000000 } }
+ - { $zoom: [5], area: { min: 3000000000 } }
+ - { $zoom: [6], area: { min: 500000000 } }
+ - { $zoom: [7,8,9], area: { min: 100000000 } }
+ - { $zoom: [10], area: { min: 50000000 } }
+ - { $zoom: [11], area: { min: 25000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 200000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ - { $zoom: { min: 15 } }
+ national-park:
+ # yosemite national park, joshua tree national park
+ filter: function() { return feature.name && ((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
+ visible: *label_visible_landuse_green
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ sprite: park
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ style: italic
+ stroke: { color: *text_stroke_park, width: 4 }
+ natl-park-labels-z4-z5:
+ filter: { $zoom: [4,5] }
+ draw:
+ icons:
+ visible: false
+ text: { font: { size: 9px, stroke: { width: 2px } } }
+ natl-park-labels-z6:
+ filter: { $zoom: [6] }
+ draw:
+ icons:
+ text: { font: { size: 9px, stroke: { width: 2px } } }
+ natl-park-labels-z7:
+ filter: { $zoom: [7] }
+ draw:
+ icons:
+ text: { font: { size: 10px, stroke: { width: 2px } } }
+ natl-park-labels-z8:
+ filter: { $zoom: [8,9] }
+ draw:
+ icons:
+ text: { font: { size: 11px, stroke: { width: 2px } } }
+ natl-park-labels-z10:
+ filter: { $zoom: {min: 10, max: 14 } }
+ draw:
+ icons:
+ text: { font: { size: 12px } }
+ poi_labels-z14:
+ filter: { $zoom: [14] }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ poi_labels-z15:
+ filter: { $zoom: [15,16,17] }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ poi_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ poi_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ landuse-labels-green-areas-not-national-park:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [park, national_park, "park or protected land", conservation, protected_area, nature_reserve, forest, grass]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [5], area: { min: 10000000000 } }
+ - { $zoom: [6,7], area: { min: 5000000000 } }
+ - { $zoom: [8], area: { min: 1000000000 } }
+ - { $zoom: [9], area: { min: 100000000 } }
+ - { $zoom: [10], area: { min: 50000000 } }
+ - { $zoom: [11], area: { min: 10000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 200000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 1000 } }
+ - { $zoom: { min: 17 } }
+ not-national-park:
+ filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ sprite: park
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ #fill: [0.032,0.522,0.530]
+ # fill: [0.093,0.473,0.408]
+ size: 11px
+ style: italic
+ stroke: { color: *text_stroke_park, width: 3 }
+ green-areas-z6:
+ # mojave national preserve
+ filter: { $zoom: [6] }
+ draw:
+ icons:
+ visible: false
+ text: { font: { size: 10px, stroke: { width: 2px } } }
+ green-areas-z7:
+ filter: { $zoom: [7] }
+ draw:
+ icons:
+ visible: false
+ text: { font: { size: 10px, stroke: { width: 2px } } }
+ green-areas-z17-up:
+ filter: { $zoom: { min: 17 } }
+ draw:
+ icons:
+ text:
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+
+ wilderness-areas:
+ filter: function() { return feature.name && (feature.name.indexOf("Wilderness") > -1 || feature.name.indexOf("BLM") > -1) }
+ draw:
+ icons:
+ sprite: forest
+ early:
+ filter: { $zoom: { max: 8 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ early-not-national-park:
+ filter: { not: { kind: [national_park] }, $zoom: { max: 6 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ not-national-park:
+ filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
+ # draw:
+ # icons:
+ # sprite: park
+ early:
+ filter: { $zoom: { max: 8 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ forest:
+ filter: function() { return ( (feature.name && feature.name.indexOf("Forest") > -1) || (feature.protect_class >=6 && feature.name.indexOf("Park") < 0) ) }
+ draw:
+ icons:
+ sprite: forest
+ early:
+ filter: { $zoom: { max: 8 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ hide-till-later:
+ filter: { kind: [grass], $zoom: { max: 16 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ only-text-later:
+ filter: { kind: [grass], $zoom: { min: 16 } }
+ draw:
+ icons:
+ visible: false
+ text: { font: { style: italic } }
+ battlefield:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [battlefield]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [4], area: { min: 3000000000 } }
+ - { $zoom: [5], area: { min: 3000000000 } }
+ - { $zoom: [6], area: { min: 500000000 } }
+ - { $zoom: [7,8,9], area: { min: 10000000 } }
+ - { $zoom: [10], area: { min: 5000000 } }
+ - { $zoom: [11], area: { min: 5000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 200000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ - { $zoom: { min: 15 } }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ sprite: battlefield
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ #fill: [0.058,0.605,0.615]
+ # fill: [0.093,0.473,0.408]
+ style: italic
+ stroke: { color: *text_stroke_park, width: 4 }
+ beach:
+ filter:
+ all:
+ - area: true
+ - $geometry: point
+ - kind: [beach]
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [10], area: { min: 300000 } }
+ - { $zoom: [11], area: { min: 100000 } }
+ - { $zoom: [12], area: { min: 50000 } }
+ - { $zoom: [13], area: { min: 50000 } }
+ - { $zoom: [14], area: { min: 20000 } }
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 1000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ interactive: true
+ sprite: beach
+ text:
+ visible: *text_visible_landuse_green
+ interactive: true
+ airport:
+ filter:
+ all:
+ - kind: [airport, aerodrome]
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [9], area: { min: 10000000 } }
+ - { $zoom: [10], area: { min: 10000000 } }
+ - { $zoom: [11], area: { min: 5000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 500000 } }
+ - { $zoom: [14], area: { min: 20000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ icons:
+ sprite: airport
+ visible: *icon_visible_landuse_green
+ priority: 42
+ text:
+ visible: *text_visible_landuse_green
+ text_source: function() { if(feature.iata) { return feature.name + ' (' + feature.iata + ')'; } else { return feature.name; } }
+ font:
+ #fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: [9,10,11] }
+ # todo: huh?
+ draw: { icons: { text: { text_source: iata, font: { size: 11px } } } }
+ early2:
+ filter: { $zoom: { min: 12, max: 14 } }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ university:
+ filter:
+ all:
+ - kind: [university, college]
+ - area: true
+ - $geometry: point
+ - not: { $layer: buildings }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [9], area: { min: 10000000 } }
+ - { $zoom: [10], area: { min: 5000000 } }
+ - { $zoom: [11], area: { min: 2000000 } }
+ - { $zoom: [12], area: { min: 500000 } }
+ - { $zoom: [13], area: { min: 100000 } }
+ - { $zoom: [14], area: { min: 100000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 40000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ visible: *label_visible_landuse_green
+ draw:
+ icons:
+ sprite: college-university
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ #fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: { max: 12 } }
+ draw: { icons: { text: { visible: false } } }
+ early2:
+ filter: { $zoom: { min: 12, max: 14 } }
+ draw: { icons: { text: { font: { size: 10px } } } }
+ school:
+ filter:
+ all:
+ - kind: [school, kindergarten]
+ - area: true
+ - $geometry: point
+ - not: { $layer: buildings }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ #- { $zoom: [13], area: { min: 100000 } }
+ #- { $zoom: [14], area: { min: 50000 } }
+ # show labels for smaller landuse areas at higher zooms
+ #- { $zoom: [15], area: { min: 10000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ icons:
+ sprite: school
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ #fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ early:
+ filter: { $zoom: { max: 14 } }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ winter_sports:
+ filter:
+ all:
+ - kind: winter_sports
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [10], area: { min: 5000000 } }
+ - { $zoom: [11], area: { min: 2000000 } }
+ - { $zoom: [12], area: { min: 500000 } }
+ - { $zoom: [13], area: { min: 100000 } }
+ - { $zoom: [14], area: { min: 100000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 40000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [17], area: { min: 2000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ icons:
+ sprite: ski-area
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ #fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+# early:
+# filter: { $zoom: { max: 14 } }
+# draw: { icons: { text: { font: { size: 10px } } } }
+ tourism-related:
+ filter:
+ all:
+ - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium, enclosure, animal]
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 11 }, area: { min: 400000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 50000 } }
+ - { $zoom: { min: 14 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ draw:
+ icons:
+ sprite: function() { return feature.kind; }
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+ priority: 43
+ text:
+ visible: *text_visible_poi_landuse
+ font:
+ #fill: [0.10,0.10,0.10]
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ enclosure:
+ filter: { kind: [enclosure, animal] }
+ draw:
+ icons:
+ visible: false
+ sprite_default: dot-black
+ text:
+ text_wrap: 10
+ font:
+ style: italic
+ weight: 400
+ #early-sizing:
+# filter: { $zoom: { max: 14 } }
+# draw: { icons: { text: { font: { size: 10px } } } }
+ playgrounds_allotments_attraction_landmark_supermarket:
+ filter:
+ all:
+ - kind: [playground, allotments, attraction, landmark, supermarket]
+ - area: true
+ - $geometry: point
+ any:
+ - { $zoom: [15], area: { min: 600 } }
+ - { $zoom: [16], area: { min: 300 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ visible: *icon_visible_landuse_green
+ priority: 41
+ text:
+ visible: *text_visible_landuse_green
+ font:
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ attraction:
+ filter: { kind: [attraction] }
+ draw:
+ icons:
+ sprite: attraction
+ landmark:
+ filter: { kind: [landmark] }
+ draw:
+ icons:
+ sprite: landmark
+ glacier:
+ filter:
+ all:
+ - kind: glacier
+ - area: true
+ - $geometry: point
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [10], area: { min: 20000000 } }
+ - { $zoom: [11], area: { min: 5000000 } }
+ - { $zoom: [12], area: { min: 2000000 } }
+ - { $zoom: [13], area: { min: 500000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 14 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: true
+ priority: 44
+ interactive: true
+ text_wrap: 10
+ font:
+ weight: 400
+ style: italic
+ fill: '#4ba3c5'
+ sports-pitch-areas:
+ filter: { kind: [grass, pitch], $zoom: { min: 16 } }
+ draw:
+ icons:
+ sprite: function() { return feature.sport; }
+ visible: *icon_visible_poi_landuse_e
+ priority: 49
+ baseball:
+ filter: { sport: baseball }
+ draw: { icons: { sprite: baseball-field } }
+ basketball:
+ filter: { sport: basketball }
+ draw: { icons: { sprite: basketball-court } }
+ football:
+ filter: { sport: football }
+ draw: { icons: { sprite: football-stadium } }
+ hockey:
+ filter: { sport: hockey-field }
+ draw: { icons: { sprite: hockey-field } }
+ soccer:
+ filter: { sport: soccer }
+ draw: { icons: { sprite: soccer-field } }
+ tennis:
+ filter: { sport: tennis }
+ draw: { icons: { sprite: tennis } }
+ landuse-labels-not-any-above:
+ filter:
+ all:
+ - $zoom: { min: 6 }
+ - area: true
+ - $geometry: point
+ - not: { kind: [park, national_park, "park or protected land", battlefield, conservation, protected_area, nature_reserve, forest, grass, beach, airport, aerodrome, university, college, school, kindergarten, winter_sports, zoo, theme_park, resort, aquarium, winery, maze, stadium, playground, allotments, attraction, landmark, glacier] }
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [5,6,7], area: { min: 5000000000 } }
+ - { $zoom: [8], area: { min: 1600000000 } }
+ - { $zoom: [9], area: { min: 400000000 } }
+ - { $zoom: [10], area: { min: 100000000 } }
+ - { $zoom: [11], area: { min: 25000000 } }
+ - { $zoom: [12], area: { min: 5000000 } }
+ - { $zoom: [13], area: { min: 1000000 } }
+ - { $zoom: [14], area: { min: 50000 } }
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [15], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 2000 } }
+ - { $zoom: { min: 17 } }
+ draw:
+ icons:
+ sprite: function() { return feature.kind; }
+ sprite_default: generic
+ visible: *icon_visible_poi_landuse
+ priority: 43
+ text:
+ visible: *text_visible_poi_landuse
+ font:
+ weight: 600
+ size: 10px
+ stroke: { color: *text_stroke, width: 3 }
+ landuse-z18:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ icons:
+ text:
+ font:
+ size: 11px
+ stroke: { color: *text_stroke, width: 4 }
+ # building-like:
+ # filter: { kind: [commercial,residential,warehouse,public,dormitory], osm_relation: false }
+ # draw:
+ # icons:
+ # sprite: building
+ residential-relations-paris-wtf-early:
+ filter: { kind: [residential], osm_relation: true, $zoom: { max: 13 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ residential-relations-paris-wtf:
+ filter: { kind: [residential], osm_relation: true, $zoom: { min: 13 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: true
+ text_source: short_name
+ hide-till-later:
+ filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland], $zoom: { max: 17 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ only-text-later:
+ filter: { kind: [pedestrian,common,railway,ship,houseboat,common,grass,wetland], $zoom: { min: 17 } }
+ draw:
+ icons:
+ visible: false
+ text: { font: { style: italic } }
+ burial_vault-early:
+ filter: { kind: [burial_vault], $zoom: { max: 19 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ university-poi:
+ filter: { kind: [university, college], area: false, $zoom: { max: 16 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ office-early:
+ filter:
+ any:
+ - { kind: [insurance, office, company], $zoom: [15], area: { max: 10000 } }
+ - { kind: [insurance, office, company], $zoom: [16], area: { max: 5000 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ bank-early:
+ filter: { kind: [bank], $zoom: { max: 17 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ post-office-early:
+ filter: { kind: [post_office], $zoom: { max: 14 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ pylon-early:
+ filter: { kind: [pylon], name: true, $zoom: { max: 18 } }
+ draw: { icons: { text: { visible: false } } }
+ school-early:
+ filter: { kind: [school, kindergarten], $zoom: { max: 16 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ atm-early:
+ filter: { kind: [atm], $zoom: { max: 18 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ bicycle-parking-early:
+ filter: { kind: [bicycle_parking], $zoom: { max: 19 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ yes-early:
+ filter: { kind: [yes], $zoom: { max: 18 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ peak-early:
+ filter: { kind: [peak, volcano] }
+ draw:
+ icons:
+ visible: true
+ priority: 43
+ text: { visible: true }
+ low-priority-early-z11:
+ filter: { kind_tile_rank: { min: 3 }, $zoom: [11,12] }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ low-priority-early-z13:
+ filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ peak-labels-later:
+ filter: { kind: [peak, volcano], $zoom: { min: 14 } }
+ draw:
+ icons:
+ text:
+ text_source: function() { if( feature.name && feature.elevation ) { return feature.name + "\n" + feature.elevation + "m"; } else { if( feature.name ) { return feature.name; } else { return feature.elevation; } } }
+ waterfall-early:
+ filter: { kind: [waterfall], $zoom: { max: 14 } }
+ draw:
+ icons:
+ visible: true
+ text: { visible: true }
+ low-priority-early-z11:
+ filter: { kind_tile_rank: { min: 3 }, $zoom: [11,12] }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ low-priority-early-z13:
+ filter: { kind_tile_rank: { min: 4 }, $zoom: [13] }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ waterfall-labels:
+ filter: { kind: [waterfall], $zoom: { min: 14 } }
+ draw:
+ icons:
+ text:
+ text_source: function() { if( feature.name && feature.height ) { return feature.name + "\n" + feature.height; } else { if( feature.name ) { return feature.name; } else { return feature.height; } } }
+ drinking-water-early:
+ filter: { kind: [drinking_water], $zoom: { max: 18 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ memorial-early:
+ filter: { kind: [memorial], $zoom: { max: 13 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ animal-points-early:
+ filter: { kind: [animal], area: false, $zoom: { max: 18 } }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+# animal-areas-early:
+# filter: { kind: [animal], area: { min: 500 }, $zoom: { max: 18 } }
+# draw:
+# icons:
+# visible: false
+# text: { visible: false }
+ parking-labels-early:
+ filter:
+ kind: [parking]
+ $zoom: { max: 18 }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ parking-labels:
+ filter:
+ kind: [parking]
+ $zoom: { min: 18 }
+ draw:
+ icons:
+ text:
+ visible: *text_visible_poi_landuse
+ font:
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ landuse-funky:
+ filter: { kind: [commercial, residential, wood], $zoom: { max: 17 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ car-sharing:
+ filter: { kind: car_sharing }
+ icons-early:
+ filter: { $zoom: { max: 17 } }
+ draw:
+ icons:
+ visible: false
+ text-labels-early:
+ filter: { $zoom: { max: 19 } }
+ draw:
+ icons:
+ text:
+ visible: false
+ bicycle_rental_station-early:
+ filter: { kind: bicycle_rental_station }
+ icons-early:
+ filter: { $zoom: { max: 17 } }
+ draw:
+ icons:
+ size: [[16, 14px], [17, 16px], [18, 20px]]
+ early-names:
+ filter: { $zoom: { max: 17 } }
+ draw:
+ icons:
+ text:
+ visible: false
+ tower:
+ filter: { kind: [tower], label_placement: yes }
+ draw:
+ icons:
+ visible: false
+ text:
+ font:
+ style: italic
+ station-train-subway:
+ filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
+ visible: *label_visible_station
+ draw:
+ icons:
+ visible: *icon_visible_station
+ sprite: train-station
+ size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
+ priority: 41
+ text:
+ visible: *text_visible_station
+ font:
+ weight: 600
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ low-priority-early:
+ filter: { kind_tile_rank: { min: 5 }, $zoom: { min: 0, max: 13 } }
+ draw:
+ icons:
+ visible: false
+ #size: [[12, 10px], [14, 10px], [15, 16px]]
+ text: { visible: false }
+ low-priority-early-z13:
+ filter: { kind_tile_rank: { min: 5 }, $zoom: [13] }
+ draw:
+ icons:
+ visible: false
+ #size: [[12, 10px], [14, 10px], [15, 16px]]
+ text: { visible: false }
+ low-priority-early-z14:
+ filter: { kind_tile_rank: { min: 7 }, $zoom: [14] }
+ draw:
+ icons:
+ #size: [[14, 11px], [15, 16px], [17, 18px], [18, 20px]]
+ #visible: false
+ text: { visible: false }
+ stations-later:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ icons:
+ text:
+ font:
+ size: 11px
+ tram-stop-early:
+ filter: { kind: tram_stop, $zoom: { max: 15 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ tram-stop-early-z15:
+ filter: { kind: tram_stop, $zoom: [15] }
+ draw:
+ icons:
+ text:
+ visible: false
+ tram-stop:
+ filter: { kind: tram_stop, $zoom: { min: 15 } }
+ draw:
+ icons:
+ size: [[16, 12px], [17, 18px]]
+ glaciers-pois:
+ filter: { $zoom: { min: 14 }, kind: glacier, area: false }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ text:
+ visible: false
+ priority: 45
+ interactive: true
+ text_wrap: 10
+ font:
+ weight: 400
+ style: italic
+ fill: '#4ba3c5'
+ bus-stop-bus-station-labels:
+ filter:
+ kind: [bus_stop, bus_station]
+ $zoom: { min: 18 }
+ draw:
+ icons:
+ size: [[17, 8px], [19, 18px]]
+ text:
+ visible: *text_visible_poi_landuse
+ font:
+ size: 10px
+ stroke: { color: *text_stroke, width: 4 }
+ bus_stop-early:
+ filter:
+ kind: [bus_stop]
+ $zoom: { max: 17 }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ bus_stop-early-z17:
+ filter:
+ kind: [bus_stop]
+ $zoom: [17,18]
+ draw:
+ icons:
+ size: [[17, 16px], [19, 18px]]
+ text:
+ visible: false
+ minor-z17-early:
+ filter:
+ kind: [accountant, administrative, advertising_agency, architect, association, atm, bakery, bed_and_breakfast, bicycle, bicycle_parking, bicycle_rental_station, books, bus_stop, butcher, car, car_repair, chalet, clothes, company, computer, consulting, convenience, doityourself, drinking_water, dry_cleaning, educational_institution, emergency_phone, employment_agency, estate_agent, fashion, financial, florist, foundation, gate, gift, government, greengrocer, guest_house, hairdresser, hostel, hotel, insurance, it, jewelry, lawyer, mast, memorial, mobile_phone, motel, newspaper, ngo, notary, optician, parking, pet, physician, playground, political_party, post_box, religion, research, subway_entrance, tax_advisor, telecommunication, telephone, theatre, therapist, toilets, traffic_signals, travel_agent, water_tower, yes]
+ area: false
+ $zoom: { max: 17 }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ minor-z18-early:
+ filter:
+ kind: [bench, waste_basket]
+ area: false
+ $zoom: { max: 18 }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
+ outdoor-needing-icons:
+ filter: { kind: [bicycle_repair_station, cycle_barrier, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, putin, egress, hazard, put_in_egress, rapid, beacon, cross, mineshaft, adit, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, fishing, recreation_track, horse, fire_lookout, fee_station, rest_area] }
+ draw:
+ icons:
+ order: 41
+ sprite: generic
+ text:
+ order: 42
+ outdoor-has-icons:
+ filter: { kind: [outdoor, lighthouse, saddle, picnic_area, picnic_table, camp_site, ski, mine, zoo, museum, gas, gas_canister, slipway, mineshaft, adit, recreation_track, playground, allotments, attraction, landmark] }
+ draw:
+ icons:
+ order: 41
+ text:
+ order: 42
+ not-outdoor-not-landuse:
+ filter: { area: false, not: { kind: [park, national_park, outdoor, bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, bicycle_junction, walking_junction, dam, boat_storage, windmill, playground, allotments, attraction, landmark] } }
+ draw:
+ icons:
+ order: 45
+ text:
+ order: 46
+ suppress-early:
+ filter: { $zoom: { max: 15 }, kind: [scrub, wetland, scree, meadow, grass, farmyard, farmland, wood, pier, breakwater, groyne, dike, cutline, residential, retail, commercial, industrial] }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ meadow:
+ filter: { kind: [meadow], $zoom: [14] }
+ draw:
+ text:
+ visible: true
+ text_wrap: 10
+ font:
+ style: italic
+ suppress-the-icon-text-label-only:
+ filter: { $zoom: { min: 15 }, kind: [scrub, wetland, scree, meadow, village_green, common, grass, farmyard, farmland, wood, enclosure, animal, pier, breakwater, groyne, dike, cutline, residential, retail, commercial, industrial] }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: true
+ text_wrap: 10
+ font:
+ style: italic
+ icons:
+ adult-boutique:
+ filter: { kind: [erotic, adult_boutique] }
+ draw: { icons: { sprite: adult-boutique } }
+ allotments:
+ filter: { kind: [allotments] }
+ draw: { icons: { sprite: allotments } }
+ airport:
+ filter: { kind: [airport, aerodrome] }
+ draw: { icons: { sprite: airport } }
+ animal-shelter:
+ filter: { kind: [animal_shelter, animal-shelter, animal_boarding] }
+ draw: { icons: { sprite: animal-shelter } }
+ antique-shop:
+ filter: { kind: [antiques, antique-shop] }
+ draw: { icons: { sprite: antique-shop } }
+ art-gallery:
+ filter: { kind: [art_gallery, art-gallery, art, artwork] }
+ draw: { icons: { sprite: art-gallery } }
+ athletics-sports:
+ filter: { kind: [athletic_sports, recreation_ground, sports_centre] }
+ draw: { icons: { sprite: athletics-sports } }
+ automotive-shop:
+ filter: { kind: [car_repair, automotive-shop, automotive, tyres] }
+ draw: { icons: { sprite: automotive-shop } }
+ bbq:
+ filter: { kind: [bbq] }
+ draw: { icons: { sprite: bbq } }
+ bakery:
+ filter: { kind: [bakery, pastry, chocolate] }
+ draw: { icons: { sprite: bakery } }
+ bar:
+ filter: { kind: [pub, bar] }
+ draw: { icons: { sprite: bar } }
+ beach-resort:
+ filter: { kind: [beach_resort] }
+ draw: { icons: { sprite: beach-resort } }
+ beer-garden:
+ filter: { kind: [biergarten, beer-garden, brewery] }
+ draw: { icons: { sprite: beer-garden } }
+ bike-shop:
+ filter: { kind: [bicycle, bicycle_rental, bike, bike_shop, bicycle_rental_station] }
+ draw: { icons: { sprite: bike-shop } }
+ bicycle-parking:
+ filter: { kind: [bicycle_parking] }
+ draw: { icons: { sprite: bicycle-parking } }
+ boat-ferry:
+ filter: { kind: [ferry_terminal, boat-ferry, ferry-boat, ferry] }
+ draw: { icons: { sprite: boat-ferry } }
+ boat-ramp:
+ filter: { kind: [boat-ramp, boat_ramp] }
+ draw: { icons: { sprite: boat-ramp } }
+ bookstore:
+ filter: { kind: [books, bookstore] }
+ draw: { icons: { sprite: bookstore } }
+ bowling-alley:
+ filter: { kind: [bowling_alley, bowling-alley] }
+ draw: { icons: { sprite: bowling-alley } }
+ bridal-shop:
+ filter: { kind: [bridal, bridal-shop] }
+ draw: { icons: { sprite: bridal-shop } }
+ building-icon:
+ filter: { kind: [building, auditorium, terminal, hangar, retirement_home, manor, recreation_center, apartments] }
+ draw: { icons: { sprite: building } }
+ early:
+ filter:
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: [14], area: { max: 200000 } }
+ - { $zoom: [15], area: { max: 20000 } }
+ - { $zoom: [16], area: { max: 5000 } }
+ - { $zoom: [17], area: { max: 1000 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ burger:
+ filter: { kind: [fast_food, burger] }
+ draw: { icons: { sprite: burger } }
+ bus-station:
+ filter: { kind: [bus_stop, bus_station] }
+ draw: { icons: { sprite: bus-station } }
+ camera-store:
+ filter: { kind: [camera, camera-store, photo] }
+ draw: { icons: { sprite: camera-store } }
+ campground:
+ filter: { kind: [campground, camp_site] }
+ draw: { icons: { sprite: campground } }
+ candy-store:
+ filter: { kind: [candy, candy-store, confectionery] }
+ draw: { icons: { sprite: candy-store } }
+ caravan-site:
+ filter: { kind: [caravan_site] }
+ draw: { icons: { sprite: caravan-site } }
+ car-dealership:
+ filter: { kind: [car, car-dealership] }
+ draw: { icons: { sprite: car-dealership } }
+ car-wash:
+ filter: { kind: [car_wash, car-wash] }
+ draw: { icons: { sprite: car-wash } }
+ castle:
+ filter: { kind: [castle, fort] }
+ draw: { icons: { sprite: castle } }
+ cemetery:
+ filter: { kind: [grave_yard, cemetery] }
+ draw: { icons: { sprite: cemetery } }
+ cheese-shop:
+ filter: { kind: [cheese, cheese-shop] }
+ draw: { icons: { sprite: cheese-shop } }
+ clothing-store:
+ filter: { kind: [clothes, chothing-store, "clothes store", fashion] }
+ draw: { icons: { sprite: clothing-store } }
+ coffee-shop:
+ filter: { kind: [cafe, coffee-shop] }
+ draw: { icons: { sprite: coffee-shop } }
+ college-university:
+ filter: { kind: [university, college, college-university], area: false }
+ draw: { icons: { sprite: college-university } }
+ commercial:
+ filter: { kind: [commercial] }
+ draw: { icons: { sprite: mall } }
+ concert-hall:
+ filter: { kind: [music_venue] }
+ draw: { icons: { sprite: concert-hall } }
+ convenience-store:
+ filter: { kind: [convenience, convenience-store, convenience_store, beverages] }
+ draw: { icons: { sprite: convenience-store } }
+ cosmetics-shop:
+ filter: { kind: [cosmetics, cosmetics-shop, beauty] }
+ draw: { icons: { sprite: cosmetics-shop } }
+ dam:
+ filter: { kind: [dam] }
+ draw: { icons: { sprite: dot-black } }
+ department-store:
+ filter: { kind: [department_store, department-store] }
+ draw: { icons: { sprite: department-store } }
+ doctors:
+ filter: { kind: [doctors, clinic] }
+ draw: { icons: { sprite: doctors } }
+ dog-park:
+ filter: { kind: [dog_park, dog_run, dog-run] }
+ draw: { icons: { sprite: dog-park } }
+ drinking-water:
+ filter: { kind: drinking_water }
+ draw: { icons: { sprite: drinking-water } }
+ dry-cleaning:
+ filter: { kind: [dry_cleaning] }
+ draw: { icons: { sprite: dry-cleaning } }
+ electronics-store:
+ filter: { kind: [electronics, electronics-store, computer] }
+ draw: { icons: { sprite: electronics-store } }
+ factory:
+ filter: { kind: [factory, industrial, chimney, sub_station, substation, wastewater_plant, works, water_works, plant, generator] }
+ draw: { icons: { sprite: factory } }
+ farmers-market:
+ filter: { kind: [farmers_market, farmers-market] }
+ draw: { icons: { sprite: farmers-market } }
+ fire-station:
+ filter: { kind: [fire_station, fire-station] }
+ draw: { icons: { sprite: fire-station } }
+ fish-market:
+ filter: { kind: [fish, fish-market, seafood, fishmonger] }
+ draw: { icons: { sprite: fish-market } }
+ fishing-area:
+ filter: { kind: [fishing_area, fishing-spot, fishing] }
+ draw: { icons: { sprite: fishing-area } }
+ fitness:
+ filter: { kind: [gym, fitness, fitness_center] }
+ draw: { icons: { sprite: fitness } }
+ flea-market:
+ filter: { kind: [flea_market, flea-market] }
+ draw: { icons: { sprite: flea-market } }
+ flower-shop:
+ filter: { kind: [florist, flower-shop] }
+ draw: { icons: { sprite: flower-shop } }
+ forest:
+ filter: { kind: [forest, conservation, wood] }
+ draw: { icons: { sprite: forest } }
+ furniture-store:
+ filter: { kind: [furniture, furniture-store] }
+ draw: { icons: { sprite: furniture-store } }
+ garden-center:
+ filter: { kind: [garden_centre, garden_center] }
+ draw: { icons: { sprite: garden-center } }
+ gas:
+ filter: { kind: [gas, gas_canister] }
+ draw: { icons: { sprite: gas } }
+ gas-station:
+ filter: { kind: [fuel, gas-station] }
+ draw: { icons: { sprite: gas-station } }
+ general-entertainment:
+ filter: { kind: [ticket, general_entertainment] }
+ draw: { icons: { sprite: general-entertainment } }
+ generic:
+ filter: { kind: [generic] }
+ draw: { icons: { sprite: generic } }
+ gift-shop:
+ filter: { kind: [gift, gift-shop] }
+ draw: { icons: { sprite: gift-shop } }
+ golf-course:
+ filter: { kind: [golf-course, golf_course] }
+ draw: { icons: { sprite: golf-course } }
+ government-building:
+ filter: { kind: [townhall, public_building, embassy] }
+ draw: { icons: { sprite: government-building } }
+ grocery-store:
+ filter: { kind: [supermarket, grocery-store, health_food, greengrocer] }
+ draw: { icons: { sprite: grocery-store } }
+ harbor-marina:
+ filter: { kind: [marina, harbor, harbor-marina, harbor_marina, dock, mooring] }
+ draw: { icons: { sprite: harbor-marina } }
+ hardware-store:
+ filter: { kind: [hardware, hardware-store, doityourself, paint] }
+ draw: { icons: { sprite: hardware-store } }
+ hotel:
+ filter: { kind: [hotel, motel, hostel] }
+ draw: { icons: { sprite: hotel } }
+ hot_spring:
+ filter: { kind: [hot_spring] }
+ draw: { icons: { sprite: hot-spring } }
+ hunting:
+ filter: { kind: [hunting] }
+ draw: { icons: { sprite: hunting } }
+ ice-cream-shop:
+ filter: { kind: [ice_cream] }
+ draw: { icons: { sprite: ice-cream-shop } }
+ information:
+ filter: { kind: [info, information] }
+ draw: { icons: { sprite: information } }
+ jewelry-store:
+ filter: { kind: [jewelry, jewelry_store, jewelry-store] }
+ draw: { icons: { sprite: jewelry-store } }
+ landmark:
+ filter: { kind: [landmark, memorial, monument, wayside_shrine, beacon] }
+ draw: { icons: { sprite: landmark } }
+ tower:
+ filter: { kind: [tower], label_placement: false }
+ draw: { icons: { sprite: landmark } }
+ laundry:
+ filter: { kind: [laundry] }
+ draw: { icons: { sprite: laundry } }
+ light-rail:
+ filter: { kind: [light-rail, light_rail, tram_stop] }
+ draw: { icons: { sprite: light-rail } }
+ liquor-store:
+ filter: { kind: [alcohol, liquor-store, liquor] }
+ draw: { icons: { sprite: liquor-store } }
+ market:
+ filter: { kind: [market, variety_store, boutique, dairy, retail] }
+ draw: { icons: { sprite: market } }
+ mine:
+ filter: { kind: [mine, mineshaft, adit] }
+ draw: { icons: { sprite: mine } }
+ quarry:
+ filter: { kind: [quarry] }
+ draw: { icons: { sprite: quarry } }
+ miscellaneous-shop:
+ filter: { kind: [houseware, miscellaneous-shop] }
+ draw: { icons: { sprite: miscellaneous-shop } }
+ mobile-phone-shop:
+ filter: { kind: [mobile_phone] }
+ draw: { icons: { sprite: mobile-phone-shop } }
+ motorcycle-shop:
+ filter: { kind: [motorcycle_shop, motorcycle_repair] }
+ draw: { icons: { sprite: motorcycle-shop } }
+ motorcycle:
+ filter: { kind: [motorcycle] }
+ draw: { icons: { sprite: motorcycle } }
+ mountain:
+ filter: { kind: [mountain, peak] }
+ draw: { icons: { sprite: mountain } }
+ movie-theatre:
+ filter: { kind: [cinema, movie-theatre, movie-theater] }
+ draw: { icons: { sprite: movie-theatre } }
+ museum:
+ filter: { kind: [museum] }
+ draw: { icons: { sprite: museum } }
+ music-store:
+ filter: { kind: [music, music-store, musical_instrument] }
+ draw: { icons: { sprite: music-store } }
+ newsstand:
+ filter: { kind: [kiosk, newsstand, newsagent] }
+ draw: { icons: { sprite: newsstand } }
+ nightlife:
+ filter: { kind: [nightclub, nightlife] }
+ draw: { icons: { sprite: nightlife } }
+ office:
+ filter: { kind: [insurance, office, company] }
+ draw: { icons: { sprite: office } }
+ office-supplies:
+ filter: { kind: [office_supplies, office-supplies, stationery] }
+ draw: { icons: { sprite: office-supplies } }
+ optical-shop:
+ filter: { kind: [optician, optical_shop, optical-shop] }
+ draw: { icons: { sprite: optical-shop } }
+ outdoor:
+ filter: { kind: [outdoor] }
+ draw: { icons: { sprite: outdoor } }
+ performing-arts:
+ filter: { kind: [theater, theatre, performing-arts] }
+ draw: { icons: { sprite: performing-arts } }
+ pet-store:
+ filter: { kind: [pet, pet-store, pet-service, pet_store] }
+ draw: { icons: { sprite: pet-store } }
+ pharmacy:
+ filter: { kind: [pharmacy, chemist] }
+ draw: { icons: { sprite: pharmacy } }
+ photography-lab:
+ filter: { kind: [photo_studio, photography_lab, photographer] }
+ draw: { icons: { sprite: photography-lab } }
+ picnic-spot:
+ filter: { kind: [picnic_site, picnic_spot, picnic-spot, picnic_table] }
+ draw: { icons: { sprite: picnic-spot } }
+ pool:
+ filter: { kind: [pool, swimming_pool] }
+ draw: { icons: { sprite: pool } }
+ pool-hall:
+ filter: { kind: [billiards, pool-hall] }
+ draw: { icons: { sprite: pool-hall } }
+ post-office:
+ filter: { kind: [post_office, post-office] }
+ draw: { icons: { sprite: post-office } }
+ power-pylon:
+ filter: { kind: [tower, power-pylon, pylon] }
+ draw: { icons: { sprite: power-pylon } }
+ ranger-station:
+ filter: { kind: [ranger_station] }
+ draw: { icons: { sprite: ranger-station } }
+ real-estate:
+ filter: { kind: [estate_agent, real_estate] }
+ draw: { icons: { sprite: real-estate } }
+ recreation-track:
+ filter: { kind: [recreation_track] }
+ draw: { icons: { sprite: recreation-track } }
+ recycling-facility:
+ filter: { kind: [recycling, recycling-facility] }
+ draw: { icons: { sprite: recycling-facility } }
+ rental-car:
+ filter: { kind: [rental-car, car_rental, car_sharing] }
+ draw: { icons: { sprite: rental-car } }
+ rest-area:
+ filter: { kind: [rest_area, rest-area] }
+ draw: { icons: { sprite: rest-area } }
+ restaurant:
+ filter: { kind: [restaurant, deli] }
+ draw: { icons: { sprite: restaurant } }
+ ruin:
+ filter: { kind: [ruins, archaeological_site] }
+ draw: { icons: { sprite: ruin } }
+ salon-barber:
+ filter: { kind: [hairdresser, salon-barber, salon, beauty_salon] }
+ draw: { icons: { sprite: salon-barber } }
+ scuba-diving:
+ filter: { kind: [scuba_diving,dive_centre] }
+ draw: { icons: { sprite: scuba-diving } }
+ ship-wreck:
+ filter: { kind: [wreck] }
+ draw: { icons: { sprite: ship-wreck } }
+ shoe-store:
+ filter: { kind: [shoes, shoe-store, shoe_store] }
+ draw: { icons: { sprite: shoe-store } }
+ slipway:
+ filter: { kind: [slipway] }
+ draw: { icons: { sprite: slipway } }
+ smoke-shop:
+ filter: { kind: [smoke_shop, tobacco] }
+ draw: { icons: { sprite: smoke-shop } }
+ spa-massage:
+ filter: { kind: [spa, spa-massage, sauna, massage] }
+ draw: { icons: { sprite: spa-massage } }
+ # prefix with "a-" here to allow Tangram to sort the generic style 1st, allowing more specific religion tags to win later
+ a-spiritual-center:
+ filter:
+ all:
+ - kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel]
+ draw: { icons: { sprite: spiritual-center } }
+ church:
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: christian }
+ draw: { icons: { sprite: church } }
+ synagogue:
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: jewish }
+ draw: { icons: { sprite: synagogue } }
+ buddhist:
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: buddhist }
+ draw: { icons: { sprite: buddhism } }
+ mosque:
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: muslim }
+ draw: { icons: { sprite: mosque } }
+ sporting-goods-shop:
+ filter: { kind: [sporting_goods, sporting-goods-shop, sports] }
+ draw: { icons: { sprite: sporting-goods-shop } }
+ stable:
+ filter: { kind: [stable, horse_riding, horse] }
+ draw: { icons: { sprite: stable } }
+ storage-facility:
+ filter: { kind: [storage, storage-facility] }
+ draw: { icons: { sprite: storage-facility } }
+ subway-entrance:
+ filter: { kind: [subway_entrance] }
+ draw: { icons: { sprite: subway-entrance } }
+ summer-camp:
+ filter: { kind: [summer_camp] }
+ draw: { icons: { sprite: summer-camp } }
+ tailor-shop:
+ filter: { kind: [tailor, tailor-shop] }
+ draw: { icons: { sprite: tailor-shop } }
+ tattoo-parlor:
+ filter: { kind: [tattoo, tattoo_parlor, tattoo-parlor] }
+ draw: { icons: { sprite: tattoo-parlor } }
+ telescope:
+ filter: { kind: [telescope] }
+ draw: { icons: { sprite: telescope } }
+ theme-park:
+ filter: { kind: [theme_park, theme-park, miniature_golf] }
+ draw: { icons: { sprite: theme-park } }
+ thrift-vintage-store:
+ filter: { kind: [thrift, thrift-vintage-store, second_hand] }
+ draw: { icons: { sprite: thrift-vintage-store } }
+ toll-booth:
+ filter: { kind: [toll_booth, checkpoint, border_control] }
+ draw: { icons: { sprite: toll-booth } }
+ toy-game-store:
+ filter: { kind: [toys, toy-game-store, baby_goods] }
+ draw: { icons: { sprite: toy-game-store } }
+ toilets:
+ filter: { kind: [toilets] }
+ draw: { icons: { sprite: toilets } }
+ trailhead:
+ filter: { kind: [trailhead, hiking_trail] }
+ draw: { icons: { sprite: trailhead } }
+ veterinarian:
+ filter: { kind: [pet_care, veterinarian, veterinary] }
+ draw: { icons: { sprite: veterinarian } }
+ video-game-store:
+ filter: { kind: [video_games] }
+ draw: { icons: { sprite: video-game-store } }
+ video-store:
+ filter: { kind: [video, video_store] }
+ draw: { icons: { sprite: video-store } }
+ view-point:
+ filter: { kind: [viewpoint, view_point, view-point, vista] }
+ draw: { icons: { sprite: view-point } }
+ waterfall:
+ filter: { kind: [waterfall] }
+ draw: { icons: { sprite: waterfall } }
+ waterpark:
+ filter: { kind: [water_park] }
+ draw: { icons: { sprite: waterpark } }
+ well:
+ filter: { kind: [well, water_well] }
+ draw: { icons: { sprite: well } }
+ wine-shop:
+ filter: { kind: [wine, wine-shop] }
+ draw: { icons: { sprite: wine-shop } }
+ winery:
+ filter: { kind: [winery, wine] }
+ draw: { icons: { sprite: winery } }
+ winter_sport:
+ filter: { kind: [ski, ski_rental, ski_school, ski_jumping, skiing] }
+ draw: { icons: { sprite: ski-area } }
+ water-area-labels:
+ data: { source: mapzen, layer: [water] }
+ visible: *text_visible_water_labels
+ filter:
+ all:
+ - name: true
+ - $geometry: point
+ - not: { kind: [riverbank, dock, playa] }
+ - area: true
+ any:
+ # show labels for smaller landuse areas at higher zooms
+ - { $zoom: { min: 5 }, area: { min: 10000000000 } }
+ - { $zoom: { min: 6 }, area: { min: 5000000000 } }
+ - { $zoom: { min: 7 }, area: { min: 400000000 } }
+ - { $zoom: { min: 8 }, area: { min: 200000000 } }
+ - { $zoom: { min: 9 }, area: { min: 100000000 } }
+ - { $zoom: { min: 10 }, area: { min: 100000000 } }
+ - { $zoom: { min: 11 }, area: { min: 10000000 } }
+ - { $zoom: { min: 12 }, area: { min: 2000000 } }
+ - { $zoom: { min: 13 }, area: { min: 1000000 } }
+ - { $zoom: { min: 14 }, area: { min: 500000 } }
+ - { $zoom: { min: 15 }, area: { min: 100000 } }
+ - { $zoom: { min: 15 }, area: { min: 50000 } }
+ - { $zoom: { min: 16 }, area: { min: 20000 } }
+ - { $zoom: { min: 17 } }
+ default-label-text:
+ draw:
+ text-blend-order:
+ font:
+ fill: *text_fill_water
+ family: *text_font_family
+ style: italic
+ weight: 400
+ size: 12px
+ # stroke: { color: [0.878,0.929,0.980], width: 2 }
+ lakes-z5:
+ filter: { $zoom: [5] }
+ draw:
+ text-blend-order: { font: { size: 9px } }
+ lakes-z6:
+ filter: { $zoom: [6] }
+ draw:
+ text-blend-order: { font: { size: 11px } }
+ lakes-z8:
+ filter: { $zoom: [8] }
+ draw:
+ text-blend-order: { font: { size: 12px } }
+
+ ocean-sea-labels:
+ data: { source: mapzen, layer: water }
+ visible: *text_visible_water_labels
+ filter: { name: true, kind: [sea, ocean] }
+ draw:
+ text-blend-order:
+ font:
+ fill: *text_fill_water
+ family: *text_font_family
+ weight: 400
+ size: 12px
+ transform: uppercase
+ sea-early:
+ filter: { $zoom: [3], kind: sea }
+ draw: { text-blend-order: { visible: false } }
+ ocean-spacer:
+ filter: { kind: ocean }
+ ocean-spacer-z1-z4:
+ filter: { $zoom: { min: 1, max: 4 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+ ocean-spacer-z4-up:
+ filter: { $zoom: { min: 4 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+ ocean-labels-z1:
+ filter: { $zoom: [1] }
+ draw:
+ text-blend-order: { font: { size: 8px } }
+ ocean-labels-z2:
+ filter: { $zoom: [2] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
+ ocean-labels-z3:
+ filter: { $zoom: [3] }
+ draw:
+ text-blend-order: { font: { size: 13px } }
+ ocean-labels-z4-up:
+ filter: { $zoom: { min: 4} }
+ draw:
+ text-blend-order: { font: { size: 16px } }
+
+ sea-spacer:
+ filter: { not: { kind: [ocean] }, $zoom: { min: 4 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+
+ sea-labels:
+ filter: { not: { kind: [ocean] } }
+ sea-labels-z4:
+ filter: { $zoom: [4] }
+ draw:
+ text-blend-order: { font: { size: 8px, fill: [0.250,0.250,0.250] } }
+ sea-labels-z5:
+ filter: { $zoom: [5] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
+ sea-labels-z6:
+ filter: { $zoom: [6] }
+ draw:
+ text-blend-order: { font: { size: 11px } }
+ sea-labels-z7:
+ filter: { $zoom: [7] }
+ draw:
+ text-blend-order: { font: { size: 12px } }
+ sea-labels-z8:
+ filter: { $zoom: { min: 8} }
+ draw:
+ text-blend-order: { font: { size: 14px } }
+
+ earth-labels:
+ data: { source: mapzen, layer: earth }
+ filter: { name: true }
+ continent:
+ filter: { name: true, kind: [continent], $zoom: {max: 5} }
+ draw:
+ text-blend-order:
+ visible: *text_visible_continent
+ font:
+ size: 14px
+ style: italic
+ fill: *text_fill
+ weight: 600
+ # stroke: { color: *text_stroke, width: 4 }
+ transform: uppercase
+ continent-spacer:
+ filter: { kind: continent }
+ continent-spacer-z1-z5:
+ filter: { $zoom: { min: 1, max: 5 } }
+ draw:
+ text-blend-order:
+ text_source: function() { return feature.name.split('').join(' ') }
+ text_wrap: false
+ island:
+ filter: { kind: [archipelago, island, islet] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_island
+ text_wrap: 10
+ font:
+ size: 12px
+ style: italic
+ fill: *text_fill
+ weight: 400
+ stroke: { color: *text_stroke, width: 4 }
+ #transform: uppercase
+
+ landuse:
+ data: { source: mapzen }
+ draw:
+ terrain:
+ order: function() { return feature.sort_key; }
+ visible: false
+ tier1:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 3 }, area: { min: 300000000 } }
+ - { $zoom: { min: 4 }, area: { min: 300000000 } }
+ - { $zoom: { min: 5 }, area: { min: 150000000 } }
+ - { $zoom: { min: 6 }, area: { min: 150000000 } }
+ - { $zoom: { min: 7 }, area: { min: 100000000 } }
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ national_park:
+ filter: { kind: [national_park, "park or protected land", battlefield], not: { operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ] } }
+ draw:
+ terrain:
+ interactive: false
+ color: [0.890,1.00,1.00]
+ # todo: what is this?
+ order: 18
+ visible: true
+ us_national_park:
+ # yosemite national park, death valley national park, grand canyon national park
+ filter: { operator: [ "United States National Park Service", "US National Park Service" ] }
+ draw:
+ terrain:
+ visible: true
+
+ tier2:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 4 }, area: { min: 1000000000 } }
+ - { $zoom: { min: 5 }, area: { min: 1000000000 } }
+ - { $zoom: { min: 6 }, area: { min: 150000000 } }
+ - { $zoom: { min: 7 }, area: { min: 100000000 } }
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 250000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ conservation:
+ filter:
+ kind: [conservation, protected_area, nature_reserve]
+ $zoom: { min: 4 }
+ draw:
+ terrain:
+ # color: [1.00,0.974,0.950]
+ color: [0.945,0.995,0.945]
+ visible: true
+ wilderness-areas:
+ filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
+ draw:
+ terrain:
+ order: 25
+ visible: true
+
+ national_forest_level_6:
+ filter: { protect_class: ["6",6] }
+ draw:
+ terrain:
+ color: [0.945,0.995,0.945] #*green7
+ visible: true
+
+ # gotta be a protected area to draw green, not just a landcover type
+ farm:
+ filter:
+ kind: [farm, farmland]
+ $zoom: { min: 10}
+ draw:
+ polygons:
+ color: [1.00,1.00,1.00]
+ visible: *green4_v
+ forest:
+ filter: { kind: [forest,wood], $zoom: { min: 6 } }
+ national-forest:
+ filter:
+ operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ]
+ draw:
+ terrain:
+ color: [0.936,0.981,0.946]
+ visible: true
+
+ landuse-forest:
+ filter:
+ not: { operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ] }
+ $zoom: { min: 6 }
+ draw:
+ terrain:
+ color: [0.936,0.981,0.946]
+ visible: true
+
+ nature_reserve:
+ filter: { kind: nature_reserve, $zoom: { min: 7 } }
+ draw:
+ terrain-grid:
+ order: function() { return feature.sort_key; }
+ wilderness-areas:
+ filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
+ draw:
+ terrain:
+ color: [0.890,0.973,0.886]
+ # outline:
+ # style: lines
+ # color: red
+ # width: [[9,1px],[10,2px],[12,4px]]
+
+ parks-and-national-forests-not-national-park:
+ filter: { $zoom: { min: 4 }, kind: [park, national_park, "park or protected land", battlefield], not: { operator: [ "United States National Park Service", "US National Park Service" ] } }
+ # default for national forests and more?
+ draw:
+ terrain:
+ color: [0.880,1.000,0.950]
+ # color: [0.850,1.000,0.938]
+ # color: [0.860,0.993,1.000]
+ # color: [0.915,0.995,0.995]
+ visible: true
+ # urban:
+ # filter: { kind: [urban, rural, residential] }
+ # visible: *earth2_v
+ # draw:
+ # polygons:
+ # color: [1.00,1.00,1.00]
+ # visible: *earth2_v
+ tier3:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 8 }, area: { min: 10000000 } }
+ - { $zoom: { min: 9 }, area: { min: 5000000 } }
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ airport:
+ filter:
+ kind: aerodrome
+ draw:
+ terrain:
+ color: *gray-all
+ visible: *purple_v
+ military:
+ filter:
+ kind: military
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ university:
+ filter:
+ kind: [university, college]
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ tier4:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 500000 } }
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ cemetery:
+ filter:
+ kind: cemetery
+ draw:
+ terrain:
+ color: [0.982,1.000,0.960]
+ visible: true
+ golf_course:
+ filter:
+ kind: golf_course
+ draw:
+ terrain:
+ color: [0.890,1.000,0.892]
+ # color: [0.840,1.000,0.907]
+ visible: true
+ hospital:
+ filter:
+ kind: hospital
+ draw:
+ terrain:
+ color: [0.988,0.938,0.953]
+ visible: true
+ industrial:
+ filter:
+ kind: industrial
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ power:
+ filter: { kind: [plant, generator, substation] }
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ railway:
+ filter:
+ kind: railway
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ # IGNORE THIS FOR NOW
+ # sports_centre:
+ # filter:
+ # kind: sports_centre
+ # draw:
+ # polygons:
+ # color: [1.0,1.0,1.0]
+ recreation_ground:
+ filter:
+ kind: recreation_ground
+ draw:
+ terrain:
+ color: [0.945,0.995,0.945]
+ visible: true
+ stadium:
+ filter:
+ kind: stadium
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ zoo:
+ filter:
+ kind: [zoo, wildlife_park]
+ draw:
+ terrain:
+ color: [0.830,1.000,0.972]
+ visible: true
+ winter_sports:
+ filter:
+ kind: winter_sports
+ draw:
+ terrain:
+ color: [1.0,1.0,1.0]
+ visible: *grey8_v
+ man-made:
+ filter: { kind: [pier,wastewater_plant,works,bridge,tower,breakwater,water_works,groyne,dike,cutline] }
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ pier:
+ filter: { kind: [pier,bridge,breakwater,groyne,dike,cutline] }
+ draw:
+ terrain:
+ color: [1.000,0.973,0.930]
+ visible: true
+ camp_site:
+ filter: { kind: camp_site }
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+
+ tier5:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 10 }, area: { min: 1000000 } }
+ - { $zoom: { min: 11 }, area: { min: 400000 } }
+ - { $zoom: { min: 12 }, area: { min: 200000 } }
+ - { $zoom: { min: 13 }, area: { min: 50000 } }
+ - { $zoom: { min: 14 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 10000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ all:
+ - kind:
+ - theme_park
+ - resort
+ - aquarium
+ - winery
+ - maze
+ - beach
+ tourism-related:
+ filter:
+ kind:
+ - theme_park
+ - resort
+ - aquarium
+ - winery
+ - maze
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+ beach:
+ filter:
+ kind: beach
+ draw:
+ terrain:
+ color: [1.000,0.953,0.900]
+ # color: [0.975,0.975,0.828]
+ visible: true
+ tier6:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: { min: 12 }, area: { min: 500000 } }
+ - { $zoom: { min: 13 }, area: { min: 100000 } }
+ - { $zoom: { min: 14 }, area: { min: 50000 } }
+ - { $zoom: { min: 15 }, area: { min: 20000 } }
+ - { $zoom: { min: 15 }, area: { min: 2000 } }
+ - { $zoom: { min: 16 } }
+ garden:
+ filter:
+ kind: [garden, allotments]
+ draw:
+ terrain:
+ color: [0.790,0.973,0.896]
+ visible: true
+ parking:
+ filter:
+ all:
+ - kind: parking
+ - $zoom: { min: 14 }
+ any:
+ - { $zoom: { min: 14 }, area: { min: 10000 } }
+ - { $zoom: { min: 15 }, area: { min: 5000 } }
+ draw:
+ terrain:
+ color: *gray-all
+ visible: *grey1_v
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ terrain:
+ color: [0.950,0.950,0.950]
+ visible: true
+ pedestrian:
+ filter:
+ kind: [pedestrian,common]
+ draw:
+ terrain:
+ color: [0.945,0.995,0.945]
+ visible: *grey1_v
+ green-stuff:
+ filter:
+ surface: [grass]
+ draw:
+ terrain:
+ color: [0.791,0.953,0.883]
+
+ glacier:
+ filter:
+ kind: glacier
+ draw:
+ terrain:
+ color: [0.890,0.970,1.000]
+ # color: [0.975,0.975,0.828]
+ visible: true
+
+ minor_green_stuff:
+ filter:
+ kind: [pitch, meadow, village_green, grass, farmland, playground]
+ draw:
+ terrain:
+ color: [0.808,0.962,0.951]
+ # color: [0.702,0.949,0.932]
+ # color: [0.975,0.975,0.828]
+ visible: true
+ farmland_friends:
+ filter: { kind: [farmland] }
+ draw:
+ terrain:
+ color: [0.965,0.996,0.965]
+ #visible: false
+ meadow_friends:
+ filter: { kind: [meadow, grass] }
+ draw:
+ terrain:
+ color: [0.825,0.976,0.895]
+ pitch_later:
+ filter: { kind: pitch, $zoom: { min: 17 } }
+ draw:
+ lines:
+ color: [0.526,0.809,0.752]
+ order: 500
+ width: 0.5m
+
+ wetland:
+ filter:
+ kind: [wetland]
+ draw:
+ terrain:
+ color: [0.930,0.973,0.980]
+ # color: [0.975,0.975,0.828]
+ visible: true
+ scrub:
+ filter:
+ kind: [scrub]
+ draw:
+ terrain:
+ color: [1.000,0.973,0.930]
+ # color: [0.975,0.975,0.828]
+ visible: true
+ later:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ lines:
+ color: blue
+ width: 0.5px
+
+ minor_other_stuff:
+ filter:
+ kind: [scree, farmyard]
+ draw:
+ terrain:
+ color: [1.000,0.953,0.900]
+ # color: [0.975,0.975,0.828]
+ visible: true
+ later:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ lines:
+ color: red
+ width: 0.5px
+
+ place_of_worship:
+ filter:
+ kind: place_of_worship
+ draw:
+ terrain:
+ color: *gray-all
+ visible: *grey1_v
+ playground:
+ filter:
+ kind: playground
+ draw:
+ terrain:
+ color: [0.795,1.000,0.955]
+ visible: true
+ school:
+ filter:
+ kind: school
+ draw:
+ terrain:
+ color: *gray-all
+ visible: true
+
+ minor-landuse:
+ filter:
+ kind:
+ - attraction
+ - artwork
+ - wilderness_hut
+ - hanami
+ draw:
+ terrain:
+ color: [0.795,1.000,0.955]
+ visible: true
+
+ # GO MELLOW
+ # 18/41.19776/-8.68722
+ tree_row:
+ filter:
+ kind: tree_row
+ draw:
+ lines:
+ order: 501 # function() { return feature.sort_key; }
+ color: [0.602,0.860,0.722]
+ width: [[16,1px],[17,2px],[19,1.5m]]
+ visible: true
+ # GO MELLOW
+ # 20/37.76779/-122.40096
+ hedge:
+ filter:
+ kind: hedge
+ draw:
+ lines:
+ order: 500 # function() { return feature.sort_key; }
+ color: [0.602,0.860,0.722]
+ width: [[16,0.5px],[17,1px],[19,1m]]
+ visible: true
+
+ natural-overlay:
+ data: { source: mapzen, layer: earth }
+ filter: { kind: [cliff, arete, ridge, valley] }
+ draw:
+ lines:
+ order: 999
+ interactive: true
+ #cliff:
+# filter: { kind: cliff }
+# draw:
+# lines:
+# color: blue
+# width: 0.2px
+# order: 1001
+ #arete:
+# filter: { kind: arete }
+# draw:
+# lines:
+# color: red
+# width: 0.2px
+# order: 1000
+ ridge_valley:
+ filter: { kind: [ridge, valley] }
+ draw:
+ lines:
+ visible: false
+ text-blend-order:
+ priority: 50
+ font:
+ fill: black
+ weight: 200
+ size: 10px
+ style: italic
+ stroke: { color: [0.894,0.906,0.914], width: 3 }
+ ridge:
+ filter: { kind: ridge }
+ draw:
+ lines:
+ visible: false
+ text-blend-order:
+ font:
+ fill: black
+ weight: 200
+ size: 10px
+ style: italic
+ stroke: { color: [0.894,0.906,0.914], width: 3 }
+
+ path-overlay:
+ data: { source: mapzen, layer: roads }
+ filter:
+ all:
+ - kind: path
+ not:
+ - man_made: [pier]
+ draw:
+ lines:
+ color: [[11,[0.408,0.741,0.690]],[15,[0.131,0.667,0.575]]] #[11,[0.252,0.509,0.60]],[12,[0.120,0.600,0.520]]
+ dashedline:
+ color: [0.120,0.600,0.520]
+ dots-lines:
+ color: [0.120,0.600,0.520]
+ # color: [0.257,0.520,0.802] ## added red
+ # color: [0.302,0.649,0.740] ## more blue
+ # color: [0.292,0.650,0.644] ## more green
+ # color: [0.416,0.750,0.746]
+ # bigger path, sometimes paved (walk with friends side-by-side), also tracks that are no vehicles
+ paths:
+ filter:
+ any:
+ - highway: path
+ - all:
+ - highway: track
+ - motor_vehicle: no
+ draw:
+ lines:
+ join: round
+ cap: round
+ color: [[13, [0.510,0.752,0.695]], [14,[0.412,0.710,0.665]], [15, [0.298,0.686,0.627]], [16, [0.860,1.000,0.977]], [17, [0.860,1.000,0.977]]]
+ width: [[13, 1px], [14, 1.1px], [15, 1.4px], [16, 0px], [17, 1px], [18, 1.75px], [19, 2.25px]]
+ order: 1003
+ outline:
+ color: [0.120,0.600,0.520]
+ width: [[15, 0px], [16, 0.8px], [17, 1.25px], [18, 2.5px]]
+ networked:
+ filter: { walking_network: true }
+ draw:
+ lines:
+ width: [[12, 1px], [13, 1px], [14, 1.1px], [15, 1.5px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
+ highlight:
+ order: 980
+ color: [[12,[1.000,1.000,0.870]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 7px], [17, 10px], [18, 14px], [19, 16px]]
+ join: round
+ no_name_early_not_designated:
+ filter: { name: false, $zoom: { max: 14 } }
+ draw:
+ lines:
+ width: [[0,1px]]
+ in_zoo_golf_course:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
+ draw:
+ lines:
+ width: [[13, 0.5px], [15, 0.65px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ visible: false
+ labels-path:
+ #filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ font:
+ fill: [0.143,0.544,0.481]
+ # fill: [0.256,0.570,0.565]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ in_zoo_golf_course:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+
+ # single hiking path
+ footway:
+ filter: { highway: [footway] }
+ draw:
+ dots-lines:
+ order: 1002
+ interactive: true
+ color: [0.120,0.600,0.520]
+ #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 3px], [17, 6px], [18, 7px], [19, 10px]]
+ width: [[13, 0.75px], [14, 1px], [15, 3.5px], [16, 3px], [17, 4px], [18, 5px], [19, 8px]]
+ visible: true
+ #color: purple
+ lines:
+ order: 1000
+ interactive: true
+ #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
+ #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
+ color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
+ width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
+ visible: true
+ #color: purple
+ dashedline:
+ order: 1005
+ early-show-as-lines-z14:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ dots-lines:
+ visible: false
+ lines:
+ visible: true
+ early-show-as-lines-z15:
+ filter: { $zoom: [15] }
+ draw:
+ dots-lines:
+ visible: true
+ lines:
+ visible: true
+ networked:
+ filter: { walking_network: true }
+ draw:
+ lines:
+ #width: [[12, 0.75px], [13, 1px], [14, 1px], [15, 1.25px], [16, 0px], [17, 1.5px], [18, 1.75px], [19, 2.25px]]
+ width: [[13, 1.25px],[14, 1.4px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
+ #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
+ highlight:
+ order: 980
+ color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
+ join: round
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ color: [0.120,0.600,0.520]
+ # de-emphasize less important trails at early zooms
+ # where less important are trails without names, trails in less interesting landuse, or just early
+ in_zoo_golf_course:
+ filter:
+ all:
+ - landuse_kind: [zoo, enclosure, petting_zoo, golf_course, garden, university, parking, pedestrian, attraction, residential, stadium, playground, allotments]
+ - $zoom: { max: 17 }
+ draw:
+ lines:
+ visible: true
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ dots-lines:
+ visible: false
+ early-z15:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ color: [0.120,0.600,0.520]
+ width: [[14,0.4px],[15,0.5px]]
+ garden-early:
+ filter: { kind: [garden] }
+ draw:
+ lines:
+ width: [[14,0.1px],[15,0.3px]]
+ in_cemetery:
+ filter:
+ all:
+ - landuse_kind: [cemetery]
+ draw:
+ lines:
+ visible: true
+ color: [0.863,0.941,0.867]
+ dots-lines:
+ color: [0.510,0.752,0.695]
+ early:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ dots-lines:
+ visible: false
+ early-z15:
+ filter: { $zoom: { max: 16 } }
+ draw:
+ lines:
+ color: [0.510,0.752,0.695]
+ width: [[14,0.25px],[15,0.5px]]
+ sidewalk-crossing:
+ filter: { footway: [sidewalk, crossing], not: { walking_network: true } }
+ draw:
+ lines:
+ order: 350 # function() { return feature.sort_key; }
+ dots-lines:
+ order: 351 # function() { return (feature.sort_key + 1); }
+ dashedline:
+ visible: false
+ early-z17:
+ filter: { $zoom: { max: 18 } }
+ draw:
+ lines:
+ visible: false
+ dots-lines:
+ visible: false
+ early-z17-lines:
+ filter: { $zoom: [17] }
+ draw:
+ lines:
+ visible: true
+ width: 1.5px
+ labels-footpaths:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ font:
+ fill: [0.143,0.544,0.481]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ in_zoo_golf_course:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
+ draw:
+ text-blend-order:
+ visible: false
+
+ cycleway_pedestrian:
+ filter:
+ all:
+ - highway: [cycleway, pedestrian]
+ - not: { highway: [pedestrian], walking_network: true }
+ draw:
+ lines:
+# color: blue #[0.120,0.600,0.520]
+# width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
+# order: 1004
+ interactive: true
+ color: [[11,[0.120,0.600,0.520]],[14,[0.120,0.600,0.520]],[15,[1.00,1.00,1.00]]]
+ #width: [[11, 0.25px], [12, 0.35px], [13, 0.55px],[14,1px],[15,0px]]
+ width: [[13, 0.75px], [14, 1.1px], [15, 1.1px], [16, 1.5px], [17, 2.2px], [18, 5px], [19, 6px]]
+ # let roads sort themselves past zoom 14
+ order: 1004
+ outline:
+ color: [0.120,0.600,0.520]
+ width: [[11, 0px],[14, 0px],[15, 0.5px],[16, 1px]]
+ networked:
+ filter: { walking_network: true }
+ draw:
+ lines:
+ color: [[11,[0.120,0.600,0.520]],[14,[0.120,0.600,0.520]],[15,[1.00,1.00,1.00]]]
+ width: [[13, 0.75px], [14, 1.1px], [15, 1.1px], [16, 1.5px], [17, 2.2px], [18, 5px], [19, 6px]]
+ highlight:
+ order: 980
+ color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.880]]]
+ width: [[12, 0px], [13, 4px], [14, 5px], [15, 7px], [16, 10px], [17, 12px], [18, 14px], [19, 16px]]
+ join: round
+ late:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ lines:
+ color: [1.00,1.00,1.00]#[0.145,0.745,0.643] #[[17,'#c8ecf7'],[18,'#a9d9e8']] #white
+ join: round
+ cap: round
+ outline:
+ #color: [0.120,0.600,0.520]
+ join: round
+ cap: round
+ width: [[15, 1px], [16, 1.5px], [17, 1.6px], [18, 2px], [19, 2px]]
+ order: 999
+ labels-cycleway:
+ filter: { $zoom: { min: 14 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ font:
+ fill: [0.120,0.600,0.520]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+
+ track-overlay:
+ data: { source: mapzen, layer: roads }
+ filter:
+ all:
+ - kind: path
+ - highway: [track]
+ - motor_vehicle: false
+ draw:
+ lines:
+ color: [[13,[0.773,0.705,0.605]],[14,[0.630,0.519,0.418]]]
+ # color: [0.756,0.563,0.499]
+ width: [[13, 0.6px], [14, 1px], [15, 1.1px], [16, 1.25px], [17, 1.5px], [18, 5px], [19, 6px]]
+ order: 990
+ interactive: true
+ late:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ lines:
+ color: white
+ join: round
+ cap: round
+ outline:
+ color: [0.630,0.519,0.418]
+ # color: [0.756,0.563,0.499]
+ join: round
+ cap: round
+ width: [[16, 1px], [17, 1.5px], [18, 2px], [19, 2px]]
+ order: 999
+ in_zoo_golf_course:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments] }
+ draw:
+ lines:
+ width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ visible: false
+ networked:
+ filter: { walking_network: true }
+ draw:
+ lines:
+ width: [[13, 1px], [14, 1.2px], [15, 1.5px], [16, 1.25px], [17, 1.5px], [18, 3px], [19, 4px]]
+ highlight:
+ order: 980
+ color: [[12,[1.000,1.000,0.870]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 2.5px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
+ join: round
+ early:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
+ draw:
+ lines:
+ visible: true
+ labels-track:
+ #filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ font:
+ fill: [0.536,0.451,0.378]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ in_zoo_golf_course-early:
+ filter: { landuse_kind: [zoo, golf_course, garden, university, cemetery, allotments], $zoom: { max: 15 } }
+ draw:
+ text-blend-order:
+ visible: false
+ other-roads-no-motorvehicle-overlay:
+ data: { source: mapzen, layer: roads }
+ filter:
+ all:
+ - not: { kind: [path,ferry] }
+ - motor_vehicle: no
+ draw:
+ lines:
+ color: [0.710,0.553,0.522]
+ width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1.5px], [17, 3px], [18, 3m]]
+ order: 990
+ interactive: true
+ late:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ lines:
+ color: [0.940,0.940,0.940]
+ join: round
+ cap: round
+ outline:
+ color: [0.710,0.553,0.522]
+ join: round
+ cap: round
+ width: [[15, 0.5px], [16, 1.25px], [17, 1.5px], [18, 1.5px], [19, 3px]]
+ order: 999
+ labels-track:
+ #filter: { $zoom: { min: 17 } }
+ draw:
+ text-blend-order:
+ priority: 58
+ visible: *text_visible_path
+ font:
+ fill: [0.536,0.451,0.378]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+
+
+ other-roads-walking-network-only:
+ data: { source: mapzen, layer: roads }
+ filter:
+ all:
+ - walking_network: true
+ - not:
+ any:
+ - { kind: [path,ferry], not: { highway: pedestrian } }
+ #- motor_vehicle: [no,false]
+ - highway: [track]
+ draw:
+ lines:
+ color: [0.120,0.600,0.520]
+ width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ order: 990
+ interactive: true
+ double-lines:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ lines:
+ color: [1.000,1.000,0.870]
+ width: [[15,0px],[16,1px],[17,4px],[18,6m]]
+ outline:
+ color: [0.120,0.600,0.520]
+ width: [[15, 0.5px],[16, 1.5px],[17, 1.5px],[18, 2.5px],[19, 1m]]
+ casing_left:
+ visible: false
+ interactive: true
+ order: 486
+ color: [0.120,0.600,0.520]
+ width: [[15, 0.5px],[16, 5.5px],[17, 10px],[18, 9m],[19, 8m]]
+ casing_right:
+ visible: false
+ interactive: true
+ order: 486
+ color: white
+ width: [[15, 0.5px],[16, 6px],[17, 10px],[18, 9m],[19, 8m]]
+ the_network:
+ draw:
+ lines:
+ width: [[13, 0.9px], [14, 1.2px], [15, 2.0px], [16, 1px], [17, 2px], [18, 6m]]
+ highlight:
+ order: 980
+ color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 10px], [17, 12px], [18, 14px], [19, 16px]]
+ join: round
+ hide-most-till-mid-zooms:
+ filter:
+ all:
+ - $zoom: { max: 12 }
+ - walking_network: [lwn,rwn]
+ draw:
+ lines:
+ visible: false
+ highlight:
+ visible: false