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)
-
+global:
+ #ux/ui
+ ux_language: false # l10n language code, trusting OSM in v0.10 tiles, fixed in v1.0 tiles
+ ux_language_fallback: false # l10n language code, trusting OSM in v0.10 tiles, fixed in v1.0 tiles
+ ux_language_text_source: |
+ function() {
+ // if a ux_langauge has been defined use that, else if there is feature name in the fallback_ux_language then use that, else use the feature's default name in the local language
+ return (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature.name;
+ }
+ ux_language_text_source_short: |
+ function() {
+ return (global.ux_language && feature['name:short:'+global.ux_language]) || (global.ux_language_fallback && feature['name:short:'+global.ux_language_fallback]) || feature['name:short'];
+ }
+ ux_language_text_source_short_proxy_name: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
+ var short = (global.ux_language && feature['name:short:'+global.ux_language]) || (global.ux_language_fallback && feature['name:short:'+global.ux_language_fallback]) || feature['name:short'];
+ return short ? name : '';
+ }
+ ux_language_text_source_abbreviation: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
+ var abbrev = (global.ux_language && feature['name:abbreviation:'+global.ux_language]) || (global.ux_language_fallback && feature['name:abbreviation:'+global.ux_language_fallback]) || feature['name:abbreviation'];
+ return abbrev || name;
+ }
+ ux_language_text_source_iata: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ if(feature.iata) {
+ if (name) {
+ return name + ' (' + feature.iata + ')';
+ }
+ else {
+ return feature.iata;
+ }
+ } else {
+ return name;
+ }
+ }
+ ux_language_text_source_ocean: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
+ return name.split('').join(' ');
+ }
+ ux_language_text_source_sea: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
+ return name.split('').join(' ');
+ }
+ ux_language_text_source_continent: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
+ return name.split('').join(' ');
+ }
+ ux_language_text_source_road_ref_and_name: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ if(feature.ref && name) {
+ return (feature.ref + ' ' + name);
+ } else {
+ return name;
+ }
+ }
+ ux_language_text_source_road_ref_and_name_short: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ if (feature.ref && (feature.ref.length < 6) && name) {
+ return feature.ref + ' ' + name;
+ } else {
+ return name;
+ }
+ }
+ ux_language_text_source_piste_advanced: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ return name ? ('◆ ' + name) : '◆';
+ }
+ ux_language_text_source_piste_expert: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ return name ? ('◆◆ ' + name) : '◆◆';
+ }
+ ux_language_text_source_building_and_address: |
+ function() {
+ var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
+ if (name && feature.addr_housenumber) {
+ return name + '\n' + feature.addr_housenumber;
+ } else {
+ return name;
+ }
+ }
+
+ # To facilitate data visualizations several recommended sort orders are provided
+ #
+ # Your classic raster map overlay.
+ # Over all line and polygon features.
+ # Under map labels (icons and text), under UI elements
+ # (like routeline and search result pins).
+ sdk_order_over_everything_but_text_0: 490
+ sdk_order_over_everything_but_text_1: 491
+ sdk_order_over_everything_but_text_2: 492
+ sdk_order_over_everything_but_text_3: 493
+ sdk_order_over_everything_but_text_4: 494
+ sdk_order_over_everything_but_text_5: 495
+ sdk_order_over_everything_but_text_6: 496
+ sdk_order_over_everything_but_text_7: 497
+ sdk_order_over_everything_but_text_8: 498
+ sdk_order_over_everything_but_text_9: 499
+ #
+ # Your classic "underlay"
+ # Under roads. Above borders, water, landuse, and earth.
+ sdk_order_under_roads_0: 290
+ sdk_order_under_roads_1: 291
+ sdk_order_under_roads_2: 292
+ sdk_order_under_roads_3: 293
+ sdk_order_under_roads_4: 294
+ sdk_order_under_roads_5: 295
+ sdk_order_under_roads_6: 296
+ sdk_order_under_roads_7: 297
+ sdk_order_under_roads_8: 298
+ sdk_order_under_roads_9: 299
+ #
+ # Under water.
+ # Above earth and most landuse.
+ sdk_order_under_water_0: 190
+ sdk_order_under_water_1: 191
+ sdk_order_under_water_2: 192
+ sdk_order_under_water_3: 193
+ sdk_order_under_water_4: 194
+ sdk_order_under_water_5: 195
+ sdk_order_under_water_6: 196
+ sdk_order_under_water_7: 197
+ sdk_order_under_water_8: 198
+ sdk_order_under_water_9: 199
+ #
+ # Under everything.
+ # Tip: disable earth layer.
+ sdk_order_under_everything_0: 0
+ sdk_order_under_everything_1: 1
+ sdk_order_under_everything_2: 2
+ sdk_order_under_everything_3: 3
+ sdk_order_under_everything_4: 4
+ sdk_order_under_everything_5: 5
+ sdk_order_under_everything_6: 6
+ sdk_order_under_everything_7: 7
+ sdk_order_under_everything_8: 8
+ sdk_order_under_everything_9: 9
+ #
+ # TRANSIT OVERLAY
+ # should default to "auto", with SDK overriding it to true or false,
+ # or app logic sets other booleans that triggers auto behavior later
+ sdk_transit_overlay: false
+ #
+ # default order for basemap features
+ feature_order: function() { return feature.sort_key; }
+ #
+ #label visibility
+ 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
+ text_visible_island: 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_airport_gate: true
+ text_visible_shields: true
+ text_visible_exits: true
+ #
+ #label styling
+ text_fill: black # 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)
+ #
+ #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]
+ region_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]
+ #
+ #landuse
+ 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 early
+ building_extrude: true # building extrusion toggle
+ building_extrude_height: | # building extrude height logic
+ function() { return feature.height || 20; }
textures:
filtering: mipmap
sources:
- osm:
+ mapzen:
# EraserMaps the app only supports MVT format tiles
- type: GeoJSON #TopoJSONTiles topojson
+ 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}.json?api_key=vector-tiles-HqUVidw
+ url: https://vector.mapzen.com/osm/all/{z}/{x}/{y}.mvt?api_key=vector-tiles-P6dkVl4
# road labels in Tangram JS are broken when overzooming, set max_zoom: 18 to preview fix
max_zoom: 16
# 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
+# # Dashed route line
+# mz_dash_line:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/anonymous/d73b851c64c3e5fbfc2754aa32f44c10/raw/938ae435776e176919c4797bed1465a92e403ef3/map.geojson
# # Transit route line
# mz_route_line_transit:
# type: GeoJSON
WALL_TINT: vec3(1., 3., .800)
blocks:
color: |
- if (dot(vec3(0., 0., 1.), worldNormal()) < 1.0 - TANGRAM_EPSILON) {
+ if (dot(vec3(0., 0., 1.), worldNormal()) < .5) {
// If it's a wall
color.rgb = hsv2rgb(rgb2hsv(color.rgb) * WALL_TINT);
color.rgb = mix(color.rgb, vec3(0.),
base: lines
blend: overlay
blend_order: 0
+ ux-route-line-dash-overlay:
+ base: lines
+ blend: overlay
+ blend_order: 0
+ dash: [2, 1]
ux-transit-line-overlay:
base: lines
blend: overlay
scene:
background:
- color: *scene1
+ color: global.scene1
layers:
# Map overlays for styling the server response (using special source layer names) for route line, current location, and search result pins
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_dash:
+ data: { source: mz_dash_line }
+ draw:
+ ux-route-line-dash-overlay:
+ color: '#06a6d4'
+ order: 500
+ width: [[2,2px],[5,2.5px],[11,3px],[16,7px],[17,9px]]
mz_route_line_transit:
data: { source: mz_route_line_transit }
draw:
# Basemap styling
earth:
- data: { source: osm, layer: earth }
+ data: { source: mapzen, layer: earth }
draw:
polygons:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
color: [0.870,0.870,0.870]
water:
- data: { source: osm, layer: water }
+ data: { source: mapzen, layer: water }
draw:
grid:
- order: function() { return feature.sort_key; }
- #color: *water1
+ order: global.feature_order
+ #color: global.water1
ocean:
filter:
kind: ocean
draw:
grid:
- color: *water1
+ color: global.water1
inland-water:
filter:
all:
- { $zoom: { min: 15 } }
draw:
grid:
- color: *water1
+ color: global.water1
other-water-areas:
filter: { not: { kind: [ocean, lake, water, reservoir, playa, swimming_pool] }, $zoom: { min: 11 }, area: { min: 100 } }
draw:
grid:
- color: *water1
+ color: global.water1
playas:
filter: { kind: playa, $zoom: {min: 6} }
draw:
polygons:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
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; }
+ order: global.feature_order
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:
filter: { boundary: yes, not: { kind: ocean }, $zoom: { min: 8 } }
draw:
lines:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
# 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]]
filter: { kind: [river,canal,stream,dam,ditch,drain], $zoom: { min: 11 }, not: { is_tunnel: true } }
draw:
lines:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
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
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]]
+ water-line-labels:
+ data: { source: mapzen, layer: [water] }
+ filter:
+ all:
+ - name: true
+ - $geometry: line
+ - kind: [river,canal,stream,dam,ditch,drain]
+ - $zoom: { min: 14 }
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source
+ font:
+ fill: [0.314,0.591,0.640]
+ family: global.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
+
subway-light-rail:
- data: { source: osm, layer: transit }
+ data: { source: mapzen, layer: transit }
filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
draw:
lines:
width: [[14,0px],[15,0.6px],[16,0.75px],[17,1.5px],[19,1m]]
railway-late:
- data: { source: osm, layer: roads }
+ data: { source: mapzen, layer: roads }
filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
draw:
lines:
interactive: true
- order: function() { return feature.sort_key; }
+ order: global.feature_order
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:
draw:
lines:
# let roads sort themselves past zoom 14
- order: function() { return feature.sort_key; }
+ order: global.feature_order
# but give them all the same outline
outline:
order: 354
order: function() { return feature.sort_key || 305; }
platforms:
- data: { source: osm, layer: transit }
+ data: { source: mapzen, layer: transit }
filter: { kind: platform }
draw:
lines_transparent:
color: [0.569,0.690,0.722,0.5]
width: 5m
- visible: *grey9_v
+ visible: global.grey9_v
polygon_geom:
filter: { $geometry: polygon }
draw:
polygons_transparent:
color: [0.592,0.671,0.694,0.5]
- visible: *grey9_v
+ visible: global.grey9_v
lines_transparent:
visible: false
outline_transparent:
- color: *grey9_o
+ color: global.grey9_o
width: [[16,0px],[17,0.5px],[19,2px]]
z-order:
draw:
order: function() { if($zoom<17) { return feature.sort_key; } else { return 436; } }
roads:
- data: { source: osm, layer: roads }
+ data: { source: mapzen, 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; }
+ order: global.feature_order
# but give them all the same outline
outline:
order: 352
text-blend-order:
+ text_source: global.ux_language_text_source
visible: false # labels are enabled by each layer below
font:
- family: *text_font_family
+ family: global.text_font_family
weight: 400
- fill: *text_fill
+ fill: global.text_fill
natural_earth_highways:
filter: { source: 'naturalearthdata.com' }
# Perf impact (too many vertices)
#cap: round
#join: round
- color: *highway1
+ color: global.highway1
width: [[5, 1px], [7, 1.4px], [9, 1.5px], [14, 3px], [16, 4px], [17, 10m]]
major_road:
filter: { type: ['Secondary Highway','Road'] }
filter: { type: 'Unknown' }
draw:
lines:
- color: [[12, *minor_road1], [17, *minor_road2]]
+ color: [[12, global.minor_road1], [17, global.minor_road2]]
width: [[12, 1.0px], [14, 1.5px], [15, 3px], [16, 5m]]
ferry:
filter: { kind: Ferry }
filter: { kind: highway }
draw:
lines:
- color: [[8, *highway1], [14, *highway1], [15, [1.0,1.0,1.0]], [17, [1.0,1.0,1.0]]]
+ color: [[8, global.highway1], [14, global.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]]]
+ color: [[11, global.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 } }
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]]]
+ color: [[9, global.highway_link1], [14, global.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]]]
+ color: [[10, global.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 } }
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
lines:
- color: *highway_tunnel1
+ color: global.highway_tunnel1
outline:
- color: *highway_tunnel_casing1
+ color: global.highway_tunnel_casing1
tunnel:
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
cap: round
outline:
cap: butt
+ labels-highway-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name
labels-highway-early:
filter: { $zoom: [7,8,9] }
draw:
text-blend-order:
priority: 50
- visible: *text_visible_shields
+ visible: global.text_visible_shields
text_source: ref
font:
fill: [1.0,1.0,1.0]
$zoom: 10
draw:
text-blend-order:
- visible: *text_visible_shields
+ visible: global.text_visible_shields
text_source: ref
font:
fill: [1.0,1.0,1.0]
$zoom: 11
draw:
text-blend-order:
- visible: *text_visible_shields
+ visible: global.text_visible_shields
text_source: ref
font:
fill: [1.0,1.0,1.0]
$zoom: 12
draw:
text-blend-order:
- visible: *text_visible_shields
+ visible: global.text_visible_shields
text_source: ref
font:
fill: [1.0,1.0,1.0]
draw:
text-blend-order:
priority: 50
- visible: *text_visible_highway
+ visible: global.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
draw:
text-blend-order:
priority: 50
- visible: *text_visible_highway
+ visible: global.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
+ size: 12px
# stroke: { color: [0.976,0.541,0.490], width: 4 }
labels-highway-z15:
filter:
$zoom: 15
draw:
text-blend-order:
- visible: *text_visible_highway
+ visible: global.text_visible_highway
font:
fill: [0.0,0.0,0.0]
weight: 600
- size: 15px
+ size: 14px
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
+ visible: global.text_visible_highway
font:
fill: [0.0,0.0,0.0]
- size: 16px
+ 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
+ visible: global.text_visible_highway
font:
fill: [0.0,0.0,0.0]
size: 17px
# default style
draw:
lines:
- color: [[8, *major_road4], [13, *major_road2], [17, *major_road1]]
+ color: [[8, global.major_road4], [13, global.major_road2], [17, global.major_road1]]
width: [[13, 0px], [14, 2px], [16, 2.5px], [19, 8m]]
trunk_primary:
filter: { highway: [trunk, primary] }
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]]]
+ color: [[9, global.major_route1], [14, global.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]]
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
lines:
- color: *major_tunnel1
+ color: global.major_tunnel1
outline:
- color: *major_tunnel_casing1
+ color: global.major_tunnel_casing1
width: [[13, 0.5px], [15, 2px], [16, 2px], [17, 3px]]
+ labels-trunk_primary-route-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name
+ labels-trunk_primary-route-z13:
+ filter: { $zoom: { max: 14 } }
+ draw:
+ text-blend-order:
+ text_source: ref
+ font:
+ fill: [1.0,1.0,1.0]
+ weight: 600
+ size: 11px
+ stroke: { color: [0.976,0.541,0.490], width: 2 }
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; } }
+ visible: global.text_visible_trunk_primary_e2
+ #text_source: ref
font:
fill: [0.0,0.0,0.0]
- size: 13px
+ #size: 12px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name
font:
fill: [0.0,0.0,0.0]
weight: 600
- size: 15px
+ size: 14px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name
font:
fill: [0.0,0.0,0.0]
weight: 600
- size: 16px
+ size: 15px
stroke: { color: [1.000,1.000,1.000], width: 4px }
+ labels-trunk_primary-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name_short
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; } }
+ visible: global.text_visible_trunk_primary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.4,0.4,0.4]
size: 10px
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; } }
+ visible: global.text_visible_trunk_primary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.4,0.4,0.4]
size: 11px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.25,0.25,0.25]
size: 12px
- stroke: { color: *text_stroke, width: 2 }
+ stroke: { color: global.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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.10,0.10,0.10]
size: 13px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.0,0.0,0.0]
size: 14px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name
font:
fill: [0.0,0.0,0.0]
size: 15px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name
font:
fill: [0.0,0.0,0.0]
size: 16px
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; } }
+ visible: global.text_visible_trunk_primary
+ #text_source: global.ux_language_text_source_road_ref_and_name
font:
fill: [0.0,0.0,0.0]
size: 17px
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
lines:
- color: *major_tunnel1
+ color: global.major_tunnel1
outline:
- color: *major_tunnel_casing1
+ color: global.major_tunnel_casing1
secondary:
filter: { highway: secondary }
draw:
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
lines:
- color: *major_tunnel1
+ color: global.major_tunnel1
outline:
- color: *major_tunnel_casing1
+ color: global.major_tunnel_casing1
+ labels-secondary-routes-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name_short
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; } }
+ visible: global.text_visible_secondary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
# need fill here?
size: 12px
- stroke: { color: *text_stroke, width: 4 }
+ stroke: { color: global.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; } }
+ visible: global.text_visible_secondary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
# need fill here?
weight: 600
size: 14px
- stroke: { color: *text_stroke, width: 4 }
+ stroke: { color: global.text_stroke, width: 4 }
in_park:
filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
draw:
lines:
outline:
color: pink
+ labels-secondary-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name_short
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; } }
+ visible: global.text_visible_secondary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.5,0.5,0.5]
size: 11px
- stroke: { color: *text_stroke, width: 2 }
+ stroke: { color: global.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; } }
+ visible: global.text_visible_secondary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.30,0.30,0.30]
size: 12px
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; } }
+ visible: global.text_visible_secondary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.10,0.10,0.10]
size: 13px
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; } }
+ visible: global.text_visible_secondary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.0,0.0,0.0]
size: 14.5px
draw:
text-blend-order:
priority: 54
- visible: *text_visible_secondary
+ visible: global.text_visible_secondary
#text_source: ref
- text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
+ text_source: global.ux_language_text_source_road_ref_and_name
font:
# need a fill color here?
fill: [0.15,0.15,0.15]
filter: {is_tunnel: yes, $zoom: {min: 13} }
draw:
lines:
- color: *major_tunnel1
+ color: global.major_tunnel1
outline:
- color: *major_tunnel_casing1
+ color: global.major_tunnel_casing1
link:
filter: { is_link: yes } # on- and off-ramps, etc
draw:
lines:
- color: *major_road1
+ color: global.major_road1
width: [[10, 0.5px], [14, 2px], [16, 4m], [17, 5m], [18, 6m]]
outline:
- color: [[12,*major_casing2]]
+ color: [[12, global.major_casing2]]
width: [[12, 0], [14, 1px], [16, 1.5px], [17, 2px]]
in_park:
filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
lines:
outline:
color: pink
+ labels-tertiary-default:
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_road_ref_and_name_short
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; } }
+ visible: global.text_visible_tertiary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.5,0.5,0.5]
size: 10px
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; } }
+ visible: global.text_visible_tertiary_e
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.5,0.5,0.5]
size: 12px
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; } }
+ visible: global.text_visible_tertiary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.3,0.3,0.3]
size: 12px
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; } }
+ visible: global.text_visible_tertiary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.3,0.3,0.3]
size: 14px
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; } }
+ visible: global.text_visible_tertiary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.15,0.15,0.15]
size: 15px
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; } }
+ visible: global.text_visible_tertiary
+ #text_source: global.ux_language_text_source_road_ref_and_name_short
font:
fill: [0.15,0.15,0.15]
size: 15px
draw:
text-blend-order:
priority: 56
- visible: *text_visible_minor_road_e
- text_source: name
+ visible: global.text_visible_minor_road_e
+ text_source: global.ux_language_text_source
font:
fill: [0.30,0.30,0.30]
size: 12px
draw:
text-blend-order:
priority: 56
- visible: *text_visible_minor_road_e
- text_source: name
+ visible: global.text_visible_minor_road_e
+ text_source: global.ux_language_text_source
font:
fill: [0.35,0.35,0.35]
size: 14px
draw:
text-blend-order:
priority: 56
- visible: *text_visible_minor_road_e
- text_source: name
+ visible: global.text_visible_minor_road_e
+ text_source: global.ux_language_text_source
font:
fill: [0.25,0.25,0.25]
size: 14px
draw:
text-blend-order:
priority: 56
- visible: *text_visible_minor_road
- text_source: name
+ visible: global.text_visible_minor_road
+ text_source: global.ux_language_text_source
font:
# needs a fill color?
fill: [0.15,0.15,0.15]
draw:
text-blend-order:
priority: 57
- visible: *text_visible_service_road
- text_source: name
+ visible: global.text_visible_service_road
+ text_source: global.ux_language_text_source
font:
# need fill color?
fill: [0.25,0.25,0.25]
draw:
text-blend-order:
priority: 57
- visible: *text_visible_service_road
- text_source: name
+ visible: global.text_visible_service_road
+ text_source: global.ux_language_text_source
font:
# need fill color?
fill: [0.15,0.15,0.15]
path:
filter:
all:
- - kind: [path,portage_way]
+ - kind: [path, portage_way]
not:
- highway: [steps, track]
- man_made: [pier]
width: [[15, 1.5px], [16, 4m], [17, 2m], [18, 2m]]
cap: round
outline:
- color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
+ color: [[15, global.path_bridge_casing2],[16, global.path_bridge_casing1]]
width: [[15, 0px], [16, 1.0px], [18, 3px]]
cap: butt
in_park:
draw:
text-blend-order:
priority: 58
- visible: *text_visible_path
- text_source: name
+ visible: global.text_visible_path
+ text_source: global.ux_language_text_source
font:
# need a fill color?
fill: [0.25,0.25,0.25]
filter: { kind: path, highway: track }
draw:
lines:
- color: [[13, *minor_road4], [15, *minor_road3]]
+ color: [[13, global.minor_road4], [15, global.minor_road3]]
width: [[13, 0.5px], [14, 1.0px], [15, 1.0px], [16, 6m]]
- #color: [[13,*minor_road4],[16,*minor_road3]]
+ #color: [[13, global.minor_road4],[16, global.minor_road3]]
#width: [[13, 1.0], [15, 1.5], [17, 3m]]
cap: butt
join: round
outline:
order: 354
- color: *minor_casing1
+ color: global.minor_casing1
width: [[15, 0px], [16, 0.5px], [17, 1.0px], [18, 2.0px]]
bridge:
filter: { is_bridge: yes }
width: [[15, 3.5], [17, 3m]]
cap: round
outline:
- color: [[15,*minor_casing2],[16,*minor_casing1]]
+ color: [[15, global.minor_casing2],[16, global.minor_casing1]]
width: [[15, 0.5px], [16, 1.0px], [18, 2px]]
cap: butt
in_park:
lines:
width: [[13, 0.5px], [14, 0.5px], [15, 1.0px], [16, 6m]]
outline:
- color: [[16,*green1_r],[17,*major_casing1]]
+ color: [[16, global.green1_r],[17, global.major_casing1]]
width: [[15, 0px], [16, 0.25px], [17, 0.5px], [18, 1.0px], [19, 2.0px]]
steps:
filter:
- highway: steps
draw:
dashedline:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
color: [0.97,0.97,0.97]
width: [[14,0.6px],[16,2px],[17,4px],[18,5px],[19,8px],[20,10px]]
outline:
draw:
text-blend-order:
priority: 59
- visible: *text_visible_steps
- text_source: name
+ visible: global.text_visible_steps
+ text_source: global.ux_language_text_source
font:
# need fill color?
size: 12px
priority: 18
visible: true
font:
- fill: *text_fill_piste
+ fill: global.text_fill_piste
size: 12px
- stroke: { color: *grey8, width: 4 }
+ stroke: { color: global.grey8, width: 4 }
early:
filter: { $zoom: { max: 15 } }
draw:
draw:
text-blend-order:
font:
- fill: *text_fill_piste_e
+ fill: global.text_fill_piste_e
size: 11px
easy:
filter: { piste_difficulty: easy }
draw:
lines:
- color: *piste_easy
+ color: global.piste_easy
intermediate:
filter: { piste_difficulty: intermediate }
draw:
lines:
- color: *piste_intermediate
+ color: global.piste_intermediate
advanced:
filter: { piste_difficulty: advanced }
draw:
lines:
- color: *piste_advanced
+ color: global.piste_advanced
text-blend-order:
- text_source: function() { if( feature.name ){ return '◆ ' + feature.name; } else { return '◆'; } }
+ text_source: global.ux_language_text_source_piste_advanced
expert:
filter: { piste_difficulty: expert }
draw:
lines:
- color: *piste_expert
+ color: global.piste_expert
text-blend-order:
- text_source: function() { if( feature.name ){ return '◆◆ ' + feature.name; } else { return '◆◆'; } }
+ text_source: global.ux_language_text_source_piste_expert
pier:
filter: { kind: path, man_made: pier }
draw:
draw:
text-blend-order:
priority: 59
- visible: *text_visible_aerialway
- text_source: name
+ visible: global.text_visible_aerialway
+ text_source: global.ux_language_text_source
font:
- fill: *text_fill
+ fill: global.text_fill
size: 12px
- stroke: { color: *grey8, width: 4 }
+ stroke: { color: global.grey8, width: 4 }
minor:
filter: { not: { aerialway: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
draw:
lines:
outline:
# except bridges and tunnels, their outlines should also self-sort
- order: function() { return feature.sort_key; }
+ order: global.feature_order
buildings:
- data: { source: osm, layer: 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)
polygons:
visible: false
order: 329
- color: *building2
+ color: global.building2
lines:
style: lines
order: 330
# 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 } }
+ # show footprints for buildings at least one zoom level before they will be extruded
+ - { $zoom: 13, height: { min: 250 } }
+ - { $zoom: 13, area: { min: 50000 } }
+ - { $zoom: 13, volume: { min: 200000 } }
+ - { $zoom: 14, height: { min: 190 } }
+ - { $zoom: 14, area: { min: 5000 } }
+ - { $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 }, area: true }
draw:
- polygons:
- visible: true
- lines:
- visible: true
+ 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; }
+ # 3d buildings
+ extrude:
+ filter:
+ all:
+ - function() { return global.building_extrude; }
+ - 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:
+ order: 438
+ style: building-grid
+ extrude: global.building_extrude_height
+ color: [0.892,0.880,0.878]
+ lines:
+ order: 439
+ style: building-lines
+ extrude: global.building_extrude_height
# landuse-specific rules
in_park:
# filter: { landuse_kind: golf_course }
# draw:
# polygons:
- # color: *building2
+ # color: global.building2
# nature_reserve:
# filter: { landuse_kind: nature_reserve }
# draw:
# polygons:
- # color: *building2
+ # color: global.building2
# conservation:
# filter: { landuse_kind: conservation }
# draw:
# polygons:
- # color: *building2
+ # color: global.building2
# zoo:
# filter: { landuse_kind: zoo }
# draw:
# polygons:
- # color: *building2
+ # color: global.building2
in_university:
filter: { landuse_kind: [university,school] }
draw:
polygons:
color: [0.950,0.917,0.883]
lines:
- color: *brown1_bo
+ color: global.brown1_bo
in_hospital:
filter: { landuse_kind: hospital }
draw:
filter: { landuse_kind: [aerodrome, runway, taxiway] }
draw:
polygons:
- color: *purple_b
+ color: global.purple_b
lines:
- color: *purple_bo
+ color: global.purple_bo
width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
in_retail:
filter: { landuse_kind: retail }
color: [0.945, 0.898, 0.878]
buildings-labels:
- data: { source: osm, layer: buildings }
+ data: { source: mapzen, layer: buildings }
filter:
all:
- { $zoom: { min: 17 } }
- { $zoom: { min: 20 }, area: true }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
interactive: true
move_into_tile: true
priority: 70
+ visible: global.text_visible_building
order: 7
font:
fill: '#666'
- family: *text_font_family
+ family: global.text_font_family
style: italic
size: 11px
- stroke: { color: *text_stroke_address, width: 1 }
+ stroke: { color: global.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 } } } }
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; } }
+ text_source: global.ux_language_text_source_building_and_address
address-labels:
- data: { source: osm, layer: buildings }
+ data: { source: mapzen, layer: buildings }
filter:
$zoom: { min: 20 }
any:
- { label_position: yes, addr_housenumber: true, name: false }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
interactive: true
order: 7
- visible: *text_visible_address
+ visible: global.text_visible_address
text_source: addr_housenumber
font:
- fill: *text_fill_address
- family: *text_font_family
+ fill: global.text_fill_address
+ family: global.text_font_family
style: italic
size: 10px
- stroke: { color: *text_stroke_address, width: 4 }
+ stroke: { color: global.text_stroke_address, width: 4 }
boundaries:
- data: { source: osm, layer: boundaries }
+ data: { source: mapzen, layer: boundaries }
# country subdivisions (states, provinces)
draw:
lines:
interactive: true
- order: function() { return feature.sort_key; }
+ order: global.feature_order
# color: red
# width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
country:
draw:
lines:
interactive: true
- color: *country_boundary
+ color: global.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 }
# territorial here is probably a hack
- kind: [state, department, region, provincial, territorial, macroregion]
- admin_level: 4
+ not:
+ # deal with bogus Hungary data
+ - scalerank: 0
draw:
lines:
interactive: true
- color: *region_boundary
+ color: global.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 }
filter: { kind: city_wall }
draw:
lines:
- color: *city_wall
+ color: global.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
+ color: global.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
+ color: global.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
+ color: global.fence
width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
places:
- data: { source: osm, layer: places }
+ data: { source: mapzen, layer: places }
filter: { not: { kind: [ocean, sea] } }
draw:
+ icons:
+ text:
+ text_source: global.ux_language_text_source
+ visible: false # labels are enabled by each layer below
+ font:
+ family: global.text_font_family
+ # weight: 500
+ fill: global.text_fill
text-blend-order:
+ text_source: global.ux_language_text_source
visible: false # labels are enabled by each layer below
font:
- family: *text_font_family
+ family: global.text_font_family
# weight: 500
- fill: *text_fill
+ fill: global.text_fill
continent:
filter: { name: true, kind: [continent], $zoom: {max: 5} }
draw:
text-blend-order:
- visible: *text_visible_continent
+ visible: global.text_visible_continent
font:
size: 14px
weight: 700
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.text_stroke, width: 4 }
transform: uppercase
country-z2:
draw:
text-blend-order:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
fill: [0.30,0.30,0.30]
weight: 400
draw:
text-blend-order:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
fill: [0.20,0.20,0.20]
size: 11px
weight: 600
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.text_stroke, width: 4 }
transform: uppercase
# icons:
# size: [[13, 12px], [15, 18px]]
# interactive: true
- # sprite: *townspot_sprite
+ # sprite: global.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:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
size: 12px
weight: 600
fill: [0.40,0.40,0.40]
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.text_stroke, width: 4 }
transform: uppercase
# icons:
# size: [[13, 12px], [15, 18px]]
# interactive: true
- # sprite: *townspot_sprite
+ # sprite: global.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:
draw:
text-blend-order:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
size: 13px
weight: 400
fill: [0.25,0.25,0.25]
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.text_stroke, width: 4 }
transform: uppercase
# icons:
# size: [[13, 12px], [15, 18px]]
# interactive: true
- # sprite: *townspot_sprite
+ # sprite: global.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:
draw:
text-blend-order:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
size: 14px
weight: 600
fill: [0.25,0.25,0.25]
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.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:
priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source
font:
size: 16px
weight: 600
fill: [0.25,0.25,0.25]
- # stroke: { color: *text_stroke, width: 4 }
+ # stroke: { color: global.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:
priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source_short
font:
size: 10px
weight: 300
draw:
text-blend-order:
priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source_short
font:
size: 13px
weight: 300
draw:
text-blend-order:
priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source_short
font:
size: 15px
weight: 300
fill: [0.4,0.4,0.4]
region:
- filter: { name: true, kind: [state], $zoom: {min: 7, max: 9} }
+ filter: { name: true, kind: [state], $zoom: [7,8] } # someday: province
draw:
text-blend-order:
priority: 14
- visible: *text_visible_admin
- text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
+ visible: global.text_visible_admin
+ text_source: global.ux_language_text_source_short_proxy_name
font:
size: 14px
weight: 300
fill: [0.3,0.3,0.3]
- #stroke: { color: *text_stroke, width: 4 }
+ #stroke: { color: global.text_stroke, width: 4 }
transform: uppercase
# icons:
# size: [[13, 12px], [15, 18px]]
# interactive: true
- # sprite: *townspot_sprite
+ # sprite: global.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} }
+ 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: [7] }
draw:
text-blend-order:
visible: false
+# early-provinces:
+# filter: { kind: province, $zoom: [7] }
+# 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} }
+ filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: [7] }
draw:
text-blend-order:
- text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
+ text_source: global.ux_language_text_source_abbreviation
font: { transform: uppercase }
populated-places:
icons:
interactive: true
priority: 5
- text-blend-order:
- interactive: true
- anchor: bottom
- priority: 6
+ text:
+ interactive: true
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 10px
+ fill: global.text_fill
+ # stroke: { color: global.text_stroke, width: 4 }
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 11px
+ fill: global.text_fill
+ # stroke: { color: global.text_stroke, width: 4 }
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
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 9px
+ fill: global.text_fill
+ # stroke: { color: global.text_stroke, width: 4 }
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
+ fill: global.text_fill
+ # stroke: { color: global.text_stroke, width: 4 }
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 10px
+ fill: global.text_fill
+ # stroke: { color: global.text_stroke, width: 4 }
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 6
icons:
priority: 5
size: 8px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 10
icons:
priority: 9
size: 6px
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
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 10px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 16
icons:
priority: 15
size: 6px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-l-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: global.text_fill
+ size: 15px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 6
icons:
sprite: capital-l
size: 8px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: global.text_fill
+ size: 12px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 10
icons:
size: 6px
sprite: capital-m
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 15
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 10px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 14
icons:
size: 6px
sprite: capital-m
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
+ visible: global.icon_visible_populated_places
sprite: townspot-l-rev
priority: 7
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: global.text_fill
+ size: 16px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 6
icons:
size: 8px
sprite: capital-l
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 13
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: global.text_fill
+ size: 13px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 12
icons:
size: 8px
sprite: capital-l
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 17
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 16
icons:
size: 6px
sprite: capital-m
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 7
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 16px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 6
icons:
size: 8px
sprite: capital-l
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 11
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 10
icons:
size: 6px
sprite: capital-m
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 15
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 14
icons:
size: 6px
sprite: capital-m
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 19
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 10px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 18
icons:
size: 5px
sprite: capital-m
- { 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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 19
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 10px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 3px] # half icon size
- priority: 18
icons:
size: 5px
sprite: capital-s
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 } } }
+ draw: { icons: { text: { font: { fill: global.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
+ visible: global.icon_visible_populated_places
sprite: townspot-l-rev
priority: 23
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 16px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- offset: [0, 4px] # half icon size
- priority: 22
icons:
size: 8px
sprite: capital-l
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
capital:
filter: { capital: yes }
draw:
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 27
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 26
icons:
sprite: capital-s
priority: 25
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 6
font:
size: 17px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z9places-2a:
filter:
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 8
font:
size: 13px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
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
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 10
icons:
sprite: capital-m
priority: 9
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 15
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 14
- font:
- size: 15px
icons:
sprite: capital-m
priority: 13
+ text:
+ font:
+ size: 15px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 19
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 9px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 18
icons:
sprite: capital-s
priority: 17
- { 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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 19
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.30,0.30,0.30]
+ size: 9px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 18
icons:
sprite: capital-s
priority: 17
- $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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 21
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 10px
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 } } }
+ draw: { icons: { text: { font: { fill: global.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
+ visible: global.icon_visible_populated_places
sprite: townspot-l-rev
priority: 25
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 16px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 29
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 33
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 11px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 32
icons:
sprite: capital-m
priority: 31
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
+ # TODO: Why is this here?
priority: 5
font:
size: 17px
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
+ # TODO: Why is this here?
priority: 6
font:
size: 13px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
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
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 11
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.25,0.25,0.25]
+ size: 11px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 13
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ fill: [0.35,0.35,0.35]
+ size: 9px
populated-places-osm-z10-no-population:
filter:
- $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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 15
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 10px
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 } } }
+ draw: { icons: { text: { font: { fill: global.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
+ icons:
+ text:
+ visible: global.text_visible_populated_places
+ 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
+ visible: global.icon_visible_populated_places
sprite: townspot-m-rev
priority: 21
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 13px
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
+ visible: global.icon_visible_populated_places
sprite: townspot-s-rev
priority: 25
+ text:
+ visible: global.text_visible_populated_places
+ font:
+ size: 12px
capital:
filter: { capital: yes }
draw:
- text-blend-order:
- priority: 24
icons:
size: 7px
sprite: capital-m
- { population: { min: 1000000 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 5
font:
size: 18px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z11places-2:
filter:
- { population: { min: 50000, max: 999999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 6
font:
size: 14px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z11places-3:
filter:
- { population: { min: 5000, max: 49999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 7
font:
size: 12px
+# fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
populated-places-osm-z11-no-population:
filter:
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 8
font:
size: 11px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
populated-places-natural-earth-z11-backfill:
filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
text-blend-order:
anchor: center
font:
- fill: *text_fill
+ fill: global.text_fill
z11places-1-ne:
filter: { scalerank: [0,1] }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 10
font:
size: 16px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 9
font:
size: 16px
+ #stroke: { color: global.text_stroke, width: 4 }
z11places-2-ne:
filter: { scalerank: [2,3,4,5] }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 13
font:
size: 13px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 11
font:
size: 16px
+ #stroke: { color: global.text_stroke, width: 4 }
state_capital:
filter: { state_capital: yes }
draw:
priority: 12
font:
size: 14px
+ #stroke: { color: global.text_stroke, width: 4 }
z11places-3-ne:
filter: { scalerank: [6,7,8,9,10,11] }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 15
font:
size: 11px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 14
font:
size: 14px
+ #stroke: { color: global.text_stroke, width: 4 }
populated-places-osm-z12:
filter:
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 5
font:
size: 18px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z12places-2:
filter:
- { population: { min: 50000, max: 999999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 6
font:
size: 14px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z12places-3:
filter:
- { population: { min: 5000, max: 49999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 7
font:
size: 11px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
z12places-4:
filter:
- { population: { max: 5000 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 8
font:
size: 10px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
populated-places-osm-z12-no-population:
filter:
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 9
font:
size: 11px
+ #fill: global.text_fill
+# stroke: { color: global.text_stroke, width: 4 }
populated-places-natural-earth-z12-backfill:
filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
anchor: center
priority: 10
font:
- fill: *text_fill
+ fill: global.text_fill
z12places-1-ne:
filter: { scalerank: [0,1] }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 12
font:
size: 16px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 11
font:
size: 16px
+ #stroke: { color: global.text_stroke, width: 4 }
z12places-2-ne:
filter: { scalerank: [2,3,4,5] }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 14
font:
size: 13px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 13
font:
size: 16px
+ #stroke: { color: global.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
+ visible: global.text_visible_populated_places
priority: 16
font:
size: 11px
+ #stroke: { color: global.text_stroke, width: 4 }
capital:
filter: { capital: yes }
draw:
priority: 15
font:
size: 14px
+ #stroke: { color: global.text_stroke, width: 4 }
populated-places-osm-z13-z14:
filter:
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
font:
weight: 600
- fill: *text_fill
+ fill: global.text_fill
z14:
filter:
$zoom: [14]
- { population: { min: 50000, max: 199999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 5
font:
size: 14px
+ #stroke: { color: global.text_stroke, width: 4 }
z13places-3:
filter:
- { population: { min: 5000, max: 49999 } }
draw:
text-blend-order:
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 6
font:
size: 12px
+ #stroke: { color: global.text_stroke, width: 4 }
z13places-4:
filter:
text-blend-order:
font:
size: 12px
+ #stroke: { color: global.text_stroke, width: 4 }
populated-places-osm-z13-z14-no-population:
filter:
draw:
text-blend-order:
anchor: center
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
priority: 7
font:
size: 11px
+ #stroke: { color: global.text_stroke, width: 4 }
populated-places-natural-earth-z13-z14-backfill:
filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
text-blend-order:
anchor: center
font:
- fill: *text_fill
+ fill: global.text_fill
weight: 400
z13places-1-ne:
draw:
text-blend-order:
priority: 9
- visible: *text_visible_populated_places
+ visible: global.text_visible_populated_places
font:
size: 13px
+ #stroke: { color: global.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
+ visible: global.text_visible_populated_places
priority: 10
font:
size: 12px
+ #stroke: { color: global.text_stroke, width: 4 }
neighborhood-z11:
filter:
text-blend-order:
priority: 18
text_wrap: 10
- visible: *text_visible_neighbourhoods_e
+ visible: global.text_visible_neighbourhoods_e
font:
size: 9px
weight: 400
- fill: *text_fill
+ fill: global.text_fill
transform: uppercase
- stroke: { color: *text_stroke, width: 4 }
+ stroke: { color: global.text_stroke, width: 4 }
neighborhood-z12:
filter:
all:
text-blend-order:
priority: 18
text_wrap: 10
- visible: *text_visible_neighbourhoods_e
+ visible: global.text_visible_neighbourhoods_e
font:
size: 10px
weight: 400
fill: [0.300,0.300,0.300]
transform: uppercase
- # stroke: { color: *text_stroke, width: 2 }
+ # stroke: { color: global.text_stroke, width: 2 }
neighborhood-z13:
filter:
all:
text-blend-order:
priority: 18
text_wrap: 10
- visible: *text_visible_neighbourhoods_e
+ visible: global.text_visible_neighbourhoods_e
font:
size: 11px
weight: 400
fill: [0.35,0.35,0.35]
transform: uppercase
- # stroke: { color: *text_stroke, width: 2 }
+ # stroke: { color: global.text_stroke, width: 2 }
neighborhood-z14:
filter:
all:
text-blend-order:
priority: 18
text_wrap: 12
- visible: *text_visible_neighbourhoods
+ visible: global.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 }
+ # stroke: { color: global.text_stroke, width: 3 }
neighborhood-z15:
filter:
all:
text-blend-order:
priority: 18
text_wrap: 12
- visible: *text_visible_neighbourhoods
+ visible: global.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 }
+ # stroke: { color: global.text_stroke, width: 3 }
z15-new:
filter:
all:
- kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- visible: *text_visible_neighbourhoods
+ visible: global.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
+ # stroke: { color: global.text_stroke, width: 3 }
pois_and_landuse_labels:
- data: { source: osm, layer: [pois,landuse] }
- visible: *label_visible_poi_landuse
+ data: { source: mapzen, layer: [pois,landuse] }
+ visible: global.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
+ all:
+ - not: { kind: [building,address,farm,tree,apron,residential,commercial,industrial] }
+ - $geometry: point
+ # White list a few kinds to "always" show per the tile zoom inclusion, else test feature's min_zoom
+ #- function() { return feature.min_zoom <= $zoom }
+ - function() { if( feature.kind == 'restaurant' || feature.kind == 'landmark' || feature.kind == 'cafe' ) { return true } else { return feature.min_zoom <= $zoom } }
+ - any:
+ - area: false
+ all:
+ - $zoom: { min: 12 }
+ - area: true
+ all:
+ - kind: true
draw:
icons:
size: [[13, 12px], [16, 16px], [18, 19px]]
interactive: true
visible: false
priority: 65
+ repeat_group: abc
+ text:
+ text_source: global.ux_language_text_source
+ visible: false # labels are enabled by each layer below
+ move_into_tile: false # preserves text alignment w/icons in JS
+ interactive: true
+ priority: 66
+ font:
+ family: global.text_font_family
+ weight: 400
+ fill: [0.20,0.20,0.20]
+ size: 10px
+ stroke: { color: global.text_stroke, width: 1 }
text-blend-order:
+ text_source: global.ux_language_text_source
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
+ family: global.text_font_family
weight: 400
fill: [0.20,0.20,0.20]
size: 10px
- stroke: { color: *text_stroke, width: 1 }
+ stroke: { color: global.text_stroke, width: 1 }
poi_labels-z14:
filter: { $zoom: [14] }
- draw: { text-blend-order: { font: { size: 11px } } }
+ draw: { icons: { text: { font: { size: 11px } } } }
poi_labels-z15:
filter: { $zoom: [15,16,17] }
- draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
+ draw: { icons: { text: { 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 } } } }
+ draw: { icons: { text: { 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 } } } }
+ draw: { icons: { text: { 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
+ sprite: function() { return feature.sport; }
+ visible: global.icon_visible_poi_landuse_e
priority: 69
baseball:
filter: { sport: baseball }
draw: { icons: { sprite: tennis } }
toilets:
filter: { kind: toilets, $zoom: { min: 18 } }
- draw: { icons: { sprite: toilets, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: toilets, visible: global.icon_visible_poi_landuse_e } }
playground:
filter: { kind: playground, $zoom: { min: 18 } }
- draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: playground, visible: global.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 } }
+ draw: { icons: { sprite: picnic-spot, visible: global.icon_visible_poi_landuse_e } }
information:
filter: { kind: information, $zoom: { min: 18 } }
- draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: information, visible: global.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 } }
+ draw: { icons: { sprite: drinking-water, visible: global.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 } }
+ draw: { icons: { sprite: traffic-signal, visible: global.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 } }
+ draw: { icons: { sprite: bicycle-parking, visible: global.icon_visible_poi_landuse_e } }
car-parking:
filter: { kind: [parking], $zoom: { min: 17 } }
- draw: { icons: { sprite: parking, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: parking, visible: global.icon_visible_poi_landuse_e } }
has-name:
filter: { name: true }
# match 1:1 correlations between data and sprite name
direct-match:
- filter: { area: false }
+ filter:
+ all:
+ - area: false
draw:
icons:
# sprite_source: kind
sprite: function() { return feature.kind; }
- visible: *icon_visible_poi_landuse
+ visible: global.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
+ sprite_default: generic
+ visible: global.icon_visible_poi_landuse
# 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
+ icons:
+ text:
+ visible: global.text_visible_poi_landuse
+# priority: 68
landuse-labels-green-areas-national-park:
filter:
- { $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
+ filter: function() { return feature.name && ((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
+ visible: global.label_visible_landuse_green
draw:
icons:
- visible: *icon_visible_landuse_green
+ visible: global.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 }
+ text:
+ visible: global.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 } } }
+ text: { font: { size: 10px, stroke: { width: 2px } } }
natl-park-labels-z7:
filter: { $zoom: [7] }
draw:
- text-blend-order: { font: { size: 10px, stroke: { width: 2px } } }
+ icons:
+ text: { font: { size: 10px, stroke: { width: 2px } } }
natl-park-labels-z8:
filter: { $zoom: [8,9] }
draw:
- text-blend-order: { font: { size: 11px, stroke: { width: 2px } } }
+ icons:
+ text: { font: { size: 11px, stroke: { width: 2px } } }
natl-park-labels-z10:
filter: { $zoom: {min: 10, max: 14 } }
draw:
- text-blend-order: { font: { size: 12px } }
+ icons:
+ text: { 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]
+ - 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: [14], area: { min: 50000 } }
- { $zoom: [15], area: { min: 10000 } }
- { $zoom: [16], area: { min: 1000 } }
- - { $zoom: { min: 17 } }
+ - { $zoom: { min: 17 }, area: true }
not-national-park:
- filter: function() { return !( feature.name.indexOf("National Park") > -1 ); }
+ filter: function() { return feature.name && !((feature.name.indexOf("National Park") > -1) || feature.name.indexOf("National Monument") > -1); }
draw:
icons:
- visible: *icon_visible_landuse_green
+ visible: global.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 }
+ text:
+ visible: global.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 } } }
+ icons:
+ visible: false
+ text: { font: { size: 10px, stroke: { width: 2px } } }
green-areas-z7:
filter: { $zoom: [7] }
draw:
- icons: { visible: false }
- text-blend-order: { font: { size: 10px } }
+ icons:
+ visible: false
+ text: { font: { size: 10px } }
green-areas-z8-z9:
filter: { $zoom: { min: 8, max: 14 } }
draw:
- text-blend-order: { font: { size: 11px } }
+ icons:
+ text: { 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 }
+ filter: function() { return $zoom < 10 && feature.name && (feature.name.indexOf("Wilderness") > -1 || feature.name.indexOf("BLM") > -1) }
+ draw:
+ icons:
+ visible: false
+ text: { visible: false }
early-not-national-park:
- filter: { not: { kind: national_park }, $zoom: { max: 6 } }
+ filter: { not: { kind: [national_park] }, $zoom: { max: 6 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
not-national-park:
- filter: function() { return feature.name && feature.name.indexOf("Park") > -1 }
+ 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:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
forest:
- filter: function() { return $zoom < 8 && ((feature.name && feature.name.indexOf("Forest") > -1) || feature.protect_class >=6) }
+ filter: function() { return ( (feature.name && feature.name.indexOf("Forest") > -1) || ((feature.protect_class == 6 || feature.protect_class == '6') && feature.name.indexOf("Park") < 0) ) }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ sprite: forest
hide-till-later:
filter: { kind: [grass], $zoom: { max: 16 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
only-text-later:
filter: { kind: [grass], $zoom: { min: 16 } }
draw:
- text-blend-order: { font: { style: italic } }
- icons: { visible: false }
+ 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 }, area: true }
+ draw:
+ icons:
+ visible: global.icon_visible_landuse_green
+ sprite: battlefield
+ priority: 41
+ text:
+ visible: global.text_visible_landuse_green
+ font:
+ #fill: [0.058,0.605,0.615]
+ # fill: [0.093,0.473,0.408]
+ style: italic
+ stroke: { color: global.text_stroke_park, width: 4 }
+
beach:
filter:
all:
- { $zoom: { min: 17 } }
draw:
icons:
- visible: *icon_visible_landuse_green
+ visible: global.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
+ text:
+ visible: global.text_visible_landuse_green
+ interactive: true
+ font:
+ fill: global.text_fill_beach
+ stroke:
+ color: global.text_stroke_park
airport:
filter:
all:
draw:
icons:
sprite: airport
- visible: *icon_visible_landuse_green
+ visible: global.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 }
+ text:
+ visible: global.text_visible_landuse_green
+ priority: 41
+ text_source: global.ux_language_text_source_iata
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ #size: 11px
+ stroke: { color: global.text_stroke, width: 4 }
early:
filter: { $zoom: [9,10,11] }
- # todo: huh?
- draw: { text-blend-order: { text_source: iata, font: { size: 11px } } }
+ draw: { icons: { text: { text_source: iata, font: { size: 11px } } } }
early2:
filter: { $zoom: { min: 12, max: 14 } }
- draw: { text-blend-order: { font: { size: 11px } } }
+ draw: { icons: { text: { font: { size: 11px } } } }
university:
filter:
all:
- { $zoom: [16], area: { min: 5000 } }
- { $zoom: [17], area: { min: 2000 } }
- { $zoom: { min: 18 } }
- visible: *label_visible_landuse_green
+ visible: global.label_visible_landuse_green
draw:
icons:
sprite: college-university
- visible: *icon_visible_landuse_green
+ visible: global.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 }
+ text:
+ visible: global.text_visible_landuse_green
+ font:
+ weight: 600
+ fill: [0.20,0.20,0.20]
+ #size: 10px
+ # stroke: { color: global.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 } }
+ draw: { icons: { text: { font: { size: 11px } } } }
school:
filter:
all:
- { $zoom: [15], area: { min: 10000 } }
- { $zoom: [16], area: { min: 5000 } }
- { $zoom: [17], area: { min: 2000 } }
- - { $zoom: { min: 18 } }
+ - { $zoom: { min: 18 }, area: true }
draw:
icons:
sprite: school
- visible: *icon_visible_landuse_green
+ visible: global.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 } } }
+ text:
+ visible: global.text_visible_landuse_green
+ font:
+ fill: global.text_fill
+ #size: 12px
+ stroke: { color: global.text_stroke, width: 4 }
+ #early:
+# filter: { $zoom: { max: 14 } }
+# draw: { icons: { text: { font: { size: 11px } } } }
winter_sports:
filter:
all:
- { $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
+ visible: global.icon_visible_landuse_green
priority: 41
+ text:
+ visible: global.text_visible_landuse_green
+ font:
+ fill: global.text_fill
+ size: 12px
+ stroke: { color: global.text_stroke, width: 4 }
early:
filter: { $zoom: { max: 14 } }
- draw: { text-blend-order: { font: { size: 10px } } }
+ draw: { icons: { text: { font: { size: 10px } } } }
tourism-related:
filter:
all:
- - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium]
+ - kind: [zoo, theme_park, resort, aquarium, winery, maze, stadium, enclosure, animal]
- area: true
- $geometry: point
any:
- { $zoom: { min: 14 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 10000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
draw:
icons:
sprite: function() { return feature.kind; }
sprite_default: generic
- visible: *icon_visible_poi_landuse
+ visible: global.icon_visible_poi_landuse
priority: 43
+ text:
+ visible: global.text_visible_poi_landuse
+ priority: 44
+ font:
+ fill: global.text_fill
+ #size: 12px
+ stroke: { color: global.text_stroke, width: 4 }
+ enclosure:
+ filter: { kind: [enclosure, animal] }
+ draw:
+ icons:
+ visible: false
+ sprite_default: dot-black
+ text-blend-order:
+ text_wrap: 10
+ font:
+ style: italic
+ weight: 400
+ early-sizing:
+ filter: { $zoom: { max: 14 } }
+ draw: { icons: { text: { font: { size: 11px } } } }
+ 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: global.icon_visible_landuse_green
+ priority: 41
+ text:
+ visible: global.text_visible_landuse_green
+ font:
+ size: 10px
+ stroke: { color: global.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-blend-order:
- visible: *text_visible_poi_landuse
+ visible: true
priority: 44
+ interactive: true
+ text_wrap: 10
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:
+ weight: 400
+ style: italic
+ fill: '#4ba3c5'
+
+ station-train-subway:
+ filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
+ visible: global.label_visible_station
+ draw:
+ icons:
+ visible: global.icon_visible_station
+ sprite: train-station
+ size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
+ priority: 42
+ text:
+ visible: global.text_visible_station
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ # size: 10px
+ weight: 600
+ stroke: { color: global.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 }
+
+ landuse-labels-not-any-above:
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] }
+ - 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, station] }
any:
# show labels for smaller landuse areas at higher zooms
- { $zoom: [5,6,7], area: { min: 5000000000 } }
# show labels for smaller landuse areas at higher zooms
- { $zoom: [15], area: { min: 5000 } }
- { $zoom: [16], area: { min: 2000 } }
- - { $zoom: { min: 17 } }
+ - { $zoom: { min: 17 }, area: true }
draw:
icons:
sprite: function() { return feature.kind; }
sprite_default: generic
- visible: *icon_visible_poi_landuse
+ visible: global.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 }
+ text:
+ visible: global.text_visible_poi_landuse
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ # size: 10px
+ weight: 600
+ stroke: { color: global.text_stroke, width: 4 }
early-sizing:
filter: { $zoom: { max: 14 } }
draw: { text-blend-order: { size: 11px } }
# filter: { kind: [residential], osm_relation: true }
# draw:
# icons:
-# text-blend-order: { visible: true, text_source: short_name, font: { fill: red } }
+# text: { 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 }
+ icons:
+ visible: false
+ text: { 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 }
+ icons:
+ visible: false
+ text: { font: { style: italic } }
burial_vault-early:
filter: { kind: [burial_vault], $zoom: { max: 19 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
university-poi:
filter: { kind: [university, college], area: false, $zoom: { max: 16 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ 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:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
bank-early:
filter: { kind: [bank], $zoom: { max: 17 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
post-office-early:
filter: { kind: [post_office], $zoom: { max: 14 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
atm-early:
filter: { kind: [atm], $zoom: { max: 18 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
bicycle-parking-early:
filter: { kind: [bicycle_parking], $zoom: { max: 19 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
yes-early:
filter: { kind: [yes], $zoom: { max: 18 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
peak-early:
filter: { kind: [peak], $zoom: { max: 16 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
drinking-water-early:
filter: { kind: [drinking_water], $zoom: { max: 18 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
memorial-early:
filter: { kind: [memorial], $zoom: { max: 13 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
animal-points-early:
filter: { kind: [animal], area: false, $zoom: { max: 18 } }
draw:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { visible: false }
# animal-areas-early:
# filter: { kind: [animal], area: { min: 500 }, $zoom: { max: 18 } }
# draw:
-# text-blend-order: { visible: false }
-# icons: { visible: false }
+# icons:
+# visible: false
+# text: { visible: false }
parking-labels-early:
filter:
kind: [parking]
$zoom: { max: 18 }
draw:
- text-blend-order:
- visible: false
icons:
visible: false
+ text:
+ 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 }
+ icons:
+ text:
+ visible: global.text_visible_poi_landuse
+ font:
+ fill: [0.20,0.20,0.20] #*text_fill
+ size: 10px
+ stroke: { color: global.text_stroke, width: 4 }
landuse-funky:
filter: { kind: [commercial, residential, wood], $zoom: { max: 17 } }
draw:
- text-blend-order:
- visible: false
+ icons:
+ text:
+ visible: false
car-sharing:
filter: { kind: car_sharing }
icons-early:
text-labels-early:
filter: { $zoom: { max: 19 } }
draw:
- text-blend-order:
- visible: false
+ icons:
+ text:
+ 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 }
+ text:
+ font:
+ style: italic
tram-stop-early:
filter: { kind: tram_stop, $zoom: { max: 15 } }
draw:
tram-stop-early-z15:
filter: { kind: tram_stop, $zoom: [15] }
draw:
- text-blend-order:
- visible: false
+ icons:
+ text:
+ visible: false
tram-stop:
filter: { kind: tram_stop, $zoom: { min: 15 } }
draw:
icons:
size: [[13, 12px], [16, 18px]]
+ #text:
+ # offset: [[13, [0, 6px]], [16, [0, 9px]]]
+ glaciers-pois:
+ filter: { $zoom: { min: 14 }, kind: glacier, area: false }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
text-blend-order:
- offset: [[13, [0, 6px]], [16, [0, 9px]]]
+ 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:
- 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:
+ icons:
+ text:
+ visible: global.text_visible_poi_landuse
+ font:
+ fill: [0.20,0.20,0.20] # *text_fill
+ size: 11px
+ stroke: { color: global.text_stroke, width: 4 }
+ bus-stop-early1:
+ filter:
+ kind: [bus_stop]
+ $zoom: { max: 18 }
+ draw:
+ icons:
+ visible: false
+ bus_stop-early2:
filter:
kind: [bus_stop]
$zoom: { max: 19 }
draw:
icons:
size: [[13, 8px], [19, 18px]]
- text-blend-order:
- visible: false
+ text:
+ 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]
+ kind: [accountant, administrative, advertising_agency, architect, association, atm, bakery, bed_and_breakfast, bicycle, bicycle_parking, bicycle_rental_station, books, 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, 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:
- text-blend-order: { visible: false }
- icons: { visible: false }
+ icons:
+ visible: false
+ text: { 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:
+ visible: false
+ text: { visible: false }
icons:
adult-boutique:
filter: { kind: [biergarten, beer-garden, brewery] }
draw: { icons: { sprite: beer-garden } }
bike-shop:
- filter: { kind: [bicycle, bicycle_rental, bike, bike_shop] }
+ filter: { kind: [bicycle, bicycle_rental, bike, bike_shop, bicycle_rental_station] }
draw: { icons: { sprite: bike-shop } }
bicycle-parking:
filter: { kind: [bicycle_parking] }
- { $zoom: [16], area: { max: 5000 } }
- { $zoom: [17], area: { max: 1000 } }
draw:
- text-blend-order:
- visible: false
icons:
visible: false
+ text:
+ visible: false
burger:
filter: { kind: [fast_food, burger] }
draw: { icons: { sprite: burger } }
department-store:
filter: { kind: [department_store, department-store] }
draw: { icons: { sprite: department-store } }
- dog-run:
+ doctors:
+ filter: { kind: [doctors, clinic] }
+ draw: { icons: { sprite: doctors } }
+ dog-park:
filter: { kind: [dog_park, dog_run, dog-run] }
- draw: { icons: { sprite: dog-run } }
+ draw: { icons: { sprite: dog-park } }
drinking-water:
filter: { kind: drinking_water }
draw: { icons: { sprite: drinking-water } }
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 } }
+ 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 } }
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 } }
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 } }
+ 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 } }
filter: { kind: [market, variety_store, boutique, dairy, retail] }
draw: { icons: { sprite: market } }
mine:
- filter: { kind: [mind, quarry, mineshaft, adit] }
+ filter: { kind: [mine, quarry, mineshaft, adit] }
draw: { icons: { sprite: mine } }
miscellaneous-shop:
filter: { kind: [houseware, miscellaneous-shop] }
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 } }
filter: { kind: [photo_studio, photography_lab, photographer] }
draw: { icons: { sprite: photography-lab } }
picnic-spot:
- filter: { kind: [picnic_site, picnic_spot, picnic-spot] }
+ filter: { kind: [picnic_site, picnic_spot, picnic-spot, picnic_table] }
draw: { icons: { sprite: picnic-spot } }
pool:
filter: { kind: [pool, swimming_pool, water_park] }
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 } }
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 } }
- spiritual-center:
- filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel] }
+ # 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: place_of_worship, religion: christian }
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: christian }
draw: { icons: { sprite: church } }
synagogue:
- filter: { kind: place_of_worship, religion: jewish }
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: jewish }
draw: { icons: { sprite: synagogue } }
buddhist:
- filter: { kind: place_of_worship, religion: buddhist }
+ filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: buddhist }
draw: { icons: { sprite: buddhism } }
mosque:
- filter: { kind: place_of_worship, religion: muslim }
+ 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, outdoor] }
+ filter: { kind: [sporting_goods, sporting-goods-shop, sports] }
draw: { icons: { sprite: sporting-goods-shop } }
stable:
- filter: { kind: [stable, horse_riding] }
+ filter: { kind: [stable, horse_riding, horse] }
draw: { icons: { sprite: stable } }
storage-facility:
filter: { kind: [storage, 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 } }
toilets:
filter: { kind: [toilets] }
draw: { icons: { sprite: toilets } }
+ trailhead:
+ filter: { kind: [trailhead, hiking_trail] }
+ draw: { icons: { sprite: trailhead } }
+ # because: JAPAN
+ traffic-signal:
+ filter: { kind: traffic_signals }
+ draw: { icons: { sprite: traffic-signal } }
veterinarian:
filter: { kind: [pet_care, veterinarian, veterinary] }
draw: { icons: { sprite: veterinarian } }
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 } }
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
+ airport-gate:
+ filter: { kind: gate, aeroway: gate }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: global.text_visible_airport_gate
+ interactive: true
+ text_source: ref
+ font:
+ fill: global.text_fill_exits
+ size: [[16,9px],[17,12px],[20,14px]]
+ #stroke: { color: global.highway1, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+ highway-exit:
+ filter: { kind: motorway_junction, $zoom: { min: 14 } }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: global.text_visible_exits
+ interactive: true
+ text_source: ref
+ priority: 1
+ font:
+ fill: global.text_fill_exits
+ size: [[12,9px],[15,12px],[17,14px]]
+ stroke: { color: global.text_stroke, width: [[12,2px],[14,3px],[15,3px]] }
+ later:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ text-blend-order:
+ font:
+ weight: 600
+
+
water-area-labels:
- data: { source: osm, layer: [water] }
- visible: *text_visible_water_labels
+ data: { source: mapzen, layer: [water] }
+ visible: global.text_visible_water_labels
filter:
all:
- name: true
default-label-text:
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
- fill: [0.314,0.591,0.640] #*text_fill_water
- family: *text_font_family
+ fill: [0.314,0.591,0.640] #global.text_fill_water
+ family: global.text_font_family
style: italic
weight: 400
size: 12px
text-blend-order: { font: { size: 12px } }
ocean-sea-labels:
- data: { source: osm, layer: places }
- visible: *text_visible_water_labels
+ data: { source: mapzen, layer: water }
+ visible: global.text_visible_water_labels
filter: { name: true, kind: [sea, ocean] }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
- fill: [0.314,0.591,0.640] #*text_fill_water
- family: *text_font_family
+ fill: [0.314,0.591,0.640] #global.text_fill_water
+ family: global.text_font_family
weight: 400
size: 12px
transform: uppercase
filter: { $zoom: { min: 1, max: 4 } }
draw:
text-blend-order:
- text_source: function() { return feature.name.split('').join(' ') }
+ text_source: global.ux_language_text_source_ocean
text_wrap: false
ocean-spacer-z4-up:
filter: { $zoom: { min: 4 } }
draw:
text-blend-order:
- text_source: function() { return feature.name.split('').join(' ') }
+ text_source: global.ux_language_text_source_ocean
text_wrap: false
ocean-labels-z1:
filter: { $zoom: [1] }
filter: { not: { kind: [ocean] }, $zoom: { min: 5 } }
draw:
text-blend-order:
- text_source: function() { return feature.name.split('').join(' ') }
+ text_source: global.ux_language_text_source_sea
text_wrap: false
sea-labels:
filter: { not: { kind: [ocean] } }
sea-labels-z4:
- filter: { $zoom: [4] }
- draw:
- text-blend-order: { font: { size: 9px } }
+ filter: { $zoom: [4] }
+ draw:
+ text-blend-order: { font: { size: 9px } }
sea-labels-z5:
- filter: { $zoom: [5] }
- draw:
- text-blend-order: { font: { size: 10px } }
+ filter: { $zoom: [5] }
+ draw:
+ text-blend-order: { font: { size: 10px } }
sea-labels-z6:
- filter: { $zoom: [6] }
- draw:
- text-blend-order: { font: { size: 11px } }
+ filter: { $zoom: [6] }
+ draw:
+ text-blend-order: { font: { size: 11px } }
sea-labels-z7:
- filter: { $zoom: [7] }
- draw:
- text-blend-order: { font: { size: 12px } }
+ filter: { $zoom: [7] }
+ draw:
+ text-blend-order: { font: { size: 12px } }
sea-labels-z8:
- filter: { $zoom: { min: 8} }
- draw:
- text-blend-order: { font: { size: 14px } }
+ filter: { $zoom: { min: 8} }
+ draw:
+ text-blend-order: { font: { size: 14px } }
playa-labels:
- data: { source: osm, layer: [water] }
- visible: *text_visible_water_labels
+ data: { source: mapzen, layer: [water] }
+ visible: global.text_visible_water_labels
filter:
all:
- name: true
- { $zoom: { min: 17 } }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
fill: grey
- family: *text_font_family
+ family: global.text_font_family
style: italic
weight: 400
size: 12px
- stroke: { color: *text_stroke_water, width: 3 }
+ stroke: { color: global.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 } }
+# sprite: global.townspot_sprite
+
+ earth-labels:
+ data: { source: mapzen, layer: earth }
+ filter: { name: true }
+ continent:
+ filter: { name: true, kind: [continent], $zoom: {max: 5} }
draw:
text-blend-order:
- visible: false
- stream:
- filter: { kind: [stream], $zoom: { max: 17 } }
+ visible: global.text_visible_continent
+ font:
+ size: 14px
+ style: italic
+ fill: global.text_fill
+ weight: 600
+ # stroke: { color: global.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: global.ux_language_text_source_continent
+ text_wrap: false
+ island:
+ filter: { kind: [archipelago, island, islet] }
draw:
text-blend-order:
- visible: false
+ visible: global.text_visible_island
+ text_wrap: 10
+ font:
+ size: 12px
+ style: italic
+ fill: global.text_fill
+ weight: 400
+ stroke: { color: global.text_stroke, width: 4 }
+ #transform: uppercase
landuse:
- data: { source: osm }
+ data: { source: mapzen }
draw:
dots2:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
visible: false
dots-rev:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
visible: false
polygons:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
tier1:
filter:
any:
- { $zoom: { min: 14 }, area: { min: 50000 } }
- { $zoom: { min: 15 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
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" ] } }
+ 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:
dots2:
color: [[4,[0.655,0.800,0.796]],[8,[0.588,0.780,0.773]]]
- { $zoom: { min: 14 }, area: { min: 50000 } }
- { $zoom: { min: 15 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
conservation:
filter:
kind: [conservation, protected_area, nature_reserve]
draw:
dots2:
color: [0.600,0.790,0.714]
- visible: *green4_v
+ visible: global.green4_v
forest:
filter: { kind: [forest,wood], $zoom: { min: 6 } }
national-forest:
operator: [ "United States Forest Service", "US Forest Service", "U.S. Forest Service", "USDA Forest Service" ]
draw:
dots2:
- color: *green7
+ color: global.green7
visible: true
landuse-forest:
filter: function() { return feature.name && feature.name.indexOf("Wilderness") > -1 }
draw:
dots2:
- color: *green7
+ color: global.green7
visible: true
parks-and-national-forests-not-national-park:
visible: true
urban:
filter: { kind: [urban, rural, residential] }
- visible: *earth2_v
+ visible: global.earth2_v
draw:
dots2:
- color: [[0,*earth2],[9,*earth2]]
- visible: *earth2_v
+ color: [[0, global.earth2],[9, global.earth2]]
+ visible: global.earth2_v
tier3:
filter:
any:
- { $zoom: { min: 14 }, area: { min: 50000 } }
- { $zoom: { min: 15 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
airport:
filter:
kind: aerodrome
draw:
dots2:
color: [0.805,0.805,0.825]
- visible: *purple_v
+ visible: global.purple_v
military:
filter:
kind: military
- { $zoom: { min: 14 }, area: { min: 50000 } }
- { $zoom: { min: 15 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
cemetery:
filter:
kind: cemetery
draw:
dots2:
- color: *green2
+ color: global.green2
visible: true
commercial:
filter:
draw:
dots2:
color: [0.855,0.748,0.667]
- visible: *grey1_v
+ visible: global.grey1_v
golf_course:
filter:
kind: golf_course
kind: sports_centre
draw:
dots2:
- color: *green10
+ color: global.green10
recreation_ground:
filter:
kind: recreation_ground
draw:
dots2:
- color: *green1
+ color: global.green1
visible: true
retail:
filter:
draw:
dots2:
color: [0.955,0.752,0.650]
- visible: *grey1_v
+ visible: global.grey1_v
stadium:
filter:
kind: stadium
kind: winter_sports
draw:
dots2:
- color: *grey8
- visible: *grey8_v
+ color: global.grey8
+ visible: global.grey8_v
man-made:
filter: { kind: [pier,wastewater_plant,works,bridge,tower,breakwater,water_works,groyne,dike,cutline] }
draw:
- maze
draw:
dots2:
- color: *grey10
+ color: global.grey10
visible: true
beach:
filter:
- { $zoom: { min: 14 }, area: { min: 50000 } }
- { $zoom: { min: 15 }, area: { min: 20000 } }
- { $zoom: { min: 15 }, area: { min: 2000 } }
- - { $zoom: { min: 16 } }
+ - { $zoom: { min: 16 }, area: true }
garden:
filter:
- kind: garden
+ kind: [garden, allotments]
draw:
dots2:
color: [0.604,0.973,0.722]
draw:
dots2:
color: [0.765,0.765,0.765]
- visible: *grey1_v
+ visible: global.grey1_v
early:
filter: { $zoom: { max: 15 } }
draw:
dots2:
- color: *grey1_e
+ color: global.grey1_e
visible: true
pedestrian:
filter:
draw:
dots2:
color: [0.740,0.740,0.740]
- visible: *grey1_v
+ visible: global.grey1_v
green-stuff:
filter:
surface: [grass]
draw:
dots2:
color: [0.584,0.843,0.792]
+ # glacier:
+ # filter:
+ # kind: glacier
+ # draw:
+ # terrain:
+ # color: [0.890,0.970,1.000]
+ # # color: [0.975,0.975,0.828]
+ # visible: true
+
pitch:
filter: { kind: pitch }
draw:
draw:
dots2:
color: [0.910,0.972,1.000]
- visible: *grey1_v
+ visible: global.grey1_v
playground:
filter:
kind: playground
color: [0.765,0.765,0.765]
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
+
+
landuse-not-filtered:
- data: { source: osm, layer: landuse }
+ data: { source: mapzen, 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:
- aviary
draw:
dots2:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
visible: false
dots-rev:
- order: function() { return feature.sort_key; }
+ order: global.feature_order
visible: false
polygons:
visible: false
- order: function() { return feature.sort_key; }
+ order: global.feature_order
runway:
filter:
kind: runway
- carousel
draw:
dots2:
- color: *grey12
+ color: global.grey12
visible: true
minor-zoo-landuse:
filter:
- aviary
draw:
dots2:
- color: *green11
+ color: global.green11
visible: true
landuse_urban_area-early:
- data: { source: osm, layer: landuse }
+ data: { source: mapzen, layer: landuse }
filter:
# This is from Natural Earth and only shows up from zoom(0,9)
- kind: ['urban area']
+ kind: [urban_area, 'urban area']
draw:
dots2:
- visible: *earth2_ev
- order: function() { return feature.sort_key; }
+ visible: global.earth2_ev
+ order: global.feature_order
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]]]
+ transit-rail-lines:
+ data: { source: mapzen, layer: transit }
+ filter:
+ not: { kind: [platform, railway] }
+ draw:
+ lines:
+ order: 499
+ visible: global.sdk_transit_overlay
+ color: purple
+ width: [[5,1.5px],[6,2px],[11,3px],[18,4px]]
+ interactive: true
+ outline:
+ color: [1.,1.,1.,.8]
+ width: [[7,0px],[8,0.25px],[9,0.5px],[12,1.0px],[13,1.75px],[14,2px]]
+ #width: [[12,1.0px],[13,1.75px],[14,2px]]
+ train-sizing-color:
+ filter: { kind: train }
+ draw:
+ lines:
+ color: purple
+ width: [[5,1.0px],[6,1.0px],[7,1.25px],[11,2.0px],[13,2.5px],[18,3.5px]]
+ outline:
+ width: [[12,1.0px],[13,1.75px],[14,2px]]
+ stack-below-other-transit-later-zooms:
+ filter: { $zoom: { min: 9 } }
+ draw:
+ lines:
+ order: 511
+ subway-sizing:
+ filter: { kind: subway }
+ draw:
+ lines:
+ width: [[9,1px],[11,2px],[12,3px],[13,4px],[15,5px],[16,7px],[17,9px]]
+ outline:
+ #color: [[10,white],[11,black]]
+ width: [[9,0px],[10,0.5px],[12,1.25px],[13,1.5px],[15,2px]]
+ #width: [[12,1.5px],[13,2.0px],[14,2.5px]]
+ light-rail-and-tram-sizing:
+ filter: { kind: [light_rail, tram] }
+ draw:
+ lines:
+ width: [[10,1px],[12,1.5px],[15,2px],[18,3.5px]]
+ outline:
+ #color: [[11,white],[12,black]]
+ width: [[12,0.25px],[13,0.5px],[14,1px],[16,2px]]
+ has-data-color:
+ filter: { colour: true }
+ draw:
+ lines:
+ order: 510
+ width: [[9,2px],[11,3px],[12,4px]]
+ color: function() { return feature.colour || 'purple'; }
+ #outline:
+ #color: function() { if(feature.colour == 'silver') { return 'black'; } else { return [0.,0.,0.,.1]; } }
+ #width: [[12,1.0px],[13,1.75px],[14,2px]]
+ train-with-color:
+ filter: { kind: train }
+ draw:
+ lines:
+ order: 514
+ subway-with-color:
+ filter: { kind: subway }
+ draw:
+ lines:
+ order: 513
+ light-rail-and-tram-with-color:
+ filter: { kind: [light_rail, tram] }
+ draw:
+ lines:
+ order: 512
+ missing-colour:
+ filter: { colour: false }
+ train-missing-color:
+ filter: { kind: train, colour: false }
+ draw:
+ lines:
+ #width: [[5,1.25px],[6,1.75px],[11,2.0px],[13,2.5px],[18,2.5m]]
+ order: 506
+ subway-missing-color:
+ filter: { kind: subway, colour: false }
+ draw:
+ lines:
+ order: 505
+ #outline:
+# width: [[12,1.5px],[13,2.0px],[14,2.5px]]
+ light-rail-and-tram-missing-color:
+ filter: { kind: [light_rail, tram], colour: false }
+ draw:
+ lines:
+ order: 504
+ labels-transit-lines-early:
+ filter: { $zoom: [13,14], ref: true }
+ draw:
+ text:
+ visible: global.sdk_transit_overlay
+ priority: 20
+ text_source: function() { if( feature.ref.length < 4 ) { return feature.ref; } else { return ''; } }
+ font:
+ fill: black
+ size: 12px
+ weight: bold
+ stroke: { color: white, width: 2 }
+ labels-transit-lines:
+ filter: { $zoom: { min: 15 } }
+ draw:
+ text:
+ visible: global.sdk_transit_overlay
+ priority: 20
+ text_source: ref
+ font:
+ fill: black
+ size: 14px
+ weight: bold
+ stroke: { color: white, width: 2 }
+ z19-show-long-route-name:
+ filter: { $zoom: { min: 19 } }
+ draw:
+ text:
+ text_source: function() { return feature.route_name || feature.ref; }
+ font:
+ stroke: { color: white, width: 3px }
+
+# transit-bus-roads:
+# data: { source: mapzen, layer: roads }
+# filter: { is_bus_route: true }
+# draw:
+# lines:
+# visible: global.sdk_transit_overlay
+# interactive: false
+# color: [[13,[0,0,1,0.5]],[15,blue]]
+# width: [[11,0.5px],[12,0.8px],[16,1.25px],[18,1m]]
+# # let roads sort themselves past zoom 14
+# order: 488
+# # but give them all the same outline
+# outline:
+# order: 487
+
+ transit-station-labels:
+ data: { source: mapzen, layer: [pois,landuse] }
+ filter:
+ kind: [station, tram_stop, bus_station, subway_entrance, halt, stop, platform, bus_stop, stop_position ]
+ any:
+ - area: false
+ all:
+ - area: true
+ all:
+ - $geometry: point
+ - kind: true
+ draw:
+ icons:
+ visible: global.sdk_transit_overlay
+ size: [[13, 12px], [16, 16px], [19, 20px]]
+ interactive: true
+ priority: 15
+ text:
+ buffer: 4px
+ move_into_tile: false # preserves text alignment w/icons in JS
+ #anchor: bottom
+ #offset: [[13, [0, 6px]], [16, [0, 8px]], [19, [0, 10px]]] # offset tracks alongside icon size (half icon height)
+ interactive: true
+ priority: 16
+ font:
+ weight: 500
+ fill: black
+ weight: 400
+ size: 11px
+ stroke: { color: white, width: 3 }
+ 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: 12px, stroke: { width: 2 } } } } }
+ poi_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { icons: { text: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } } }
+ poi_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { icons: { text: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } } }
+ station-train-subway:
+ filter: { kind: [station, train-station, train_station] } #, $zoom: { min: 13 }
+ draw:
+ icons:
+ sprite: train-station
+ size: [[13, 12px], [14, 14px], [15, 16px], [17, 20px]]
+ priority: 11
+ text:
+ #offset: [[13, [0, 6px]], [14, [0, 7px]],[15, [0, 8px]], [17, [0, 10px]]]
+ priority: 12
+ low-priority-early:
+ filter: { kind_tile_rank: { min: 3 }, $zoom: { min: 0, max: 12 } }
+ draw:
+ icons:
+ size: [[12, 5px], [14, 6px], [15, 16px]]
+ text:
+ visible: false
+ long-tail:
+ filter: { kind_tile_rank: { min: 10 }, $zoom: [10] }
+ draw:
+ icons:
+ visible: false
+ low-priority-early-z12:
+ filter: { kind_tile_rank: { min: 8 }, $zoom: [12] }
+ draw:
+ icons:
+# visible: false
+ size: [[12, 5px], [14, 6px], [15, 16px]]
+ text:
+ visible: false
+ low-priority-early-z13:
+ filter: { kind_tile_rank: { min: 8 }, $zoom: [13] }
+ draw:
+ icons:
+ #visible: false
+ size: [[12, 8px], [14, 6px], [15, 16px]]
+ text:
+ visible: false
+ low-priority-early-z14:
+ filter: { kind_tile_rank: { min: 7 }, $zoom: [14] }
+ draw:
+ icons:
+ size: [[12, 10px], [14, 11px], [15, 16px]]
+ #visible: false
+ text:
+ visible: false
+ late:
+ filter: { $zoom: { min: 16 } }
+ draw:
+ icons:
+ text:
+ font:
+ weight: 600
+ size: 12px
+ subway-early:
+ filter: { is_subway: true, is_train: false, $zoom: { max: 12 } }
+ draw:
+ icons:
+ visible: false
+ text:
+ visible: false
+ halt-early:
+ filter: { kind: [halt,stop], $zoom: { max: 15 } }
+ draw:
+ icons:
+ size: [[15, 8px], [16, 18px]]
+ visible: global.sdk_transit_overlay
+ sprite: light-rail
+ text:
+ visible: false
+ platform-early:
+ filter: { kind: [platform] }
+ draw:
+ icons:
+ size: [[15, 8px], [16, 18px]]
+ visible: global.sdk_transit_overlay
+ sprite: generic
+ text:
+ visible: false
+ tram-stop-early:
+ filter: { kind: [tram_stop], $zoom: { max: 16 } }
+ draw:
+ icons:
+ size: [[13, 0px], [14, 7px], [15, 8px]]
+ visible: global.sdk_transit_overlay
+ sprite: light-rail
+ text:
+ visible: false
+ tram-stop:
+ filter: { kind: tram_stop, $zoom: { min: 16 } }
+ draw:
+ icons:
+ size: [[16, 12px], [17, 14px], [18, 18px]]
+ sprite: light-rail
+ text:
+ #offset: [[13, [0, 6px]], [16, [0, 9px]]]
+ bus-like-labels:
+ filter:
+ kind: [platform, stop_position]
+ draw:
+ icons:
+ size: [[13, 8px], [16, 10px], [17, 12px], [18, 18px]]
+ sprite: bus-station
+ text:
+ interactive: true
+ font:
+ fill: black
+ size: 12px
+ stroke: { color: white, width: 4 }
+ bus-station-labels:
+ filter:
+ kind: [bus_station, bus_stop]
+ $zoom: { min: 16 }
+ draw:
+ icons:
+ size: [[13, 12px], [16, 18px]]
+ sprite: bus-station
+ priority: 17
+ text:
+ interactive: true
+ priority: 18
+ font:
+ fill: black
+ size: 12px
+ stroke: { color: white, width: 4 }
+ bus_stop:
+ filter:
+ kind: [bus_stop]
+ $zoom: { max: 19 }
+ draw:
+ icons:
+ size: [[13, 8px], [19, 18px]]
+ text:
+ visible: false
+ subway-entrance:
+ filter:
+ kind: [subway_entrance]
+ draw:
+ icons:
+ sprite: subway-entrance
+ size: [[17, 12px], [19, 14px]]
+ priority: 19
+ text:
+ #offset: [[17, [0, 6px]], [19, [0, 7px]]] # offset tracks alongside icon size (half icon height)
+ priority: 20
+ interactive: true
+ text_source: function() { if( feature.ref || feature.name ) { if( feature.ref && feature.name ) { return '[' + feature.ref + ']\n' + feature.name; } else { return feature.name; } } else { return "Entrance"; } }
+ font:
+ fill: black
+ size: 12px
+ stroke: { color: white, width: 4 }
+
+ transit-station-buildings:
+ data: { source: mapzen, layer: [buildings] }
+ filter:
+ any:
+ - landuse_kind: [station]
+ draw:
+ polygons:
+ visible: global.sdk_transit_overlay
+ color: '#bdadbf'
+ order: 500
+ #extrude: function() { return feature.height || 20; }
+ outline:
+ visible: global.sdk_transit_overlay
+ style: lines
+ order: 501
+ color: '#d534df'
+ width: [[14,0.1px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
+ #extrude: function() { return feature.height || 20; }
+
+# transit-platforms:
+# data: { source: mapzen, layer: transit }
+# filter: { kind: platform, $zoom: { min: 15 }, $geometry: [polygon,line] }
+# draw:
+# lines:
+# visible: global.sdk_transit_overlay
+# color: '#bc8f96'
+# width: 10m # something fishy here with the #include syntax in v0.7 tangram?
+# order: 1000 # this selection should sort above basemap, but grey Zinc color still applies
+# outline:
+# order: 1002
+# polygons:
+# visible: global.sdk_transit_overlay
+# order: 1001
+# polygon_geom:
+# filter: { $geometry: polygon }
+# draw:
+# polygons:
+# color: '#bc8f96'
+# outline:
+# color: '#bc8f96'
+# width: [[15,0px],[16,0.5px],[17,1px],[19,2px]]
+# lines:
+# visible: false
+
+ transit-basemap-railway-late:
+ data: { source: mapzen, layer: roads }
+ filter: { kind: rail, $zoom: { min: 16 }, not: { railway: [subway,light_rail,tram] } }
+ draw:
+ lines:
+ visible: global.sdk_transit_overlay
+ interactive: true
+ color: black
+ width: [[15,0.5px],[16,0.75px],[18,1m]]
+ # let roads sort themselves past zoom 14
+ order: 491
+ # but give them all the same outline
+ outline:
+ order: 490
+ service:
+ filter: { service: true }
+ draw:
+ lines:
+ color: black
+ width: [[14,0px],[15,0.4px],[16,0.6px],[18,0.7m]]
debug:
- data: { source: osm }
+ data: { source: mapzen }
draw:
flat_lines:
width: 2px