From: Varun Date: Sat, 17 Sep 2016 05:26:09 +0000 (-0400) Subject: Updated scene file with language, building toggle and public transit toggles X-Git-Tag: submit/tizen_3.0/20161108.012559~28 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8746c4b974231450710bd0de2e3d61eb506549bb;p=platform%2Fcore%2Flocation%2Fmaps-plugin-mapzen.git Updated scene file with language, building toggle and public transit toggles - also updated tangram library with some fixes to cater to these scene toggles Change-Id: If67be0287133c8335548299b584b326b7c5e6827 --- diff --git a/lib/arm/libtangram.so b/lib/arm/libtangram.so index 60116a1..5e4a73d 100755 Binary files a/lib/arm/libtangram.so and b/lib/arm/libtangram.so differ diff --git a/lib/i586/libtangram.so b/lib/i586/libtangram.so index 2f36e9f..7608951 100755 Binary files a/lib/i586/libtangram.so and b/lib/i586/libtangram.so differ diff --git a/scenes/bubble-wrap/bubble-wrap.yaml b/scenes/bubble-wrap/bubble-wrap.yaml index c798ddc..9f1f806 100644 --- a/scenes/bubble-wrap/bubble-wrap.yaml +++ b/scenes/bubble-wrap/bubble-wrap.yaml @@ -1,224 +1,377 @@ 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: @@ -382,13 +535,13 @@ 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 @@ -406,6 +559,10 @@ sources: # 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 @@ -705,7 +862,7 @@ styles: 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.), @@ -764,6 +921,11 @@ styles: 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 @@ -797,7 +959,7 @@ styles: 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 @@ -808,6 +970,13 @@ layers: 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: @@ -940,24 +1109,24 @@ layers: # 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: @@ -982,24 +1151,24 @@ layers: - { $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: @@ -1017,7 +1186,7 @@ layers: 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]] @@ -1043,7 +1212,7 @@ layers: 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 @@ -1051,8 +1220,44 @@ layers: 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: @@ -1079,12 +1284,12 @@ layers: 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: @@ -1098,7 +1303,7 @@ layers: 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 @@ -1112,23 +1317,23 @@ layers: 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: @@ -1140,22 +1345,23 @@ layers: 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' } @@ -1164,7 +1370,7 @@ layers: # 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'] } @@ -1176,7 +1382,7 @@ layers: 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 } @@ -1188,10 +1394,10 @@ layers: 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 } } @@ -1203,12 +1409,12 @@ layers: 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 } } @@ -1219,9 +1425,9 @@ layers: 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: @@ -1237,12 +1443,16 @@ layers: 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] @@ -1254,7 +1464,7 @@ layers: $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] @@ -1266,7 +1476,7 @@ layers: $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] @@ -1278,7 +1488,7 @@ layers: $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] @@ -1291,9 +1501,8 @@ layers: 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 @@ -1305,41 +1514,40 @@ layers: 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 @@ -1350,7 +1558,7 @@ layers: # 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] } @@ -1379,7 +1587,7 @@ layers: 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]] @@ -1398,53 +1606,71 @@ layers: 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 @@ -1455,8 +1681,8 @@ layers: 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 @@ -1467,20 +1693,20 @@ layers: 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 @@ -1490,8 +1716,8 @@ layers: 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 @@ -1501,8 +1727,8 @@ layers: 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 @@ -1512,8 +1738,8 @@ layers: 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 @@ -1523,8 +1749,8 @@ layers: 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 @@ -1541,9 +1767,9 @@ layers: 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: @@ -1581,32 +1807,36 @@ layers: 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: @@ -1639,26 +1869,30 @@ layers: 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 @@ -1669,8 +1903,8 @@ layers: 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 @@ -1680,8 +1914,8 @@ layers: 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 @@ -1691,9 +1925,9 @@ layers: 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] @@ -1736,17 +1970,17 @@ layers: 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] } @@ -1781,13 +2015,17 @@ layers: 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 @@ -1797,8 +2035,8 @@ layers: 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 @@ -1808,8 +2046,8 @@ layers: 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 @@ -1819,8 +2057,8 @@ layers: 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 @@ -1830,8 +2068,8 @@ layers: 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 @@ -1841,8 +2079,8 @@ layers: 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 @@ -1951,8 +2189,8 @@ layers: 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 @@ -1962,8 +2200,8 @@ layers: 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 @@ -1973,8 +2211,8 @@ layers: 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 @@ -1984,8 +2222,8 @@ layers: 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] @@ -2065,8 +2303,8 @@ layers: 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] @@ -2077,8 +2315,8 @@ layers: 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] @@ -2087,7 +2325,7 @@ layers: path: filter: all: - - kind: [path,portage_way] + - kind: [path, portage_way] not: - highway: [steps, track] - man_made: [pier] @@ -2115,7 +2353,7 @@ layers: 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: @@ -2182,8 +2420,8 @@ layers: 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] @@ -2193,15 +2431,15 @@ layers: 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 } @@ -2210,7 +2448,7 @@ layers: 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: @@ -2219,7 +2457,7 @@ layers: 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: @@ -2228,7 +2466,7 @@ layers: - 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: @@ -2260,8 +2498,8 @@ layers: 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 @@ -2279,9 +2517,9 @@ layers: 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: @@ -2292,32 +2530,32 @@ layers: 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: @@ -2408,12 +2646,12 @@ layers: 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: @@ -2437,10 +2675,10 @@ layers: 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) @@ -2448,7 +2686,7 @@ layers: polygons: visible: false order: 329 - color: *building2 + color: global.building2 lines: style: lines order: 330 @@ -2464,52 +2702,48 @@ layers: # 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: @@ -2522,29 +2756,29 @@ layers: # 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: @@ -2554,9 +2788,9 @@ layers: 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 } @@ -2565,7 +2799,7 @@ layers: color: [0.945, 0.898, 0.878] buildings-labels: - data: { source: osm, layer: buildings } + data: { source: mapzen, layer: buildings } filter: all: - { $zoom: { min: 17 } } @@ -2588,16 +2822,18 @@ layers: - { $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 } } } } @@ -2621,9 +2857,9 @@ layers: 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: @@ -2631,24 +2867,25 @@ layers: - { 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: @@ -2660,7 +2897,7 @@ layers: 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 } @@ -2674,10 +2911,13 @@ layers: # 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 } @@ -2693,47 +2933,56 @@ layers: 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: @@ -2745,8 +2994,8 @@ layers: 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 @@ -2757,18 +3006,18 @@ layers: 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} } @@ -2780,18 +3029,18 @@ layers: 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: @@ -2809,18 +3058,18 @@ layers: 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: @@ -2832,13 +3081,13 @@ layers: 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} } @@ -2851,13 +3100,13 @@ layers: 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} } @@ -2870,8 +3119,8 @@ layers: 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 @@ -2882,8 +3131,8 @@ layers: 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 @@ -2894,40 +3143,45 @@ layers: 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: @@ -2935,113 +3189,100 @@ layers: 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 @@ -3050,23 +3291,18 @@ layers: 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 @@ -3075,23 +3311,18 @@ layers: 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 @@ -3102,24 +3333,19 @@ layers: 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 @@ -3128,24 +3354,19 @@ layers: 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 @@ -3154,24 +3375,19 @@ layers: 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 @@ -3182,24 +3398,19 @@ layers: 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 @@ -3208,24 +3419,19 @@ layers: 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 @@ -3234,24 +3440,19 @@ layers: 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 @@ -3271,23 +3472,18 @@ layers: 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 @@ -3297,23 +3493,18 @@ layers: 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 @@ -3324,24 +3515,19 @@ layers: 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 @@ -3352,24 +3538,19 @@ layers: 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 @@ -3382,24 +3563,19 @@ layers: - { 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 @@ -3407,27 +3583,22 @@ layers: 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 @@ -3436,15 +3607,14 @@ layers: 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: @@ -3454,22 +3624,18 @@ layers: 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 @@ -3490,10 +3656,12 @@ layers: 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: @@ -3502,31 +3670,29 @@ layers: 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 @@ -3536,51 +3702,44 @@ layers: 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 @@ -3592,23 +3751,19 @@ layers: - { 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 @@ -3623,40 +3778,34 @@ layers: - $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 @@ -3664,22 +3813,18 @@ layers: 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 @@ -3687,22 +3832,18 @@ layers: 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 @@ -3723,7 +3864,8 @@ layers: 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 @@ -3735,62 +3877,59 @@ layers: 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: @@ -3802,50 +3941,43 @@ layers: - $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 @@ -3853,22 +3985,18 @@ layers: 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 @@ -3893,10 +4021,12 @@ layers: - { 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: @@ -3904,10 +4034,12 @@ layers: - { 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: @@ -3915,10 +4047,12 @@ layers: - { 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: @@ -3932,10 +4066,12 @@ layers: 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 } } @@ -3943,15 +4079,16 @@ layers: 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: @@ -3959,15 +4096,17 @@ layers: 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: @@ -3975,6 +4114,7 @@ layers: priority: 11 font: size: 16px + #stroke: { color: global.text_stroke, width: 4 } state_capital: filter: { state_capital: yes } draw: @@ -3982,15 +4122,17 @@ layers: 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: @@ -3998,6 +4140,7 @@ layers: priority: 14 font: size: 14px + #stroke: { color: global.text_stroke, width: 4 } populated-places-osm-z12: filter: @@ -4019,10 +4162,12 @@ layers: 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: @@ -4030,10 +4175,12 @@ layers: - { 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: @@ -4041,10 +4188,12 @@ layers: - { 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: @@ -4052,10 +4201,12 @@ layers: - { 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: @@ -4069,10 +4220,12 @@ layers: 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 } } @@ -4081,16 +4234,17 @@ layers: 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: @@ -4098,15 +4252,17 @@ layers: 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: @@ -4114,15 +4270,17 @@ layers: 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: @@ -4130,6 +4288,7 @@ layers: priority: 15 font: size: 14px + #stroke: { color: global.text_stroke, width: 4 } populated-places-osm-z13-z14: filter: @@ -4143,10 +4302,10 @@ layers: 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] @@ -4169,10 +4328,11 @@ layers: - { 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: @@ -4180,10 +4340,11 @@ layers: - { 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: @@ -4196,6 +4357,7 @@ layers: text-blend-order: font: size: 12px + #stroke: { color: global.text_stroke, width: 4 } populated-places-osm-z13-z14-no-population: filter: @@ -4209,10 +4371,11 @@ layers: 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 } } @@ -4220,7 +4383,7 @@ layers: text-blend-order: anchor: center font: - fill: *text_fill + fill: global.text_fill weight: 400 z13places-1-ne: @@ -4236,18 +4399,20 @@ layers: 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: @@ -4267,13 +4432,13 @@ layers: 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: @@ -4292,13 +4457,13 @@ layers: 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: @@ -4317,13 +4482,13 @@ layers: 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: @@ -4342,13 +4507,13 @@ layers: 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: @@ -4367,13 +4532,13 @@ layers: 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: @@ -4399,109 +4564,84 @@ layers: - 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 } @@ -4523,55 +4663,58 @@ layers: 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: @@ -4593,45 +4736,48 @@ layers: - { $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 } } @@ -4645,73 +4791,113 @@ layers: - { $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: @@ -4730,16 +4916,16 @@ layers: - { $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: @@ -4762,23 +4948,22 @@ layers: 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: @@ -4799,26 +4984,25 @@ layers: - { $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: @@ -4834,21 +5018,21 @@ layers: - { $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: @@ -4868,23 +5052,23 @@ layers: - { $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: @@ -4895,30 +5079,135 @@ layers: - { $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 } } @@ -4932,21 +5221,20 @@ layers: # 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 } } @@ -4959,111 +5247,128 @@ layers: # 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: @@ -5074,50 +5379,17 @@ layers: 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: @@ -5126,51 +5398,77 @@ layers: 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: @@ -5207,7 +5505,7 @@ layers: 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] } @@ -5239,10 +5537,10 @@ layers: - { $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 } } @@ -5297,9 +5595,12 @@ layers: 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 } } @@ -5321,9 +5622,9 @@ layers: 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 } } @@ -5342,6 +5643,9 @@ layers: 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 } } @@ -5369,15 +5673,15 @@ layers: 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 } } @@ -5406,7 +5710,7 @@ layers: 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] } @@ -5444,6 +5748,9 @@ layers: 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 } } @@ -5457,7 +5764,7 @@ layers: 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] } @@ -5474,6 +5781,9 @@ layers: 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 } } @@ -5492,38 +5802,47 @@ layers: 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] } @@ -5531,12 +5850,18 @@ layers: 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 } } @@ -5552,6 +5877,13 @@ layers: 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 } } @@ -5564,6 +5896,12 @@ layers: 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 } } @@ -5577,10 +5915,51 @@ layers: 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 @@ -5606,9 +5985,10 @@ layers: 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 @@ -5627,14 +6007,15 @@ layers: 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 @@ -5647,13 +6028,13 @@ layers: 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] } @@ -5676,35 +6057,35 @@ layers: 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 @@ -5727,64 +6108,68 @@ layers: - { $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: @@ -5803,9 +6188,9 @@ layers: - { $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]]] @@ -5838,7 +6223,7 @@ layers: - { $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] @@ -5870,7 +6255,7 @@ layers: 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: @@ -5878,7 +6263,7 @@ layers: 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: @@ -5900,7 +6285,7 @@ layers: 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: @@ -5913,11 +6298,11 @@ layers: 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: @@ -5931,14 +6316,14 @@ layers: - { $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 @@ -5964,13 +6349,13 @@ layers: - { $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: @@ -5978,7 +6363,7 @@ layers: draw: dots2: color: [0.855,0.748,0.667] - visible: *grey1_v + visible: global.grey1_v golf_course: filter: kind: golf_course @@ -6018,13 +6403,13 @@ layers: 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: @@ -6032,7 +6417,7 @@ layers: draw: dots2: color: [0.955,0.752,0.650] - visible: *grey1_v + visible: global.grey1_v stadium: filter: kind: stadium @@ -6052,8 +6437,8 @@ layers: 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: @@ -6096,7 +6481,7 @@ layers: - maze draw: dots2: - color: *grey10 + color: global.grey10 visible: true beach: filter: @@ -6114,10 +6499,10 @@ layers: - { $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] @@ -6133,12 +6518,12 @@ layers: 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: @@ -6146,13 +6531,22 @@ layers: 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: @@ -6165,7 +6559,7 @@ layers: draw: dots2: color: [0.910,0.972,1.000] - visible: *grey1_v + visible: global.grey1_v playground: filter: kind: playground @@ -6192,8 +6586,32 @@ layers: 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: @@ -6213,14 +6631,14 @@ layers: - 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 @@ -6247,7 +6665,7 @@ layers: - carousel draw: dots2: - color: *grey12 + color: global.grey12 visible: true minor-zoo-landuse: filter: @@ -6258,22 +6676,417 @@ layers: - 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