global:
#ux/ui
- #
- # missing language
- # missing transit overlay
- #
+ 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_boundary_lines: |
+ function() {
+ var right = (global.ux_language && feature['name:right:'+global.ux_language]) || (global.ux_language_fallback && feature['name:right:'+global.ux_language_fallback]) || feature['name:right'];
+ var left = (global.ux_language && feature['name:left:'+global.ux_language]) || (global.ux_language_fallback && feature['name:left:'+global.ux_language_fallback]) || feature['name:left'];
+ if( right && left ) {
+ //if( right.includes(' ') || left.includes(' ') ) {
+ return left + " - " + right;
+ //} else {
+ // return right + '\n' + left;
+ //}
+ } else {
+ 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'] || '';
+ name = name.split(' ').join('\n');
+ 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'] || '';
+ name = name.split(' ').join('\n');
+ return name.split('').join(' ');
+ }
+ ux_language_text_source_continent_stacked_only: |
+ 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('\n');
+ }
+ 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'] || '';
+ name = name.split(' ').join('\n');
+ return name.split('').join(' ');
+ }
+ ux_language_text_source_road_ref_and_name: |
+ 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;
+
+ /*
+ 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() {
+ // 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;
+
+ /*
+ 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.
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
+ #
+ # SHIELDS
+ sdk_shield_color: black
+ sdk_shield_text_color: white
+ #
+ # enable interactivity for key features
+ interactive: true
+ #
# default order for basemap features
feature_order: function() { return feature.sort_rank; }
+ building_extrude: true
#
# TODO: YAML based globals below will move into this Tangram globals block
- &icon_visible_landuse_green true #this needs work
- &text_visible_landuse_green true
- &label_visible_poi_landuse true
- - &icon_visible_poi_landuse false #false for default
- - &text_visible_poi_landuse false #false for default
+ - &icon_visible_poi_landuse true #false for default
+ - &text_visible_poi_landuse true #false for default
- &label_visible_poi_landuse_e true
- - &icon_visible_poi_landuse_e false #false for default
+ - &icon_visible_poi_landuse_e true #false for default
- &text_visible_poi_landuse_e true
- - &label_visible_station false #false for default
- - &icon_visible_station false #false for default
- - &text_visible_station false #false for default
+ - &label_visible_station true #false for default
+ - &icon_visible_station true #false for default
+ - &text_visible_station true #false for default
- &text_visible_highway true
- - &text_visible_highway_e false #false for default
+ - &text_visible_highway_e true #false for default
- &text_visible_trunk_primary true
- - &text_visible_trunk_primary_e2 false #false for default
- - &text_visible_trunk_primary_e false #false for default
+ - &text_visible_trunk_primary_e2 true #false for default
+ - &text_visible_trunk_primary_e true #false for default
- &text_visible_secondary true
- - &text_visible_secondary_e false #false for default
+ - &text_visible_secondary_e true #false for default
- &text_visible_tertiary true
- - &text_visible_tertiary_e false #false for default
+ - &text_visible_tertiary_e true #false for default
- &text_visible_minor_road true
- &text_visible_minor_road_e true
- &text_visible_service_road true
- &text_visible_piste true
- &text_visible_steps true
- &text_visible_aerialway true
- - &text_visible_shields true
+ - &text_visible_shields false
- &text_visible_exits true
- - &text_visible_exits_e false #false for default
+ - &text_visible_exits_e true #false for default
- &text_visible_airport_gate true
settings:
# animated: true
fonts:
+ Open Sans:
+ - weight: 300 # Light
+ url: fonts/OpenSans-Light.woff
+ - weight: normal # Regular
+ url: fonts/OpenSans-Regular.woff
+ - weight: normal # Regular
+ style: italic
+ url: fonts/OpenSans-Italic.woff
+ - weight: 600 # Semi Bold
+ url: fonts/OpenSans-Semibold.woff
+ - weight: 600 # Semi Bold
+ style: italic
+ url: fonts/OpenSans-SemiboldItalic.woff
+ - weight: bold
+ url: fonts/OpenSans-Bold.woff
Montserrat:
- url: https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff
+ - weight: normal
+ #url: https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff
+ url: fonts/Montserrat-Regular.woff
textures:
pois:
- url: images/poi_icons_18@2x.png
+ url: images/walkabout@2x.png
filtering: mipmap
sprites:
# define sprites: [x origin, y origin, width, height]
- 'US:CA_1char': [220, 606, 82, 92]
- 'US:CA_2char': [120, 606, 94, 94]
- 'US:CA_3char': [0, 606, 112, 92]
- 'US:CA_4char': [808, 510, 124, 92]
- 'US:CA_5char': [672, 510, 128, 92]
- 'US:I_1char': [0, 710, 90, 100]
- 'US:I_2char': [138, 314, 102, 102]
- 'US:I_3char': [0, 314, 132, 100]
- 'US:I_4char': [756, 210, 140, 100]
- 'US:I_5char': [596, 210, 152, 100]
- 'US:NY_1char': [768, 418, 72, 88]
- 'US:NY_2char': [112, 418, 88, 88]
- 'US:NY_3char': [0, 418, 104, 86]
- 'US:NY_4char': [896, 314, 116, 86]
- 'US:NY_5char': [768, 314, 120, 86]
- 'US:PA_1char': [688, 418, 72, 88]
- 'US:PA_2char': [592, 418, 88, 88]
- 'US:PA_3char': [472, 418, 112, 88]
- 'US:PA_4char': [344, 418, 120, 88]
- 'US:PA_5char': [208, 418, 128, 88]
- 'US:US_1char': [900, 606, 88, 94]
- 'US:US_2char': [788, 608, 106, 94]
- 'US:US_3char': [642, 606, 138, 100]
- 'US:US_4char': [478, 606, 158, 100]
- 'US:US_5char': [308, 606, 164, 100]
+ 'US:CA-1char': [688, 786, 82, 92]
+ 'US:CA-2char': [588, 786, 92, 92]
+ 'US:CA-3char': [468, 786, 112, 92]
+ 'US:CA-4char': [336, 786, 124, 92]
+ 'US:CA-5char': [200, 786, 128, 92]
+ 'US:I-1char': [514, 890, 90, 100]
+ 'US:I-2char': [0, 502, 102, 102]
+ 'US:I-3char': [856, 370, 134, 100]
+ 'US:I-4char': [708, 370, 140, 100]
+ 'US:I-5char': [548, 370, 152, 100]
+ 'US:NY-1char': [656, 606, 72, 88]
+ 'US:NY-2char': [0, 606, 88, 88]
+ 'US:NY-3char': [880, 502, 104, 86]
+ 'US:NY-4char': [756, 502, 116, 86]
+ 'US:NY-5char': [628, 502, 120, 86]
+ 'US:PA-1char': [576, 606, 72, 88]
+ 'US:PA-2char': [480, 606, 88, 88]
+ 'US:PA-3char': [360, 606, 112, 88]
+ 'US:PA-4char': [232, 606, 120, 88]
+ 'US:PA-5char': [96, 606, 128, 88]
+ 'US:US-1char': [420, 890, 88, 94]
+ 'US:US-2char': [308, 892, 106, 94]
+ 'US:US-3char': [162, 890, 136, 100]
+ 'US:US-4char': [0, 890, 156, 100]
+ 'US:US-5char': [776, 786, 164, 100]
airport: [952, 0, 38, 38]
aerodrome: [952, 0, 38, 38]
- allotments: [46, 814, 38, 38]
- aquarium: [916, 168, 38, 38]
- art-gallery: [824, 168, 38, 38]
- art_gallery: [824, 168, 38, 38]
- art: [824, 168, 38, 38]
- athletics-sports: [368, 168, 38, 38]
- pitch: [368, 168, 38, 38]
- athletic_sports: [368, 168, 38, 38]
- recreation_ground: [368, 168, 38, 38]
- atm: [92, 168, 38, 38]
- attraction: [550, 210, 38, 38]
- automotive-shop: [184, 168, 38, 38]
- car_repair: [184, 168, 38, 38]
- automotive: [184, 168, 38, 38]
- tyres: [184, 168, 38, 38]
- bakery: [732, 168, 38, 38]
- pastry: [732, 168, 38, 38]
- chocolate: [732, 168, 38, 38]
- bank: [138, 168, 38, 38]
- bar: [414, 168, 38, 38]
- pub: [414, 168, 38, 38]
- baseball-field: [690, 84, 38, 38]
- basketball-court: [644, 84, 38, 38]
- battlefield: [324, 710, 38, 38]
- bbq: [738, 710, 38, 38]
- beach: [828, 84, 38, 38]
- beach-resort: [232, 710, 38, 38]
- beach_resort: [232, 710, 38, 38]
- beer-garden: [458, 210, 38, 38]
- biergarten: [458, 210, 38, 38]
- brewery: [458, 210, 38, 38]
+ allotments: [460, 252, 38, 38]
+ aquarium: [824, 168, 38, 38]
+ atm: [0, 168, 38, 38]
+ attraction: [458, 210, 38, 38]
+ bakery: [640, 168, 38, 38]
+ bank: [46, 168, 38, 38]
+ category-predicate-money: [46, 168, 38, 38]
+ bar: [322, 168, 38, 38]
+ pub: [322, 168, 38, 38]
+ category-predicate-drink: [322, 168, 38, 38]
+ baseball: [552, 84, 38, 38]
+ basketball: [506, 84, 38, 38]
+ battlefield: [732, 210, 38, 38]
+ bbq: [138, 252, 38, 38]
+ beach: [690, 84, 38, 38]
+ beach_resort: [640, 210, 38, 38]
bench: [630, 0, 38, 38]
- bicycle-parking: [828, 126, 38, 38]
- bike-shop: [46, 168, 38, 38]
- bicycle: [46, 168, 38, 38]
- bicycle_rental: [46, 168, 38, 38]
- bike: [46, 168, 38, 38]
- bike_shop: [46, 168, 38, 38]
- boat-ferry: [906, 0, 38, 38]
- ferry_terminal: [906, 0, 38, 38]
- ferry-boat: [906, 0, 38, 38]
- ferry: [906, 0, 38, 38]
- boat-ramp: [276, 84, 38, 38]
- slipway: [276, 84, 38, 38]
- boat_ramp: [276, 84, 38, 38]
- boat-rental: [92, 814, 38, 38]
- boat_rental: [92, 814, 38, 38]
- bookstore: [0, 168, 38, 38]
- books: [0, 168, 38, 38]
- bridge: [92, 126, 38, 38]
- buddhism: [966, 84, 38, 38]
- building: [598, 168, 38, 38]
- auditorium: [598, 168, 38, 38]
- terminal: [598, 168, 38, 38]
- hangar: [598, 168, 38, 38]
- retirement_home: [598, 168, 38, 38]
- manor: [598, 168, 38, 38]
- recreation_center: [598, 168, 38, 38]
- apartments: [598, 168, 38, 38]
- burger: [320, 210, 38, 38]
- fast_food: [320, 210, 38, 38]
- bus-station: [860, 0, 38, 38]
- bus_stop: [860, 0, 38, 38]
+ bicycle: [964, 126, 38, 38]
+ bicycle_rental: [964, 126, 38, 38]
+ bicycle_rental_station: [964, 126, 38, 38]
+ bicycle_parking: [736, 126, 38, 38]
+ biergarten: [366, 210, 38, 38]
+ brewery: [366, 210, 38, 38]
+ boat_rental: [506, 252, 38, 38]
+ books: [918, 126, 38, 38]
+ bridge: [966, 84, 38, 38]
+ buddhist: [828, 84, 38, 38]
+ building: [506, 168, 38, 38]
+ hangar: [506, 168, 38, 38]
+ nursing_home: [506, 168, 38, 38]
+ manor: [506, 168, 38, 38]
+ apartments: [506, 168, 38, 38]
+ care_home: [506, 168, 38, 38]
bus_station: [860, 0, 38, 38]
- butcher: [46, 84, 38, 38]
- campground: [0, 126, 38, 38]
- camp_site: [0, 126, 38, 38]
- caravan_site: [0, 126, 38, 38]
- candy-store: [182, 210, 38, 38]
- candy: [182, 210, 38, 38]
- confectionery: [182, 210, 38, 38]
- capital-l: [652, 814, 16, 16]
- capital-m: [632, 814, 12, 12]
- capital-s: [612, 814, 10, 10]
- capital-xl: [676, 814, 20, 20]
- capital-xs: [598, 814, 8, 8]
- car-dealership: [964, 126, 38, 38]
- car: [964, 126, 38, 38]
- caravan-site: [462, 710, 38, 38]
- caravan_site: [462, 710, 38, 38]
- castle: [506, 42, 38, 38]
- fort: [506, 42, 38, 38]
- cemetery: [920, 84, 38, 38]
- grave_yard: [920, 84, 38, 38]
- church: [414, 126, 38, 38]
- clothing-store: [0, 210, 38, 38]
- clothes: [0, 210, 38, 38]
- chothing-store: [0, 210, 38, 38]
- "clothesstore": [0, 210, 38, 38]
- fashion: [0, 210, 38, 38]
- coffee-shop: [686, 168, 38, 38]
- cafe: [686, 168, 38, 38]
- college-university: [46, 210, 38, 38]
- university: [46, 210, 38, 38]
- college: [46, 210, 38, 38]
- convenience-store: [184, 84, 38, 38]
- convenience: [184, 84, 38, 38]
- convenience_store: [184, 84, 38, 38]
- beverages: [184, 84, 38, 38]
- county_shield_1char: [848, 418, 72, 72]
- county_shield_2char: [672, 314, 88, 72]
- county_shield_3char: [560, 314, 104, 72]
- county_shield_4char: [416, 314, 136, 72]
- county_shield_5char: [248, 314, 160, 72]
+ bus_stop: [860, 0, 38, 38]
+ butcher: [0, 84, 38, 38]
+ cafe: [594, 168, 38, 38]
+ camp_site: [874, 84, 38, 38]
+ capital-l: [268, 294, 32, 32]
+ capital-m: [236, 294, 24, 24]
+ capital-s: [206, 294, 20, 20]
+ capital-xl: [356, 294, 40, 40]
+ capital-xs: [184, 294, 16, 16]
+ car: [872, 126, 38, 38]
+ category-namespace-mobility: [872, 126, 38, 38]
+ category-predicate-mobility: [872, 126, 38, 38]
+ car_repair: [92, 168, 38, 38]
+ car_sharing: [676, 0, 38, 38]
+ caravan_site: [870, 210, 38, 38]
+ castle: [460, 42, 38, 38]
+ fort: [460, 42, 38, 38]
+ cemetery: [782, 84, 38, 38]
+ grave_yard: [782, 84, 38, 38]
+ christian: [276, 126, 38, 38]
+ cinema: [870, 168, 38, 38]
+ clothes: [916, 168, 38, 38]
+ fashion: [916, 168, 38, 38]
+ college: [962, 168, 38, 38]
+ university: [962, 168, 38, 38]
+ confectionery: [90, 210, 38, 38]
+ convenience: [138, 84, 38, 38]
+ county_shield-1char: [736, 606, 72, 72]
+ county_shield-2char: [532, 502, 88, 72]
+ county_shield-3char: [420, 502, 104, 72]
+ county_shield-4char: [276, 502, 136, 72]
+ county_shield-5char: [108, 502, 160, 72]
courthouse: [446, 0, 38, 38]
+ dam: [966, 252, 38, 38]
dentist: [266, 0, 38, 38]
- department-store: [918, 126, 38, 38]
- department_store: [918, 126, 38, 38]
+ department_store: [826, 126, 38, 38]
doctors: [224, 0, 38, 38]
clinic: [224, 0, 38, 38]
- dog-park: [646, 710, 38, 38]
- dog_park: [646, 710, 38, 38]
- dog_run: [646, 710, 38, 38]
- dog-run: [646, 710, 38, 38]
- dot-black: [506, 814, 38, 38]
- dot-white: [460, 814, 38, 38]
- drinking-water: [412, 210, 38, 38]
- dry-cleaning: [138, 84, 38, 38]
- dry_cleaning: [138, 84, 38, 38]
- electronics-store: [782, 126, 38, 38]
- electronics: [782, 126, 38, 38]
- computer: [782, 126, 38, 38]
- factory: [552, 168, 38, 38]
- industrial: [552, 168, 38, 38]
- chimney: [552, 168, 38, 38]
- sub_station: [552, 168, 38, 38]
- substation: [552, 168, 38, 38]
- wastewater_plant: [552, 168, 38, 38]
- works: [552, 168, 38, 38]
- water_works: [552, 168, 38, 38]
- plant: [552, 168, 38, 38]
- generator: [552, 168, 38, 38]
- fire-station: [400, 0, 38, 38]
+ dog_park: [46, 252, 38, 38]
+ dot-black: [92, 294, 38, 38]
+ dot-white: [920, 252, 38, 38]
+ drinking_water: [320, 210, 38, 38]
+ dry_cleaning: [92, 84, 38, 38]
+ electronics: [690, 126, 38, 38]
+ computer: [690, 126, 38, 38]
+ enclosure: [0, 294, 38, 38]
+ estate_agent: [184, 42, 38, 38]
+ factory: [460, 168, 38, 38]
+ industrial: [460, 168, 38, 38]
+ chimney: [460, 168, 38, 38]
+ substation: [460, 168, 38, 38]
+ wastewater_plant: [460, 168, 38, 38]
+ works: [460, 168, 38, 38]
+ water_works: [460, 168, 38, 38]
+ plant: [460, 168, 38, 38]
+ generator: [460, 168, 38, 38]
+ category-predicate-industry: [460, 168, 38, 38]
+ fast_food: [228, 210, 38, 38]
+ ferry: [906, 0, 38, 38]
+ ferry_terminal: [906, 0, 38, 38]
fire_station: [400, 0, 38, 38]
- firepit: [600, 710, 38, 38]
- fishing-area: [508, 710, 38, 38]
- fishing_area: [508, 710, 38, 38]
- fitness: [0, 84, 38, 38]
- gym: [0, 84, 38, 38]
- fitness_center: [0, 84, 38, 38]
- flower-shop: [368, 126, 38, 38]
- florist: [368, 126, 38, 38]
- forest: [228, 210, 38, 38]
- conservation: [228, 210, 38, 38]
- nature_reserve: [228, 210, 38, 38]
- fountain: [506, 126, 38, 38]
- garden: [874, 84, 38, 38]
- gas: [230, 814, 38, 38]
- gas_canister: [230, 814, 38, 38]
- gas-station: [136, 210, 38, 38]
- fuel: [136, 210, 38, 38]
- generic: [552, 814, 38, 38]
- subway_entrance: [552, 814, 38, 38]
- generic_shield_1char: [592, 510, 72, 72]
- generic_shield_2char: [488, 510, 98, 72]
- generic_shield_3char: [348, 510, 132, 72]
- generic_shield_4char: [188, 510, 152, 72]
- generic_shield_5char: [0, 510, 180, 72]
- geyser: [186, 710, 38, 38]
- gift-shop: [322, 126, 38, 38]
- gift: [322, 126, 38, 38]
- golf-course: [598, 84, 38, 38]
- golf_course: [598, 84, 38, 38]
- government-building: [322, 168, 38, 38]
- townhall: [322, 168, 38, 38]
- public_building: [322, 168, 38, 38]
- embassy: [322, 168, 38, 38]
- grocery-store: [736, 126, 38, 38]
- supermarket: [736, 126, 38, 38]
- health_food: [736, 126, 38, 38]
- greengrocer: [736, 126, 38, 38]
- harbor-marina: [276, 168, 38, 38]
- marina: [276, 168, 38, 38]
- harbor: [276, 168, 38, 38]
- harbor_marina: [276, 168, 38, 38]
- dock: [276, 168, 38, 38]
- mooring: [276, 168, 38, 38]
- hardware-store: [966, 42, 38, 38]
- hardware: [966, 42, 38, 38]
- doityourself: [966, 42, 38, 38]
- paint: [966, 42, 38, 38]
- historic-site: [276, 126, 38, 38]
+ firepit: [0, 252, 38, 38]
+ fishing: [916, 210, 38, 38]
+ fishing_area: [916, 210, 38, 38]
+ fitness: [966, 42, 38, 38]
+ fitness_station: [966, 42, 38, 38]
+ florist: [230, 126, 38, 38]
+ forest: [136, 210, 38, 38]
+ natural_forest: [136, 210, 38, 38]
+ nature_reserve: [136, 210, 38, 38]
+ conservation: [136, 210, 38, 38]
+ protected_area: [136, 210, 38, 38]
+ grass: [136, 210, 38, 38]
+ fountain: [368, 126, 38, 38]
+ fuel: [44, 210, 38, 38]
+ gallery: [732, 168, 38, 38]
+ garden: [736, 84, 38, 38]
+ gas_canister: [644, 252, 38, 38]
+ gate: [46, 294, 38, 38]
+ generic: [138, 294, 38, 38]
+ category-namespace-other: [138, 294, 38, 38]
+ category-predicate-addressing: [138, 294, 38, 38]
+ generic_shield-1char: [404, 698, 72, 72]
+ generic_shield-2char: [300, 698, 98, 72]
+ generic_shield-3char: [160, 698, 132, 72]
+ generic_shield-4char: [0, 698, 152, 72]
+ generic_shield-5char: [816, 606, 180, 72]
+ geyser: [594, 210, 38, 38]
+ gift: [184, 126, 38, 38]
+ golf_course: [460, 84, 38, 38]
+ government: [230, 168, 38, 38]
+ townhall: [230, 168, 38, 38]
+ public: [230, 168, 38, 38]
+ embassy: [230, 168, 38, 38]
+ category-predicate-civic: [230, 168, 38, 38]
+ hairdresser: [92, 42, 38, 38]
+ hardware: [920, 42, 38, 38]
+ doityourself: [920, 42, 38, 38]
+ painter: [920, 42, 38, 38]
+ historical: [138, 126, 38, 38]
hospital: [182, 0, 38, 38]
- hot-spring: [460, 84, 38, 38]
- hot_spring: [460, 84, 38, 38]
+ category-namespace-health: [182, 0, 38, 38]
+ category-predicate-health: [182, 0, 38, 38]
+ hot_spring: [322, 84, 38, 38]
hotel: [814, 0, 38, 38]
motel: [814, 0, 38, 38]
hostel: [814, 0, 38, 38]
- hunting: [140, 710, 38, 38]
- ice-cream-shop: [504, 210, 38, 38]
- ice_cream: [504, 210, 38, 38]
- information: [96, 710, 38, 38]
- info: [96, 710, 38, 38]
- jewelry-store: [828, 42, 38, 38]
- jewelry: [828, 42, 38, 38]
- jewelry_store: [828, 42, 38, 38]
+ category-predicate-sleep: [814, 0, 38, 38]
+ hunting: [548, 210, 38, 38]
+ ice_cream: [412, 210, 38, 38]
+ information: [504, 210, 38, 38]
+ jewelry: [782, 42, 38, 38]
+ jewish: [44, 0, 38, 38]
landmark: [354, 0, 38, 38]
memorial: [354, 0, 38, 38]
monument: [354, 0, 38, 38]
- wayside_shrine: [354, 0, 38, 38]
tower: [354, 0, 38, 38]
beacon: [354, 0, 38, 38]
- laundry: [782, 42, 38, 38]
- dry_cleaning: [782, 42, 38, 38]
+ laundry: [736, 42, 38, 38]
library: [0, 0, 38, 38]
- light-rail: [768, 0, 38, 38]
light_rail: [768, 0, 38, 38]
tram_stop: [768, 0, 38, 38]
- lighthouse: [414, 84, 38, 38]
- liquor-store: [690, 126, 38, 38]
- alcohol: [690, 126, 38, 38]
- liquor: [690, 126, 38, 38]
- mall: [736, 42, 38, 38]
- market: [690, 42, 38, 38]
- variety_store: [690, 42, 38, 38]
- boutique: [690, 42, 38, 38]
- dairy: [690, 42, 38, 38]
- retail: [690, 42, 38, 38]
- mine: [874, 42, 38, 38]
- mobile-phone-shop: [598, 42, 38, 38]
- mobile_phone: [598, 42, 38, 38]
- mosque: [90, 0, 38, 38]
- motorcycle: [876, 710, 38, 38]
- mountain: [368, 84, 38, 38]
- peak: [368, 84, 38, 38]
- movie-theatre: [962, 168, 38, 38]
- cinema: [962, 168, 38, 38]
- movie-theater: [962, 168, 38, 38]
- museum: [230, 126, 38, 38]
- observatory: [230, 126, 38, 38]
- music-store: [460, 42, 38, 38]
- music: [460, 42, 38, 38]
- musical_instrument: [460, 42, 38, 38]
- newsstand: [414, 42, 38, 38]
- kiosk: [414, 42, 38, 38]
- newsagent: [414, 42, 38, 38]
- observatory: [184, 814, 38, 38]
- office: [782, 84, 38, 38]
- insurance: [782, 84, 38, 38]
- company: [782, 84, 38, 38]
- optical-shop: [368, 42, 38, 38]
- optician: [368, 42, 38, 38]
- optical_shop: [368, 42, 38, 38]
- outdoor: [322, 814, 38, 38]
- park: [460, 126, 38, 38]
- parking: [874, 126, 38, 38]
- performing-arts: [778, 168, 38, 38]
- theater: [778, 168, 38, 38]
- theatre: [778, 168, 38, 38]
- pet-store: [322, 42, 38, 38]
- pet: [322, 42, 38, 38]
- pet-service: [322, 42, 38, 38]
- pet_store: [322, 42, 38, 38]
- pharmacy: [92, 84, 38, 38]
- chemist: [92, 84, 38, 38]
- photography-lab: [276, 42, 38, 38]
- photo_studio: [276, 42, 38, 38]
- photography_lab: [276, 42, 38, 38]
- photographer: [276, 42, 38, 38]
- picnic-spot: [830, 710, 38, 38]
- picnic_site: [830, 710, 38, 38]
- picnic_table: [830, 710, 38, 38]
+ lighthouse: [276, 84, 38, 38]
+ liquor: [598, 126, 38, 38]
+ alcohol: [598, 126, 38, 38]
+ mall: [690, 42, 38, 38]
+ marina: [184, 168, 38, 38]
+ dock: [184, 168, 38, 38]
+ mine: [828, 42, 38, 38]
+ mobile_phone: [552, 42, 38, 38]
+ motorcycle: [276, 252, 38, 38]
+ museum: [92, 126, 38, 38]
+ music: [414, 42, 38, 38]
+ muslim: [90, 0, 38, 38]
+ newspaper: [368, 42, 38, 38]
+ kiosk: [368, 42, 38, 38]
+ observatory: [598, 252, 38, 38]
+ office: [644, 84, 38, 38]
+ insurance: [644, 84, 38, 38]
+ company: [644, 84, 38, 38]
+ category-predicate-service: [644, 84, 38, 38]
+ optician: [322, 42, 38, 38]
+ outdoor: [736, 252, 38, 38]
+ park: [322, 126, 38, 38]
+ national_park: [322, 126, 38, 38]
+ battlefield: [322, 126, 38, 38]
+ protected_area: [322, 126, 38, 38]
+ category-predicate-nature: [322, 126, 38, 38]
+ parking: [782, 126, 38, 38]
+ peak: [230, 84, 38, 38]
+ pet: [276, 42, 38, 38]
+ pharmacy: [46, 84, 38, 38]
+ photographic_laboratory: [230, 42, 38, 38]
+ photographer: [230, 42, 38, 38]
+ picnic_site: [230, 252, 38, 38]
+ picnic_table: [230, 252, 38, 38]
pier: [722, 0, 38, 38]
- playground: [552, 42, 38, 38]
+ place_of_worship: [368, 168, 38, 38]
+ chapel: [368, 168, 38, 38]
+ wayside_shrine: [368, 168, 38, 38]
+ category-predicate-religion: [368, 168, 38, 38]
+ playground: [506, 42, 38, 38]
police: [308, 0, 38, 38]
- pool: [322, 84, 38, 38]
- swimming_pool: [322, 84, 38, 38]
- post-office: [506, 168, 38, 38]
- post_office: [506, 168, 38, 38]
- quarry: [920, 42, 38, 38]
- mineshaft: [920, 42, 38, 38]
- adit: [920, 42, 38, 38]
- ranger-station: [784, 710, 38, 38]
- ranger_station: [784, 710, 38, 38]
- real-estate: [230, 42, 38, 38]
- estate_agent: [230, 42, 38, 38]
- real_estate: [230, 42, 38, 38]
- recreation-track: [968, 710, 38, 38]
- recreation_track: [968, 710, 38, 38]
- recycling-facility: [184, 42, 38, 38]
- recycling: [184, 42, 38, 38]
- rental-car: [676, 0, 38, 38]
- car_rental: [676, 0, 38, 38]
- car_sharing: [676, 0, 38, 38]
- restaurant: [274, 210, 38, 38]
- deli: [274, 210, 38, 38]
+ post_office: [414, 168, 38, 38]
+ quarry: [874, 42, 38, 38]
+ mineshaft: [874, 42, 38, 38]
+ adit: [874, 42, 38, 38]
+ ranger_station: [184, 252, 38, 38]
+ recreation_track: [368, 252, 38, 38]
+ recycling: [138, 42, 38, 38]
+ restaurant: [182, 210, 38, 38]
+ category-namespace-eat_and_drink: [182, 210, 38, 38]
+ category-predicate-eat: [182, 210, 38, 38]
+ retail: [644, 42, 38, 38]
+ store: [644, 42, 38, 38]
+ category-namespace-shop_and_service: [644, 42, 38, 38]
+ category-predicate-shop: [644, 42, 38, 38]
ruin: [584, 0, 38, 38]
ruins: [584, 0, 38, 38]
archaeological_site: [584, 0, 38, 38]
- salon-barber: [138, 42, 38, 38]
- hairdresser: [138, 42, 38, 38]
- salon: [138, 42, 38, 38]
- beauty_salon: [138, 42, 38, 38]
- school: [736, 84, 38, 38]
- kindergarten: [736, 84, 38, 38]
- scuba-diving: [276, 814, 38, 38]
- scuba_diving: [276, 814, 38, 38]
- dive_centre: [276, 814, 38, 38]
- shoe-store: [644, 42, 38, 38]
- shoes: [644, 42, 38, 38]
- shoe_store: [644, 42, 38, 38]
- shower: [416, 710, 38, 38]
- ski-area: [552, 126, 38, 38]
- slipway: [370, 710, 38, 38]
- soccer-field: [552, 84, 38, 38]
- spiritual-center: [460, 168, 38, 38]
- spiritual_center: [460, 168, 38, 38]
- place_of_worship: [460, 168, 38, 38]
- wayside_chapel: [460, 168, 38, 38]
- sporting-goods-shop: [92, 42, 38, 38]
- sporting_goods: [92, 42, 38, 38]
- sports: [92, 42, 38, 38]
- outdoor: [92, 42, 38, 38]
- spring: [506, 84, 38, 38]
- stadium: [644, 126, 38, 38]
- subway-entrance: [538, 0, 38, 38]
- summer-camp: [0, 814, 38, 38]
- summer_camp: [0, 814, 38, 38]
- swimming-area: [554, 710, 38, 38]
- swimming_area: [554, 710, 38, 38]
- synagogue: [44, 0, 38, 38]
- tailor-shop: [46, 42, 38, 38]
+ school: [598, 84, 38, 38]
+ kindergarten: [598, 84, 38, 38]
+ category-namespace-education_and_religion: [598, 84, 38, 38]
+ category-predicate-education: [598, 84, 38, 38]
+ scuba_diving: [690, 252, 38, 38]
+ dive_centre: [690, 252, 38, 38]
+ sdk_shield-1char: [484, 698, 84, 84]
+ sdk_shield-2char: [576, 698, 112, 84]
+ sdk_shield-3char: [696, 698, 144, 84]
+ sdk_shield-4char: [848, 698, 168, 84]
+ sdk_shield-5char: [0, 786, 192, 84]
+ shoemaker: [598, 42, 38, 38]
+ shower: [824, 210, 38, 38]
+ ski: [414, 126, 38, 38]
+ winter_sports: [414, 126, 38, 38]
+ ski_rental: [414, 126, 38, 38]
+ ski_school: [414, 126, 38, 38]
+ ski_jumping: [414, 126, 38, 38]
+ skiing: [414, 126, 38, 38]
+ slipway: [778, 210, 38, 38]
+ soccer: [414, 84, 38, 38]
+ sports: [276, 168, 38, 38]
+ pitch: [276, 168, 38, 38]
+ sports_centre: [276, 168, 38, 38]
+ recreation_ground: [276, 168, 38, 38]
+ spring: [368, 84, 38, 38]
+ stadium: [506, 126, 38, 38]
+ subway_entrance: [538, 0, 38, 38]
+ summer_camp: [414, 252, 38, 38]
+ supermarket: [644, 126, 38, 38]
+ greengrocer: [644, 126, 38, 38]
+ swimming_area: [962, 210, 38, 38]
+ swimming_pool: [552, 126, 38, 38]
tailor: [46, 42, 38, 38]
- telescope: [138, 814, 38, 38]
- tennis: [598, 126, 38, 38]
- theme-park: [184, 126, 38, 38]
- theme_park: [184, 126, 38, 38]
- miniature_golf: [184, 126, 38, 38]
- toilets: [46, 126, 38, 38]
- townspot-l: [862, 814, 16, 16]
- townspot-l-rev: [756, 814, 16, 16]
- townspot-m: [842, 814, 12, 12]
- townspot-m-rev: [736, 814, 12, 12]
- townspot-s: [824, 814, 10, 10]
- townspot-s-rev: [718, 814, 10, 10]
- townspot-xl: [886, 814, 20, 20]
- townspot-xl-rev: [780, 814, 20, 20]
- townspot-xs: [808, 814, 8, 8]
- townspot-xs-rev: [704, 814, 6, 6]
- toy-game-store: [0, 42, 38, 38]
+ telescope: [552, 252, 38, 38]
+ tennis: [460, 126, 38, 38]
+ theatre: [686, 168, 38, 38]
+ category-predicate-fun: [686, 168, 38, 38]
+ theme_park: [46, 126, 38, 38]
+ amusement_ride: [46, 126, 38, 38]
+ toilets: [920, 84, 38, 38]
+ townspot-l: [656, 294, 32, 32]
+ townspot-l-rev: [484, 294, 32, 32]
+ townspot-m: [624, 294, 24, 24]
+ townspot-m-rev: [452, 294, 24, 24]
+ townspot-s: [596, 294, 20, 20]
+ townspot-s-rev: [424, 294, 20, 20]
+ townspot-xl: [696, 294, 40, 40]
+ townspot-xl-rev: [524, 294, 38, 38]
+ townspot-xs: [572, 294, 16, 16]
+ townspot-xs-rev: [404, 294, 12, 12]
toys: [0, 42, 38, 38]
- baby_goods: [0, 42, 38, 38]
- traffic-signal: [92, 210, 38, 38]
- traffic_signals: [92, 210, 38, 38]
- trailhead: [368, 814, 38, 38]
- train-station: [492, 0, 38, 38]
+ traffic_signals: [0, 210, 38, 38]
+ trailhead: [782, 252, 38, 38]
+ train_station: [492, 0, 38, 38]
station: [492, 0, 38, 38]
- train-staion: [492, 0, 38, 38]
- tree: [414, 814, 38, 38]
- veterinarian: [136, 0, 38, 38]
- pet_care: [136, 0, 38, 38]
+ category-predicate-transport: [492, 0, 38, 38]
+ tree: [828, 252, 38, 38]
+ tree-s: [874, 252, 38, 38]
+ ux-current-location: [294, 370, 88, 88]
+ ux-locate-off: [824, 294, 72, 72]
+ ux-locate-on: [744, 294, 72, 72]
+ ux-route-arrow: [0, 370, 128, 128]
+ ux-route-start: [214, 370, 72, 92]
+ ux-route-stop: [136, 370, 72, 92]
+ ux-search-active: [388, 370, 72, 108]
+ ux-search-inactive: [468, 370, 72, 108]
+ ux-transit-stop: [308, 296, 42, 36]
veterinary: [136, 0, 38, 38]
- view-point: [870, 168, 38, 38]
- viewpoint: [870, 168, 38, 38]
- view_point: [870, 168, 38, 38]
- vista: [870, 168, 38, 38]
- vineyard: [230, 168, 38, 38]
- volcano: [230, 84, 38, 38]
- water-tower: [922, 710, 38, 38]
- water_tower: [922, 710, 38, 38]
- waterfall: [692, 710, 38, 38]
- waterpark: [278, 710, 38, 38]
- water_park: [278, 710, 38, 38]
- wine-bar: [366, 210, 38, 38]
- winery: [640, 168, 38, 38]
- wine: [640, 168, 38, 38]
- zoo: [138, 126, 38, 38]
- #
- ux-current-location: [294, 856, 88, 88]
- ux-locate-off: [628, 856, 72, 72]
- ux-locate-on: [548, 856, 72, 72]
- ux-route-arrow: [0, 856, 128, 128]
- ux-route-start: [214, 856, 72, 92]
- ux-route-stop: [136, 856, 72, 92]
- ux-search-active: [388, 856, 72, 108]
- ux-search-inactive: [468, 856, 72, 108]
- #
- # HACK: not currently in source sprite sheet (capital-xl)
- ux-transit-stop: [676, 814, 20, 20]
+ viewpoint: [778, 168, 38, 38]
+ category-namespace-do_and_see: [778, 168, 38, 38]
+ category-predicate-attraction: [778, 168, 38, 38]
+ vineyard: [138, 168, 38, 38]
+ volcano: [184, 84, 38, 38]
+ water_park: [686, 210, 38, 38]
+ water_slide: [686, 210, 38, 38]
+ water_tower: [322, 252, 38, 38]
+ waterfall: [92, 252, 38, 38]
+ wine: [274, 210, 38, 38]
+ winery: [548, 168, 38, 38]
+ zoo: [0, 126, 38, 38]
building-grid:
url: images/building-grid.gif
# mz_default_point:
# type: GeoJSON
# url: https://gist.githubusercontent.com/anonymous/16324c771edfce45be0721390389b878/raw/7dbaebf17da7da8562e6c6f8768bc8cff83efa88/map.geojson
+# # Default shield styling (SDK)
+# mz_default_shield:
+# type: GeoJSON
+# url: https://gist.githubusercontent.com/nvkelso/3c08dba1eced4d01df98c1a9a7801162/raw/d83a5a396fc7b22309b8ca89336ad2dcfff6c452/map.geojson
# # Default line styling (SDK)
# mz_default_line:
# type: GeoJSON
base: lines
dash: [1.25, 1.25]
dash_background_color: [0.808,0.860,0.851]
+ dashed_big:
+ base: lines
+ dash: [2.0, 1.0]
+ dash_background_color: [0.808,0.860,0.851]
dashedTunnel:
base: lines
dash: [5, 3]
ux-location-gem-overlay:
base: points
texture: pois
- interactive: true
+ interactive: global.interactive
blend: overlay
blend_order: 2
ux-icons-overlay:
base: points
texture: pois
- interactive: true
+ interactive: global.interactive
blend: overlay
blend_order: 3
sdk-point-overlay:
base: points
texture: pois
- interactive: true
+ interactive: global.interactive
+ blend: overlay
+ blend_order: 3
+ sdk-shield-overlay:
+ base: points
+ texture: pois
+ interactive: global.interactive
blend: overlay
blend_order: 3
sdk-line-overlay:
data: { source: mz_current_location }
draw:
ux-location-gem-overlay:
- interactive: true
sprite: ux-current-location
size: 36px
collide: false
data: { source: mz_route_location }
draw:
ux-location-gem-overlay:
- interactive: true
sprite: ux-route-arrow
size: [60px,60px]
collide: false
data: { source: mz_route_start }
draw:
ux-icons-overlay:
- interactive: true
+ interactive: global.interactive
priority: 1
sprite: ux-route-start
size: [36px,46px]
data: { source: mz_route_destination }
draw:
ux-icons-overlay:
- interactive: true
+ interactive: global.interactive
priority: 1
sprite: ux-route-stop
size: [36px,46px]
data: { source: mz_route_transit_stop }
draw:
ux-icons-overlay:
- interactive: true
+ interactive: global.interactive
sprite: ux-transit-stop
size: [15px,15px]
collide: false
data: { source: mz_search_result }
draw:
ux-icons-overlay:
- interactive: true
+ interactive: global.interactive
sprite: ux-search-active
size: [36px,54px]
collide: false
data: { source: mz_dropped_pin }
draw:
ux-icons-overlay:
- interactive: true
+ interactive: global.interactive
sprite: ux-search-active
size: [36px,54px]
collide: false
data: { source: mz_default_point }
draw:
sdk-point-overlay:
- interactive: true
+ interactive: global.interactive
sprite: ux-search-active
size: [36px,54px]
collide: false
transition:
[show, hide]:
time: 0s
+ mz_default_shield:
+ data: { source: mz_default_shield }
+ draw:
+ sdk-shield-overlay:
+ interactive: global.interactive
+ sprite: |
+ function() {
+ if( feature.shield_text ) {
+ return ('sdk_shield-' + feature.shield_text.length + 'char');
+ } else {
+ return ('sdk_shield-' + feature.name.length + 'char');
+ }
+ }
+ sprite_default: sdk_shield-1char
+ color: global.sdk_shield_color
+ collide: false
+ transition:
+ [show, hide]:
+ time: 0s
+ text:
+ # offset: [0px, -1px]
+ text_source: |
+ function() {
+ if( feature.shield_text ) {
+ return feature.shield_text;
+ } else {
+ return feature.name;
+ }
+ }
+ anchor: center
+ font:
+ family: Montserrat
+ fill: global.sdk_shield_text_color
+ style: bold
+ size: [[7,7px],[12,8px],[16,11px]]
+
+ width_1char:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length === 1);
+ } else {
+ return (feature.name.length === 1);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ size: [[6,[16px,16px]],[13,[18px,18px]],[16,[21px,21px]]]
+ width_2char:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length === 2);
+ } else {
+ return (feature.name.length === 2);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ size: [[6,[21px,16px]],[13,[24px,18px]],[16,[28px,21px]]]
+ width_3char:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length === 3);
+ } else {
+ return (feature.name.length === 3);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ size: [[6,[27px,16px]],[13,[31px,18px]],[16,[36px,21px]]]
+ width_4char:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length === 4);
+ } else {
+ return (feature.name.length === 4);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ size: [[6,[32px,16px]],[13,[36px,18px]],[16,[41px,21px]]]
+ width_5char:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length === 5);
+ } else {
+ return (feature.name.length === 5);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ size: [[6,[37px,16px]],[13,[41px,18px]],[16,[48px,21px]]]
+ # this is kinda a hack
+ width_longggggg:
+ filter: |
+ function() {
+ if( feature.shield_text ) {
+ return (feature.shield_text.length > 5);
+ } else {
+ return (feature.name.length > 5);
+ }
+ }
+ draw:
+ sdk-shield-overlay:
+ visible: false
mz_default_line:
data: { source: mz_default_line }
draw:
data: { source: mapzen, layer: water }
draw:
polygons:
- #interactive: true
order: function() { return feature.sort_rank; }
#color: [0.608,0.925,0.965]
later:
draw:
lines:
order: function() { return feature.sort_rank; }
- interactive: true
color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
# color: [0.592,0.929,0.961]
#color: [[11,[0.753,0.820,0.835]],[12,[0.710,0.800,0.824]],[13,[0.886,0.937,0.988]]]
lines:
visible: false
dots-lines:
- interactive: true
order: function() { return feature.sort_rank; }
color: [[10,[0.472,0.834,0.890]],[14,[0.511,0.877,0.930]]]
width: [[10,0px],[11,0.5px],[12,1px],[13,2px],[14,3px],[15,4px],[16,5px]]
water-line-labels:
- data: { source: mapzen, layer: [water] }
+ data: { source: mapzen, layer: water }
visible: *text_visible_water_labels
filter:
all:
- $zoom: { min: 11 }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
fill: *text_fill_water
family: *text_font_family
style: italic
- weight: 400
- size: [[12,11px],[13,12px]]
- water-line-labels-z17:
- filter: { $zoom: [17] }
- draw:
- text-blend-order: { font: { size: 14px } }
+ weight: normal
+ size: [[12,10px],[17,14px]]
not-river-not-stream:
filter: { kind: [canal,dam,ditch,drain], $zoom: { max: 14 } }
draw:
filter: { not: { kind: [platform] }, $zoom: { min: 14 } }
draw:
lines:
- interactive: true
order: function() { return feature.sort_rank || 275; }
railway:
filter: { kind: [railway,train] }
filter: { kind: rail, not: { railway: [subway,light_rail,tram] } }
draw:
lines:
- interactive: true
order: function() { return feature.sort_rank; }
color: [0.588,0.671,0.698]
width: [[12,0px],[13,0.25px],[14,0.4px],[15,0.75px],[16,0.75px],[18,1m]]
filter: { not: { kind: rail } }
draw:
lines:
- interactive: true
#color: black
width: 1px
order: function() { return feature.sort_rank; }
order: 352
text-blend-order:
visible: false # labels are enabled by each layer below
+ text_source: global.ux_language_text_source
font:
family: *text_font_family
weight: 500
width: function () { return 3/16 * Math.log($zoom); }
natural_earth_highways:
- filter: { source: 'naturalearthdata.com' }
+ filter: { source: 'naturalearthdata.com', $zoom: { max: 8 } }
draw:
lines:
color: [[5, [0.5,0.5,0.5]],[6, [0.350,0.350,0.350]]]
color: *highway_casing1
width: [[9, 0px], [10, 0px], [12, 1px], [16, 2px]]
major_road:
- filter: { type: ['Secondary Highway','Road'] }
+ filter: { kind: major_road }
draw:
lines:
color: [[5, [0.75,0.75,0.75]], [8, [0.4,0.4,0.4]], [13, [0.4,0.4,0.4]], [17, *major_road1]]
outline:
width: [[8, 0.0px], [9, 0.0px], [11, .5px], [16, .75px]]
minor_road:
- filter: { type: 'Unknown' }
+ filter: { kind: minor_road }
draw:
lines:
color: [[12, *minor_road1], [17, *minor_road2]]
# outline:
# width: [[12, 0px], [14, .5px], [17, 1px]]
ferry:
- filter: { kind: Ferry }
+ filter: { kind: ferry }
draw:
lines:
color: *ferry1
outline:
width: 0px
highway:
- filter: { kind: highway }
+ filter: { kind: highway, $zoom: { min: 8 } }
draw:
lines:
color: [[8, [0.408,0.430,0.461]], [14, [0.408,0.430,0.461]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
cap: round
outline:
cap: butt
- # labels-highway-early:
- # filter: { $zoom: [7,8,9] }
- # draw:
- # text-blend-order:
- # priority: 50
- # visible: *text_visible_shields
- # text_source: ref
- # font:
- # fill: [0.408,0.427,0.459]
- # weight: 400
- # size: 9px
- # stroke: { color: [0.898,0.906,0.910], width: 4 }
- # labels-highway-z10:
- # filter:
- # $zoom: 10
- # draw:
- # text-blend-order:
- # visible: *text_visible_shields
- # text_source: ref
- # font:
- # fill: [0.408,0.427,0.459]
- # weight: 400
- # size: 9px
- # stroke: { color: [0.898,0.906,0.910], width: 4 }
- # labels-highway-z11:
- # filter:
- # $zoom: 11
- # draw:
- # text-blend-order:
- # visible: *text_visible_shields
- # text_source: ref
- # font:
- # fill: [0.408,0.427,0.459]
- # weight: 600
- # size: 10px
- # stroke: { color: [0.898,0.906,0.910], width: 4 }
- # labels-highway-z12:
- # filter:
- # $zoom: 12
- # draw:
- # text-blend-order:
- # visible: *text_visible_shields
- # text_source: ref
- # font:
- # fill: [0.408,0.427,0.459]
- # weight: 600
- # size: 10px
- # stroke: { color: [0.898,0.906,0.910], width: 4 }
labels-highway-z13:
filter:
$zoom: 13
text-blend-order:
priority: 50
visible: *text_visible_highway
- #text_source: ref
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.408,0.427,0.459]
weight: 600
text-blend-order:
priority: 50
visible: *text_visible_highway
- #text_source: ref
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.408,0.427,0.459]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary_e2
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 11px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 9px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 10px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 11px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 11px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
size: 12px
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 51
visible: *text_visible_trunk_primary
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.495,0.511,0.532]
weight: 600
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 11px
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 11px
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
weight: 600
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
weight: 600
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
stroke: { color: [0.843,0.961,0.914], width: 4 }
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
stroke: { color: [1.00,1.00,1.00], width: 4 }
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 9px
text-blend-order:
priority: 56
visible: *text_visible_secondary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 9px
text-blend-order:
priority: 56
visible: *text_visible_secondary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 10px
text-blend-order:
priority: 56
visible: *text_visible_secondary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 12px
text-blend-order:
priority: 56
visible: *text_visible_secondary
- #text_source: ref
- #text_source: function() { if( feature.ref && feature.name ) { return feature.ref + " " + feature.name; } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 13px
text-blend-order:
priority: 57
visible: *text_visible_tertiary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
stroke: { color: [0.843,0.961,0.914], width: 4 }
text-blend-order:
priority: 57
visible: *text_visible_tertiary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
stroke: { color: [1.00,1.00,1.00], width: 4 }
text-blend-order:
priority: 57
visible: *text_visible_tertiary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 9px
text-blend-order:
priority: 57
visible: *text_visible_tertiary_e
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 9px
text-blend-order:
priority: 57
visible: *text_visible_tertiary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 10px
text-blend-order:
priority: 57
visible: *text_visible_tertiary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 12px
text-blend-order:
priority: 57
visible: *text_visible_tertiary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 13px
text-blend-order:
priority: 57
visible: *text_visible_tertiary
- #text_source: function() { if( feature.ref && feature.name ) { if( feature.ref.length < 6 ) { return feature.ref + " " + feature.name; } else { return feature.name; } } else { return feature.name; } }
font:
fill: [0.536,0.556,0.581]
size: 13px
text-blend-order:
priority: 59
visible: *text_visible_minor_road_e
- text_source: name
font:
fill: [0.536,0.556,0.581]
stroke: { color: [0.843,0.961,0.914], width: 4 }
text-blend-order:
priority: 59
visible: *text_visible_minor_road_e
- text_source: name
font:
fill: [0.536,0.556,0.581]
stroke: { color: [1.00,1.00,1.00], width: 4 }
text-blend-order:
priority: 59
visible: *text_visible_minor_road_e
- text_source: name
font:
fill: [0.536,0.556,0.581]
size: 9px
text-blend-order:
priority: 59
visible: *text_visible_minor_road_e
- text_source: name
font:
fill: [0.536,0.556,0.581]
size: 12px
text-blend-order:
priority: 59
visible: *text_visible_minor_road_e
- text_source: name
font:
fill: [0.40,0.40,0.40]
size: 12px
text-blend-order:
priority: 59
visible: *text_visible_minor_road
- text_source: name
font:
fill: [0.40,0.40,0.40]
size: 13px
text-blend-order:
priority: 60
visible: *text_visible_service_road
- text_source: name
font:
fill: [0.536,0.556,0.581]
stroke: { color: [0.843,0.961,0.914], width: 4 }
text-blend-order:
priority: 60
visible: *text_visible_service_road
- text_source: name
font:
# need fill color?
fill: [0.536,0.556,0.581]
text-blend-order:
priority: 60
visible: *text_visible_service_road
- text_source: name
font:
fill: [0.536,0.556,0.581]
size: 13px
stroke: { color: [0.969,0.973,0.973], width: 4 }
- shields:
+ path:
filter:
- $zoom: { min: 6 }
- #
- # United State looks great with shield_text alone, but...
- #
- #shield_text: true # some roads don't have shield text, deal with that later
- #
- # Europe doesn't have many network relations set, so we could look for either
- # shield_text or ref (with no shield_text) but...
- # that makes United States look a bit funky with `(xxx)` and generic shields
- # showing up in fields of custom state shields like US:CA and US:NY
- #
- any:
- - shield_text: true # some roads don't have shield text, deal with that later
- - all:
- - shield_text: false # some roads don't have shield text, deal with that later
- - ref: true
- - kind_detail: [motorway, trunk, primary, secondary, tertiary]
- # default
+ all:
+ - kind: [path, portage_way]
+ not:
+ - kind_detail: [footway, steps, track, cycleway]
+ - kind_detail: [pier]
draw:
- icons:
- # you need to match any custom shield to the vector tile `network` values
- sprite: |
- function() {
- if( feature.shield_text ) {
- return ('generic_shield_' + feature.shield_text.length + 'char');
- } else {
- return ('generic_shield_' + feature.ref.length + 'char');
- }
- }
- sprite_default: generic_shield_5char
- priority: 58
- repeat_group: shields
- repeat_distance: [[8,90px],[10,40px],[13,30px]]
- placement: midpoint
- placement_min_length_ratio:
- - [8, 0.1]
- - [9, 0.25]
- - [10, 0.25]
- - [11, 0.15]
- - [12, 1]
- - [13, 1.50]
- - [14, 2.0]
- cull_from_tile: true
+ dashedline:
+ order: function() { return feature.sort_rank; }
visible: false
- text:
- offset: [0px, -0.5px]
- repeat_distance: 200px
- anchor: center
- text_source: |
- function() {
- if( feature.shield_text ) {
- return feature.shield_text;
- } else {
- return feature.ref;
- }
- }
- font:
- family: Montserrat
- #fill: [0.308,0.308,0.308]
- fill: [0.320,0.320,0.320]
- size: [[7,7px],[12,8px],[16,11px]]
-
- default_priority_highway:
+ color: [0.350,0.350,0.350]
+ width: [[14, 0.35px], [15, 0.5px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ early:
filter:
- all:
- - kind_detail: motorway
- - $zoom: { min: 9 }
+ $zoom: { max: 17 }
draw:
- icons:
- priority: 47
- #color: yellow
- visible: *text_visible_shields
-
- default_priority_trunk:
- filter:
- all:
- - kind_detail: [trunk]
- - $zoom: { min: 10 }
+ lines:
+ order: 351
+ outline:
+ order: 350
+ portage_way:
+ filter: { kind: portage_way }
draw:
- icons:
- priority: 48
- #color: red
- visible: *text_visible_shields
- default_priority_primary:
- filter:
- all:
- - kind_detail: [primary]
- - $zoom: { min: 12 }
+ lines:
+ color: [0.350,0.350,0.350]
+ pedestrian:
+ filter: { kind_detail: pedestrian }
draw:
- icons:
- priority: 49
- #color: aqua
- visible: *text_visible_shields
- default_priority_trunk_secondary:
- filter:
- all:
- - kind_detail: [secondary]
- - $zoom: { min: 12 }
+ lines:
+ color: [[16,[0.749,0.749,0.749]]]
+ width: [[14, 0.35px], [15, 0.35px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ bridge:
+ filter: { is_bridge: true }
draw:
- icons:
- priority: 53
- #color: blue
- visible: *text_visible_shields
- default_priority_trunk_tertiary:
- filter:
- all:
- - kind_detail: tertiary
- - $zoom: { min: 13 }
+ lines:
+ width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: round
+ outline:
+ color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ cap: butt
+ in_park:
+ filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
draw:
- icons:
- priority: 55
- #color: green
- visible: *text_visible_shields
- # not-special:
- # filter:
- # not: { network: ['US:I','US:US'] }
- # $zoom: { max: 9 }
+ dashedline:
+ color: [0.350,0.350,0.350]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # golf_course:
+ # filter: { landuse_kind: golf_course }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # nature_reserve:
+ # filter: { landuse_kind: nature_reserve }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # conservation:
+ # filter: { landuse_kind: conservation }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_cemetery_garden:
+ # filter: { landuse_kind: [cemetery,garden] }
# draw:
- # icons:
- # visible: false
- width_1char:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length === 1)
- } else {
- return (feature.ref.length === 1)
- }
- }
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_zoo:
+ # filter: { landuse_kind: zoo }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_university:
+ # filter: { landuse_kind: university }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # lines:
+ # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ # outline:
+ # color: [0.790,0.790,0.790]
+ # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ labels-path:
+ filter: { $zoom: { min: 17 } }
draw:
- icons:
- size: [[6,[14px,14px]],[13,[16px,16px]],[16,[18px,18px]]]
- width_2char:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length === 2)
- } else {
- return (feature.ref.length === 2)
- }
- }
+ text-blend-order:
+ priority: 61
+ visible: *text_visible_path
+ font:
+ fill: [0.536,0.556,0.581]
+ size: 12px
+ stroke: { color: *text_stroke, width: 4 }
+ track:
+ filter: { kind: path, kind_detail: track }
+ draw:
+ lines:
+ color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: butt
+ join: round
+ outline:
+ color: [0.790,0.790,0.790]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ bridge:
+ filter: { is_bridge: true }
draw:
- icons:
- size: [[6,[18px,14px]],[13,[20px,15px]],[16,[24px,18px]]]
- width_3char:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length === 3)
- } else {
- return (feature.ref.length === 3)
- }
- }
+ lines:
+ cap: butt
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ cap: round
+ outline:
+ color: [1.0,1.0,1.0]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ cap: butt
+ in_park:
+ filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden,battlefield] }
draw:
- icons:
- size: [[6,[25px,14px]],[13,[27px,15px]],[16,[33px,18px]]]
- width_4char:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length === 4)
- } else {
- return (feature.ref.length === 4)
- }
- }
- draw:
- icons:
- size: [[6,[29px,14px]],[13,[31px,15px]],[16,[38px,18px]]]
- # London sucks
- early:
- filter: { $zoom: { max: 14 } }
- draw:
- icons:
- visible: false
- width_5char:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length === 5)
- } else {
- return (feature.ref.length === 5)
- }
- }
- draw:
- icons:
- size: [[6,[34px,14px]],[13,[37px,15px]],[16,[45px,18px]]]
- # London sucks
- early:
- filter: { $zoom: { max: 14 } }
- draw:
- icons:
- visible: false
- # this is kinda a hack
- width_longggggg:
- filter: |
- function() {
- if( feature.shield_text ) {
- return (feature.shield_text.length > 5)
- } else {
- return (feature.ref.length > 5)
- }
- }
- draw:
- icons:
- visible: false
- # missing-route-relations:
- # filter: { shield_text: false }
- # draw:
- # lines:
- # order: 1000
- # color: red
- # width: 2px
- #
- # Now for the good stuff
- #
- legit-shields:
- filter: { shield_text: true }
- # draw:
- # icons:
- # color: red
- # US Interstate roads
- US-I:
- filter:
- network: 'US:I'
- draw:
- icons:
- # you need to match any custom shield to the vector tile `network` values
- sprite: function() { return (feature.network + '_' + feature.shield_text.length + 'char'); }
- priority: 46
- visible: *text_visible_shields
- text:
- offset: [0px, 0.5px]
- font:
- fill: [1.0,1.0,1.0]
- size: [[7,8px],[13,9px],[15,11px]]
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[15px,18px]],[13,[17px,20px]],[15,[22px,25px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[18px,18px]],[13,[20px,20px]],[15,[25px,25px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[23px,18px]],[13,[26px,20px]],[15,[33px,25px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[25px,18px]],[13,[27px,20px]],[15,[35px,25px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[26px,18px]],[13,[30px,20px]],[15,[38px,25px]]]
- # US Federal Routes
- US-US:
- filter:
- network: ['US:US','US:US:Business', 'US:US:Truck', 'US:US:Alternate']
- $zoom: { min: 7 }
- draw:
- icons:
- # you need to match any custom shield to the vector tile `network` values
- sprite: |
- function() { return ('US:US_' + feature.shield_text.length + 'char'); }
- priority: 47
- cull_from_tile: true
- visible: *text_visible_shields
- text:
- offset: [0px, -0.7px]
- font:
- fill: [0.0,0.0,0.0]
- size: [[7,8px],[13,9px],[15,11px]]
- # early:
- # filter: { $zoom: [7] }
- # icons:
- # visible: false
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[15px,17px]],[13,[17px,19px]],[15,[22px,24px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[18px,17px]],[13,[20px,19px]],[15,[26px,24px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[22px,17px]],[13,[25px,19px]],[15,[34px,25px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[25px,17px]],[13,[29px,19px]],[15,[39px,25px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[27px,17px]],[13,[30px,19px]],[15,[41px,25px]]]
- # US State Routes
- # US-states:
- # # Match state highways: `US:??`
- # filter: |
- # function() {
- # return feature.shield_text &&
- # /^US:(?!US)\w\w$/.test(feature.network)
- # }
- # draw:
- # icons:
- # # you need to match any custom shield to the vector tile `network` values
- # priority: 18
- # early:
- # filter: { $zoom: [7,8,9] }
- # icons:
- # visible: false
- US-CA:
- # Match California state highways: `US:CA`
- filter: |
- function() {
- return feature.shield_text &&
- /^US:CA$/.test(feature.network)
- }
- draw:
- icons:
- sprite: function() { return (feature.network + '_' + feature.shield_text.length + 'char'); }
- text:
- offset: [0px, 1px]
- font:
- fill: [1.0,1.0,1.0]
- size: [[7,7px],[13,9px],[15,10px]]
- motorway:
- filter: { kind_detail: [motorway], $zoom: [7,8] }
- draw:
- icons:
- visible: *text_visible_shields
- trunk:
- filter: { kind_detail: [trunk], $zoom: [8,9] }
- draw:
- icons:
- visible: *text_visible_shields
- primary:
- filter: { kind_detail: primary, $zoom: [10,11] }
- draw:
- icons:
- visible: *text_visible_shields
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[14px,16px]],[13,[15px,18px]],[15,[18px,21px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[18px,18px]],[13,[20px,20px]],[15,[23px,23px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[21px,18px]],[13,[24px,20px]],[15,[28px,23px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[24px,18px]],[13,[26px,20px]],[15,[31px,23px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[25px,18px]],[13,[27px,20px]],[15,[32px,23px]]]
- US-NY:
- # Match New York state highways: `US:NY`
- filter: |
- function() {
- return feature.shield_text &&
- /^US:NY$/.test(feature.network)
- /* (/^US:NY$/.test(feature.network) || /^NY:US$/.test(feature.network)) */
- }
- draw:
- icons:
- sprite: |
- function() { return ( 'US:NY_' + feature.shield_text.length + 'char'); }
- text:
- # offset: [0px, 1px]
- font:
- fill: [0.0,0.0,0.0]
- size: [[7,7px],[13,9px],[15,10px]]
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[20px,17px]],[13,[22px,19px]],[15,[27px,22px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[21px,17px]],[13,[24px,19px]],[15,[29px,22px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30px,22px]]]
- US-PA:
- # Match Pennsylvania state highways
- filter: |
- function() {
- return feature.shield_text &&
- /^US:PA$/.test(feature.network)
- }
- draw:
- icons:
- sprite: |
- function() { return ( 'US:PA_' + feature.shield_text.length + 'char'); }
- text:
- offset: [0px, 1px]
- font:
- fill: [0.0,0.0,0.0]
- size: [[7,7px],[13,9px],[15,10px]]
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[13px,17px]],[13,[15px,19px]],[15,[18px,22px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[17px,17px]],[13,[19px,19px]],[15,[22px,22px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[21px,17px]],[13,[24px,19px]],[15,[28px,22px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[22px,17px]],[13,[25px,19px]],[15,[30x,22px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[24px,17px]],[13,[27px,19px]],[15,[32px,22px]]]
- # USA County Routes
- US-counties:
- # Match state highways: `US:??:*`
- #
- # this is very USA specific
- #
- # filter: |
- # function() {
- # return feature.shield_text &&
- # /^US:(?!US)\w\w:.*$/.test(feature.network)
- # }
- #
- # this generic for any country with 3rd level networks (like county routes in USA)
- # BEWARE:
- # US:US:Business about 150
- # US:US:Truck
- # US:US:Alternate
- #
- # STATE ROUTE
- # ??:??:Loop about 200
- # ??:??:Spur about 200
- # ??:??:Business about 100
- #
- # STATE TEXAS SPECIAL ROUTE
- # US:TX:FM -- probably just state? there are 3k of these
- #
- #
- filter: |
- function() {
- return feature.shield_text &&
- /^\w+:\w+:(!Alternate).+$/.test(feature.network) &&
- $zoom > 10
- }
- draw:
- icons:
- # you need to match any custom shield to the vector tile `network` values
- sprite: function() { return ('county_shield_' + feature.shield_text.length + 'char'); }
- # priority: 19
- visible: *text_visible_shields
- text:
- font:
- fill: [0.320,0.320,0.320]
- #size: [[11,7px],[15,10px]]
- # early:
- # filter: { $zoom: { max: 11 } }
- # draw:
- # icons:
- # visible: false
- width_1char:
- filter: function() { return (feature.shield_text.length === 1) }
- draw:
- icons:
- size: [[6,[14px,14px]],[13,[16px,16px]],[15,[18px,18px]]]
- width_2char:
- filter: function() { return (feature.shield_text.length === 2) }
- draw:
- icons:
- size: [[6,[16px,14px]],[13,[18px,15px]],[15,[22px,18px]]]
- width_3char:
- filter: function() { return (feature.shield_text.length === 3) }
- draw:
- icons:
- size: [[6,[20px,14px]],[13,[21px,15px]],[15,[26px,18px]]]
- width_4char:
- filter: function() { return (feature.shield_text.length === 4) }
- draw:
- icons:
- size: [[6,[25px,14px]],[13,[28px,15px]],[15,[34px,18px]]]
- width_5char:
- filter: function() { return (feature.shield_text.length === 5) }
- draw:
- icons:
- size: [[6,[30px,14px]],[13,[33px,15px]],[15,[40px,18px]]]
- path:
+ lines:
+ color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
+ width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
+ outline:
+ color: [0.790,0.790,0.790]
+ width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
+ steps:
filter:
all:
- - kind: [path, portage_way]
- not:
- - kind_detail: [footway, steps, track, cycleway]
- - kind_detail: [pier]
+ - kind: path
+ - kind_detail: steps
draw:
- dashedline:
- order: function() { return feature.sort_rank; }
- interactive: true
+ dashed:
+ #order: function() { return feature.sort_rank; }
+ order: 1005
+ color: [0.501,0.650,0.650]
+ width: [[15, 0.6], [16, 1px], [17, 1px], [18, 4px], [19, 1.5m]]
+ lines:
visible: false
- color: [0.350,0.350,0.350]
- width: [[14, 0.35px], [15, 0.5px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- early:
- filter:
- $zoom: { max: 17 }
- draw:
- lines:
- order: 351
- outline:
- order: 350
- portage_way:
- filter: { kind: portage_way }
+ order: 1000
+ #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
+ #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
+ color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
+ width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
+ visible: true
+ #color: purple
+ steps-late:
+ filter: { $zoom: { min: 17 } }
draw:
- lines:
- color: [0.350,0.350,0.350]
- pedestrian:
- filter: { kind_detail: pedestrian }
+ # lines:
+ # color: [0.707,0.884,0.872]
+ # visible: true
+ # outline:
+ # width: [[17, 0px], [18, 1px], [19, 2px]]
+ # color: [0.850,0.850,0.850]
+ dashed:
+ width: [[17, 2px], [18, 3px], [19, 3.5px]]
+ color: [0.501,0.650,0.650]
+ early-show-as-lines-z14:
+ filter: { $zoom: { max: 16 } }
draw:
+ dashed:
+ visible: false
lines:
- color: [[16,[0.749,0.749,0.749]]]
- width: [[14, 0.35px], [15, 0.35px], [16, 1px], [17, 2px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- bridge:
- filter: { is_bridge: true }
+ visible: true
+ networked:
+ filter: { walking_network: true }
draw:
lines:
- width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- cap: round
- outline:
- color: [[15,*path_bridge_casing2],[16,*path_bridge_casing1]]
- width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- cap: butt
- in_park:
- filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
- draw:
- dashedline:
- color: [0.350,0.350,0.350]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # golf_course:
- # filter: { landuse_kind: golf_course }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # nature_reserve:
- # filter: { landuse_kind: nature_reserve }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # conservation:
- # filter: { landuse_kind: conservation }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # in_cemetery_garden:
- # filter: { landuse_kind: [cemetery,garden] }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # in_zoo:
- # filter: { landuse_kind: zoo }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # in_university:
- # filter: { landuse_kind: university }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- # in_hospital:
- # filter: { landuse_kind: hospital }
- # draw:
- # lines:
- # color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- # width: [[14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- # outline:
- # color: [0.790,0.790,0.790]
- # width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- labels-path:
- filter: { $zoom: { min: 17 } }
- draw:
- text-blend-order:
- priority: 61
- visible: *text_visible_path
- text_source: name
- font:
- fill: [0.536,0.556,0.581]
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
- track:
- filter: { kind: path, kind_detail: track }
- draw:
- lines:
- color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- cap: butt
- join: round
- outline:
- color: [0.790,0.790,0.790]
- width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- bridge:
- filter: { is_bridge: true }
- draw:
- lines:
- cap: butt
- width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- cap: round
- outline:
- color: [1.0,1.0,1.0]
- width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- cap: butt
- in_park:
- filter: { landuse_kind: [park,national_park,nature_reserve,conservation,golf_course,garden,battlefield] }
- draw:
- lines:
- color: [[14, [0.790,0.790,0.790]], [15, [1.00,1.00,1.00]]]
- width: [[13, 0px], [14, 0.35px], [15, 0px], [16, 0.25px], [17, 3px], [18, 3px], [19, 4px]]
- outline:
- color: [0.790,0.790,0.790]
- width: [[14, 0.0px], [15, 0.35px], [16, 0.45px], [17, 0.85px], [18, 1px]]
- steps:
- filter:
- all:
- - kind: path
- - kind_detail: steps
- draw:
- dashed:
- #order: function() { return feature.sort_rank; }
- order: 1005
- color: [0.501,0.650,0.650]
- width: [[15, 0.6], [16, 1px], [17, 1px], [18, 4px], [19, 1.5m]]
- interactive: true
- lines:
- visible: false
- order: 1000
- interactive: true
- #width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
- #color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
- color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
- width: [[13, 0.75px], [14, 0.6px], [15, 1px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
- visible: true
- #color: purple
- steps-late:
- filter: { $zoom: { min: 17 } }
- draw:
- # lines:
- # color: [0.707,0.884,0.872]
- # visible: true
- # outline:
- # width: [[17, 0px], [18, 1px], [19, 2px]]
- # color: [0.850,0.850,0.850]
- dashed:
- width: [[17, 2px], [18, 3px], [19, 3.5px]]
- color: [0.501,0.650,0.650]
- early-show-as-lines-z14:
- filter: { $zoom: { max: 16 } }
- draw:
- dashed:
- visible: false
- lines:
- visible: true
- networked:
- filter: { walking_network: true }
- draw:
- lines:
- width: [[13, 0.75px], [14, 1px], [15, 2px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
- dashed:
- width: [[13, 1.25px],[14, 2px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
- highlight:
- order: 980
- color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
- width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
- join: round
- early:
- filter: { $zoom: { max: 15 } }
- draw:
- lines:
- color: [0.120,0.600,0.520]
- networked-steps-late:
- filter: { $zoom: { min: 18 } }
- draw:
- dashed:
- color: [0.120,0.600,0.520]
+ width: [[13, 0.75px], [14, 1px], [15, 2px], [16, 2px], [17, 3px], [18, 4px], [19, 4px]]
+ dashed:
+ width: [[13, 1.25px],[14, 2px],[15, 1.75px],[16, 2px], [17, 4px], [18, 5px], [19, 8px]]
+ highlight:
+ order: 980
+ color: [[12,[0.900,1.000,0.850]],[14,[0.930,1.000,0.850]],[15,[1.000,1.000,0.870]]]
+ width: [[12, 3px], [13, 4px], [14, 5px], [15, 6px], [16, 8px], [17, 10px], [18, 14px], [19, 16px]]
+ join: round
+ early:
+ filter: { $zoom: { max: 15 } }
+ draw:
+ lines:
+ color: [0.120,0.600,0.520]
+ networked-steps-late:
+ filter: { $zoom: { min: 18 } }
+ draw:
+ dashed:
+ color: [0.120,0.600,0.520]
in_park:
filter: { landuse_kind: [park,nature_reserve,conservation,golf_course,garden] }
draw:
text-blend-order:
priority: 63
visible: *text_visible_steps
- text_source: name
font:
fill: [0.45,0.45,0.45]
size: 11px
lines:
color: [0.450,0.450,0.450]
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: [0.450,0.450,0.450]
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, kind_detail: pier }
draw:
filter: { kind: racetrack }
draw:
lines:
- interactive: true
cap: round
join: round
color: [0.400,0.666,0.690]
width: [[13,0.5px],[14,1px],[15, 1px], [16, 1.5px], [18, 3px], [19, 5px]]
airport-lines:
- filter: { kind: aeroway }
+ filter: { kind: aeroway, kind_detail: [runway,taxiway] }
draw:
lines:
- color: [[11, [0.25,0.25,0.25]], [17, [0.0,0.0,0.0]]]
+ color: [[11,[0.25,0.25,0.25]],[17,[0.00,0.00,0.00]]]
cap: butt
- width: [[10, 1px], [11, 1.5px], [12, 2px], [13, 4px], [14, 8px], [15, 16px], [16, 32px], [17, 60m]]
+ width: [[10,1px],[13,3px],[15,16px],[17,60m]]
outline:
color: [1.0,1.0,1.0]
# Features come in at zoom 9, but include mostly minor airports without POIs until z13
filter: { kind_detail: taxiway }
draw:
lines:
- color: [[11, [0.885,0.885,0.885]], [13, [0.779,0.802,0.828]], [14,[0.779,0.802,0.828]], [15, [1.0,1.0,1.0]], [16, [1.0,1.0,1.0]]]
- width: [[11, 0.5px], [12, 0.65px], [13, 0.65px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
+ color: [[11,[0.885,0.885,0.885]],[13,[0.779,0.802,0.828]],[14,[0.779,0.802,0.828]],[15,[1.0,1.0,1.0]]]
+ width: [[11,0.5px],[14,1px],[15,0px],[16,1px],[17,6px],[18,9m]]
outline:
- color: [[11, [0.894,0.906,0.914]], [14,[0.779,0.802,0.828]], [15, [0.714,0.733,0.760]], [16, [0.714,0.733,0.760]], [17, [0.744,0.764,0.792]]]
- width: [[11, 0px], [14, 0px], [15, 0.75px], [16, 1.5px], [17, 2px], [18, 3px]]
+ color: [[11,[0.894,0.906,0.914]],[14,[0.779,0.802,0.828]],[15,[0.714,0.733,0.760]],[17,[0.744,0.764,0.792]]]
+ width: [[11, 0px],[14,0px],[15,0.75px],[17,2px],[18,3px]]
early:
filter: { $zoom: { max: 13 } }
draw:
filter: { kind: aerialway }
draw:
lines:
- interactive: true
color: [0.5,0.5,0.5]
width: [[14, 0.5px], [15, 1.0px], [16, 2m]]
gondola_cable_car:
text-blend-order:
priority: 63
visible: *text_visible_aerialway
- text_source: name
- font:
- fill: *text_fill
- size: 10px
- stroke: { color: *text_stroke_park, width: 4 }
- minor:
- filter: { not: { kind_detail: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
- draw:
- text-blend-order:
- visible: false
- early_gondola:
- filter: { $zoom: [14], kind_detail: [gondola,cable_car] }
- draw:
- text-blend-order:
- font:
- weight: 600
- later:
- filter: { $zoom: { min: 15 } }
- draw:
- text-blend-order:
- font:
- weight: 600
- buildings:
- data: { source: mapzen, layer: buildings }
- filter:
- not: { location: underground }
- # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
- draw:
- polygons:
- visible: false
- order: 329
- color: [[14,[0.930,0.940,0.940]],[15,[0.920,0.930,0.930]],[16,[0.930,0.940,0.940]]]
- lines:
- style: lines
- order: 330
- visible: false
- color: [[14,[0.750,0.750,0.750]],[17,[0.85, 0.85, 0.85]]]
- width: [[14, 0px], [15, 0.5px], [16,0.5px], [17,1px], [18, 1.25px]]
-
- # turn interactive feature selection on for buildings with names
- interactive:
- filter: { name: true }
- draw: { polygons: { interactive: true } }
-
- # building footprints, pre-extrusion
- footprints:
- filter:
- any:
- # limit show smaller landuse areas to higher zooms
- - { $zoom: [13], scale_rank: [1,2] }
- - { $zoom: [14], scale_rank: [1,2,3] }
- - { $zoom: [15], area: { min: 5000 }, name: true }
- - { $zoom: [15], area: { min: 5000 }, kind: true }
- - { $zoom: [15], area: { min: 3000 }, landuse_kind: true }
- - { $zoom: [15], height: { min: 100 } }
- - { $zoom: [15], volume: { min: 100000 } }
- - { $zoom: [16], area: { min: 1000 }, name: true }
- - { $zoom: [16], area: { min: 1000 }, kind: true }
- - { $zoom: [16], area: { min: 2000 }, landuse_kind: true }
- - { $zoom: [16], volume: { min: 50000 } }
- #- { $zoom: [16], height: { min: 50 } }
- - { $zoom: { min: 17 } }
- all:
- - not: { location: underground }
- draw:
- polygons:
- visible: true
- lines:
- visible: true
-
- extrude:
- filter:
- any:
- # for the buildings that were visible at zoom 15, extrude those all up a bit at z17
- - { $zoom: [16], area: { min: 20000 }, name: true }
- - { $zoom: [16], area: { min: 20000 }, kind: true }
- - { $zoom: [16], area: { min: 5000 }, landuse_kind: true }
- - { $zoom: [16], height: { min: 150 } }
- - { $zoom: [16], volume: { min: 150000 } }
- - { $zoom: [17], area: { min: 5000 }, name: true }
- - { $zoom: [17], area: { min: 5000 }, kind: true }
- - { $zoom: [17], area: { min: 3000 }, landuse_kind: true }
- - { $zoom: [17], height: { min: 100 } }
- - { $zoom: [17], volume: { min: 100000 } }
- - { $zoom: { min: 18 } }
- draw:
- polygons:
- visible: true
- order: 438
- style: building-grid
- extrude: 100
- color: [0.930,0.940,0.940]
- lines:
- visible: true
- order: 439
- style: building-lines
- extrude: 100
- z16-default:
- filter: { $zoom: [16] }
- draw:
- polygons:
- extrude: 20
- lines:
- extrude: 20
- z18-default:
- filter: { $zoom: { min: 18 } }
- draw:
- polygons:
- extrude: 20
- lines:
- extrude: 20
- z18-special:
- filter:
- any:
- - { $zoom: { min: 18 }, area: { min: 5000 }, name: true }
- - { $zoom: { min: 18 }, area: { min: 5000 }, kind: true }
- - { $zoom: { min: 18 }, area: { min: 3000 }, landuse_kind: true }
- - { $zoom: { min: 18 }, height: { min: 100 } }
- - { $zoom: { min: 18 }, volume: { min: 100000 } }
- draw:
- polygons:
- extrude: 100
- lines:
- extrude: 100
-
-
- # landuse-specific rules
- # in_park:
- # filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
- # draw:
- # polygons:
- # color: [0.864,0.910,0.905]
-
- # # golf_course:
- # # filter: { landuse_kind: golf_course }
- # # draw:
- # # polygons:
- # # color: *building2
- # # nature_reserve:
- # # filter: { landuse_kind: nature_reserve }
- # # draw:
- # # polygons:
- # # color: *building2
- # # conservation:
- # # filter: { landuse_kind: conservation }
- # # draw:
- # # polygons:
- # # color: *building2
- # # zoo:
- # # filter: { landuse_kind: zoo }
- # # draw:
- # # polygons:
- # # color: *building2
- # in_university:
- # filter: { landuse_kind: [university,school] }
- # draw:
- # polygons:
- # color: [0.950,0.917,0.883]
- # lines:
- # color: *brown1_bo
- # in_hospital:
- # filter: { landuse_kind: hospital }
- # draw:
- # polygons:
- # color: [0.976,0.908,0.913]
- # in_airport:
- # filter: { landuse_kind: [aerodrome, runway, taxiway] }
- # draw:
- # polygons:
- # color: *purple_b
- # lines:
- # color: *purple_bo
- # width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
- # in_retail:
- # filter: { landuse_kind: retail }
- # draw:
- # polygons:
- # color: [0.945, 0.898, 0.878]
-
- buildings-labels:
- data: { source: mapzen, layer: buildings }
- filter:
- all:
- - { $zoom: { min: 17 } }
- - $geometry: point
- - not: { location: underground, kind: address }
- - name: true
- any:
- - { $zoom: [16], area: { min: 5000 } }
- - { $zoom: [16], area: { min: 5000 } }
- - { $zoom: [16], area: { min: 10000 }, landuse_kind: true }
- - { $zoom: [16], area: { min: 7000 }, kind_detail: [university, college, school, kindergarten] }
- - { $zoom: [16], volume: { min: 50000 }, name: true }
- - { $zoom: [17], area: { min: 3000 } }
- - { $zoom: [17], area: { min: 2000 }, kind_detail: [university, college, school, kindergarten] }
- - { $zoom: [18], area: { min: 1000 } }
- - { $zoom: [18], kind_detail: [university, college, school, kindergarten] }
- - { $zoom: [19], area: { min: 200 } }
- - { $zoom: { min: 19 }, kind_detail: [university, college, school, kindergarten] }
- - { $zoom: { min: 20 }, area: true }
- draw:
- text-blend-order:
- interactive: true
- move_into_tile: true
- priority: 70
- visible: *text_visible_building
- order: 7
- font:
- fill: '#666'
- family: *text_font_family
- style: italic
- size: 11px
- stroke: { color: *text_stroke_address, width: 1 }
- building_labels-z15-z16-z17:
- filter: { $zoom: [15,16,17] }
- draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
- building_labels-z18:
- filter: { $zoom: [18,19] }
- draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
- building_labels-z20-up:
- filter: { $zoom: { min: 20 } }
- draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
- building-labels-z16:
- filter: function() { if( $zoom == 16 && feature.name.length > 20 ) { return true; } else { return false; } }
- draw:
- text-blend-order:
- visible: false
- building-labels-z17:
- filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
- draw:
- text-blend-order:
- visible: false
- building-labels-z20+:
- filter: { $zoom: { min: 20 } }
- draw:
- text-blend-order:
- text_source: function() { if( feature.addr_housenumber ) { return feature.name + '\n' + feature.addr_housenumber; } else { return feature.name; } }
- address-labels:
- data: { source: mapzen, layer: buildings }
- filter:
- $zoom: { min: 20 }
- any:
- - kind: address
- - { label_position: true, addr_housenumber: true, name: false }
- draw:
- text-blend-order:
- interactive: true
- order: 7
- visible: *text_visible_address
- text_source: addr_housenumber
- font:
- fill: *text_fill_address
- family: *text_font_family
- style: italic
- size: 10px
- stroke: { color: *text_stroke_address, width: 4 }
-
- boundaries:
- data: { source: mapzen, layer: boundaries }
- # country subdivisions (states, provinces)
- draw:
- lines:
- interactive: true
- order: function() { return (feature.sort_rank + 100); }
-# color: red
-# width: [[9, 1px], [14, 2px], [16, 3px], [17, 8m]]
- country:
- filter:
- kind: country
- # any:
- # - kind: country
- # - kind_detail: 2
- draw:
- lines:
- interactive: true
- color: *country_boundary
- width: [[1, 0.5px], [2, 1.0px], [4, 1.5px], [9, 2.5px], [14, 3.5px], [16, 4.5px], [17, 14m]]
- water:
- filter: { maritime_boundary: true }
- draw:
- lines:
- visible: false
- #order: function() { return (feature.sort_rank - 2); }
- #color: [0.568,0.942,1.000]
-
- # other_country_boundary_disputed_etc:
- # filter: { kind: [disputed, indefinite, indeterminate, lease_limit, line_of_control, overlay_limit] }
- # draw:
- # dashed:
- # interactive: true
- # color: *country_boundary
- # width: [[1, 0.2px], [2, 0.5px], [4, 1.0px], [9, 1.5px], [14, 2.5px], [16, 3.5px], [17, 10m]]
-
- region:
- filter:
- kind: region
- # any:
- # - type: state
- # # territorial here is probably a hack
- # - kind: [state, department, region, provincial, territorial]
- # - kind_detail: 4
- # not:
- # # deal with bogus Hungary data
- # - scalerank: 0
- draw:
- lines:
- interactive: true
- color: *region_boundary
- width: [[0, 0.5px], [2, 1.0px], [5, 1.25px], [6, 1.5px], [7, 1.75px], [9, 2.0px], [14, 4.0px], [16, 5.0px], [17, 10m]]
- water:
- filter: { maritime_boundary: true }
- draw:
- lines:
- visible: false
- early:
- filter: { not: { min_zoom: [1,2] }, $zoom: { max: 8 } }
- draw:
- lines:
- visible: false
- city_walls:
- filter: { kind: city_wall }
- draw:
- lines:
- color: *city_wall
- width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
- retaining_wall:
- filter: { kind: retaining_wall }
- draw:
- lines:
- color: *retaining_wall
- width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
- snow_fence:
- filter: { kind: snow_fence }
- draw:
- lines:
- color: *snow_fence
- width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
- fence:
- filter: { kind: fence }
- draw:
- lines:
- color: [[14,[0.770,0.765,0.755]],[18,[0.770,0.765,0.755]],[19,[0.841,0.837,0.824]]]
- width: [[14, 0.5px], [15, 0.75px], [16, 0.75px], [18, 1.5px], [19, 1m]]
- dam:
- filter: { kind: dam }
- draw:
- lines:
- color: *dam
- width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
-
- places:
- data: { source: mapzen, layer: places }
- filter: { not: { kind: [ocean, sea] } }
- draw:
- text-blend-order:
- visible: false # labels are enabled by each layer below
- font:
- family: *text_font_family
- # weight: 500
- fill: *text_fill
-
- country-z2:
- filter:
- all:
- - kind: [country]
- - $zoom: [2]
- - name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"]
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- fill: *text_fill
- weight: 200
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
- country-z3:
- filter: { name: true, population: true, kind: [country], $zoom: [3] }
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- fill: *text_fill
- weight: 200
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
- # icons:
- # size: [[13, 12px], [15, 18px]]
- # interactive: true
- # sprite: *townspot_sprite
- early-ones:
- # US, Brazil, China, Russia, Canada, Greenland, Iceland, Australia, India, Japan, Guam, Indonesia, South Africa, Egypt, Nigeria, Kenya
- filter: { not: { name: ["United States of America","Brasil","中华人民共和国","Россия","Canada","Kalaallit Nunaat","Ísland","Australia","India","日本","Guam","Indonesia","South Africa","مصر","Nigeria","Kenya"] }, $zoom: {min: 3, max: 4} }
- draw:
- text-blend-order:
- visible: false
- country-z4:
- filter: { name: true, population: true, kind: [country], $zoom: [4] }
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- fill: *text_fill
- weight: 200
- size: 13px
- stroke: { color: *text_stroke, width: 4 }
- # icons:
- # size: [[13, 12px], [15, 18px]]
- # interactive: true
- # sprite: *townspot_sprite
- early-ones-z4:
- filter: { name: [Nederland,Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,Crna Gora,Македонија,The Gambia,Burundi,Swaziland,الإمارات العربية المتحدة,العراق,Singapore,El Salvador,Belize,Trinidad and Tobago, Saint Lucia, Montserrat,Anguilla,República Dominicana,Bahamas,British Virgin Islands,Antigua and Barbuda,Grenada,Sint Maarten,Saint Kitts and Nevis,Cayman Islands,België - Belgique - Belgien], $zoom: {min: 4, max: 5} }
- draw:
- text-blend-order:
- visible: false
- country-z5:
- filter:
- all:
- - name: true
- - population: true
- - kind: [country]
- - $zoom: [5]
- any:
- - { population: { min: 5000000 } }
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- fill: *text_fill
- weight: 600
- size: 13px
- stroke: { color: *text_stroke, width: 4 }
- # country-spacer-z5:
- # filter: { kind: country, $zoom: [5] }
- # draw:
- # text-blend-order:
- # text_source: function() { return feature.name.split('').join(' ') }
- # text_wrap: false
- # icons:
- # size: [[13, 12px], [15, 18px]]
- # interactive: true
- # sprite: *townspot_sprite
- early-ones-z5:
- filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien], $zoom: {min: 5, max: 6} }
- draw:
- text-blend-order:
- visible: false
- country-z6:
- # South Ossetia and Abkhazia aren't countries (they are disputed areas)
- filter: { name: true, kind: [country], $zoom: [6] }
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- size: 14px
- weight: 600
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- small-ones-z6:
- filter: { name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 6, max: 7} }
- draw:
- text-blend-order:
- visible: false
- country-z7:
- # South Ossetia and Abkhazia aren't countries (they are disputed areas)
- filter: { name: true, kind: [country], $zoom: { min: 7, max: 9 } }
- draw:
- text-blend-order:
- priority: 3
- visible: *text_visible_admin
- text_source: function() { return feature["name:en"] || feature["name"]; }
- font:
- size: 16px
- weight: 600
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- small-ones-z7:
- filter: { name: [Liechtenstein,San Marino,Civitatis Vaticanæ,Хуссар Ирыстон,Аҧсны - Абхазия], $zoom: {min: 7, max: 8} }
- draw:
- text-blend-order:
- visible: false
-
- region-z4:
- filter: { name: true, kind: [region], $zoom: [4], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
- draw:
- text-blend-order:
- priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
- font:
- size: 11px
- weight: 400
- fill: [0.70,0.70,0.70]
- stroke: { color: *text_stroke, width: 4 }
-
- region-z5:
- filter: { name: true, kind: [region], $zoom: [5], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
- draw:
- text-blend-order:
- priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
- font:
- size: 18px
- weight: 200
- fill: [0.5,0.5,0.5,0.5]
- stroke: { color: *text_stroke, width: 4 }
-
- region-z6:
- filter: { name: true, kind: [region], $zoom: [6], not: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"] } }
- draw:
- text-blend-order:
- priority: 14
- visible: *text_visible_admin
- text_source: 'name:short'
- font:
- size: 21px
- weight: 200
- fill: [0.5,0.5,0.5,0.5]
- # stroke: { color: *text_stroke, width: 4 }
- transform: uppercase
-
- region:
- filter: { name: true, kind: [region], $zoom: {min: 7, max: 9} }
- draw:
- text-blend-order:
- priority: 14
- visible: *text_visible_admin
- text_source: function() { if(feature["name:short"]) { return feature["name"]; } else { return ""; } }
- font:
- size: 30px
- weight: 200
- fill: [0.5,0.5,0.5,0.5]
- # stroke: { color: *text_stroke, width: 4 }
- transform: uppercase
- # icons:
- # size: [[13, 12px], [15, 18px]]
- # interactive: true
- # sprite: *townspot_sprite
- pesky:
- filter: { name: ["Western Cape","Eastern Cape","Northern Cape","North West","Limpopo","KwaZulu-Natal","Hamburg","Freie und Hansestadt Hamburg","Neuchâtel","Nordrhein-Westfalen","Haute-Normandie","Baden-Württemberg","Bayern","Sachsen-Anhalt","Berlin","Mecklenburg-Vorpommern","Schleswig-Holstein","Brandenburg","Niedersachsen","Saarland","Thüringen","Hessen","Sachsen"], $zoom: {min: 7, max: 8} }
- draw:
- text-blend-order:
- visible: false
- small-ones:
- filter: { name: ["Delaware","New Jersey","Connecticut","Rhode Island","Massachusetts","New Hampshire","Vermont"], $zoom: {min: 7, max: 8} }
- draw:
- text-blend-order:
- text_source: function() { return feature["name:abbreviation"] || feature["name"]; }
- font: { transform: uppercase }
-
- populated-places:
- filter:
- kind: locality
- name: true
- draw:
- icons:
- interactive: true
- priority: 5
- text:
- interactive: true
- buffer: 3px
-
- populated-places-natural-earth-z2:
- filter: { $zoom: [2], min_zoom: 2 }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z3:
- filter: { $zoom: [3] }
- z3places-1:
- filter: { min_zoom: 2 }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- z3places-2:
- filter: { min_zoom: 3 }
- draw:
- icons:
- priority: 7
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 9px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z4:
- filter: { $zoom: [4] }
- z4places-1:
- filter: { min_zoom: 2 }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z4places-2:
- filter: { min_zoom: [3,4] }
- draw:
- icons:
- priority: 7
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 9px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z5:
- filter: { $zoom: [5] }
- z5places-1:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- priority: 7
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 15px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- priority: 5
- size: 8px
- sprite: capital-l
-# text:
-# priority: 6
-
- z5places-2:
- filter: { min_zoom: 4 }
- draw:
- icons:
- priority: 11
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- priority: 9
- size: 6px
- sprite: capital-m
-# text:
-# priority: 10
-
- z5places-3:
- filter: { min_zoom: 5 }
- draw:
- icons:
- priority: 17
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- priority: 15
- size: 6px
- sprite: capital-m
-# text:
-# priority: 16
-
- populated-places-natural-earth-z6:
- filter: { $zoom: [6] }
- z6places-1:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- priority: 7
- size: 8px
- visible: *icon_visible_populated_places
- sprite: townspot-l-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 16px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-l
- size: 8px
- priority: 5
-# text:
-# priority: 6
-
- z6places-2:
- filter: { min_zoom: [4,5] }
- draw:
- icons:
- priority: 11
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- text:
- visible: *text_visible_populated_places
- font:
- size: 13px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 6px
- sprite: capital-m
- priority: 9
-# text:
-# priority: 10
-
- z6places-3:
- filter: { min_zoom: 6 }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 15
- text:
- visible: *text_visible_populated_places
- font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 6px
- sprite: capital-m
- priority: 13
-# text:
-# priority: 14
-
- populated-places-natural-earth-z7:
- filter: { $zoom: [7] }
- z7places-1:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- size: 8px
- visible: *icon_visible_populated_places
- sprite: townspot-l-rev
- priority: 7
- text:
- visible: *text_visible_populated_places
- font:
- size: 17px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 8px
- sprite: capital-l
- priority: 5
-# text:
-# priority: 6
-
- z7places-2:
- filter: { min_zoom: [4,5,6] }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 13
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 8px
- sprite: capital-l
- priority: 11
-# text:
-# priority: 12
-
- z7places-3:
- filter: { min_zoom: [6,7] }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 17
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 6px
- sprite: capital-m
- priority: 15
-# text:
-# priority: 16
-
- populated-places-osm-z8:
- filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [8]
-
- z8places-1:
- filter:
- any:
- - { population: { min: 1000000 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 7
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 17px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 8px
- sprite: capital-l
- priority: 5
-# text:
-# priority: 6
- z8places-2:
- filter:
- any:
- - { population: { min: 150000, max: 999999 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 11
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 6px
- sprite: capital-m
- priority: 9
-# text:
-# priority: 10
-
- z8places-3:
- filter:
- any:
- - { population: { min: 85000, max: 149999 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 15
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 6px
- sprite: capital-m
- priority: 13
-# text:
-# priority: 14
-
- z8places-4:
- filter:
- any:
- - { population: { min: 50000, max: 84999 } }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 19
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 5px
- sprite: capital-m
- priority: 17
-# text:
-# priority: 18
- z8places-5:
- filter:
- all:
- - { population: { max: 50000 } }
- any:
- - { country_capital: true }
- - { region_capital: true }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 19
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 5px
- sprite: capital-s
- priority: 17
-# text:
-# priority: 18
-
- populated-places-natural-earth-z8-backfill:
- filter: { $zoom: [8], population: { max: 50000 } }
- draw: { icons: { text: { font: { fill: *text_fill } } } }
- z8places-1-ne:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- size: 8px
- visible: *icon_visible_populated_places
- sprite: townspot-l-rev
- priority: 23
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 17px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 8px
- sprite: capital-l
- priority: 21
-# text:
-# priority: 22
-
- z8places-2-ne:
- filter: { min_zoom: [4,5,6] }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
-
- z8places-3-ne:
- filter: { min_zoom: [6,7] }
- draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 27
- repeat_group: abc
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-s
- priority: 25
-# text:
-# priority: 26
-
- populated-places-osm-z9:
- filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [9]
-
- z9places-1:
- filter:
- any:
- - { population: { min: 1000000 } }
+ text_source: global.ux_language_text_source
+ font:
+ fill: *text_fill
+ size: 10px
+ stroke: { color: *text_stroke_park, width: 4 }
+ minor:
+ filter: { not: { kind_detail: [gondola,cable_car,chair_lift] }, $zoom: { max: 17 } }
+ draw:
+ text-blend-order:
+ visible: false
+ early_gondola:
+ filter: { $zoom: [14], kind_detail: [gondola,cable_car] }
draw:
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- priority: 6
font:
- size: 17px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z9places-2a:
- filter:
- any:
- - { population: { min: 350000, max: 999999 } }
+ weight: 600
+ later:
+ filter: { $zoom: { min: 15 } }
draw:
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- priority: 8
font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
+ weight: 600
+ buildings:
+ data: { source: mapzen, layer: buildings }
+ filter:
+ not: { location: underground }
+ # set default footprint and extrusion draw properties, but don't draw by default (rules below will turn visibility on)
+ draw:
+ polygons:
+ visible: false
+ order: 329
+ color: [[14,[0.930,0.940,0.940]],[15,[0.920,0.930,0.930]],[16,[0.930,0.940,0.940]]]
+ lines:
+ style: lines
+ order: 330
+ visible: false
+ color: [[14,[0.750,0.750,0.750]],[17,[0.85, 0.85, 0.85]]]
+ width: [[14, 0px], [15, 0.5px], [16,0.5px], [17,1px], [18, 1.25px]]
- z9places-2b:
- filter:
- any:
- - { population: { min: 150000, max: 350000 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 11
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
- priority: 9
-# text:
-# priority: 10
+ # building footprints, pre-extrusion
+ footprints:
+ filter:
+ any:
+ # limit show smaller landuse areas to higher zooms
+ - { $zoom: [13], scale_rank: [1,2] }
+ - { $zoom: [14], scale_rank: [1,2,3] }
+ - { $zoom: [15], area: { min: 5000 }, name: true }
+ - { $zoom: [15], area: { min: 5000 }, kind: true }
+ - { $zoom: [15], area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: [15], height: { min: 100 } }
+ - { $zoom: [15], volume: { min: 100000 } }
+ - { $zoom: [16], area: { min: 1000 }, name: true }
+ - { $zoom: [16], area: { min: 1000 }, kind: true }
+ - { $zoom: [16], area: { min: 2000 }, landuse_kind: true }
+ - { $zoom: [16], volume: { min: 50000 } }
+ #- { $zoom: [16], height: { min: 50 } }
+ - { $zoom: { min: 17 } }
+ all:
+ - not: { location: underground }
+ draw:
+ polygons:
+ visible: true
+ lines:
+ visible: true
- z9places-3:
- filter:
- any:
- - { population: { min: 85000, max: 149999 } }
+ extrude:
+ filter:
+ all:
+ - function() { return global.building_extrude; }
+ - any:
+ # for the buildings that were visible at zoom 15, extrude those all up a bit at z17
+ - { $zoom: [16], area: { min: 20000 }, name: true }
+ - { $zoom: [16], area: { min: 20000 }, kind: true }
+ - { $zoom: [16], area: { min: 5000 }, landuse_kind: true }
+ - { $zoom: [16], height: { min: 150 } }
+ - { $zoom: [16], volume: { min: 150000 } }
+ - { $zoom: [17], area: { min: 5000 }, name: true }
+ - { $zoom: [17], area: { min: 5000 }, kind: true }
+ - { $zoom: [17], area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: [17], height: { min: 100 } }
+ - { $zoom: [17], volume: { min: 100000 } }
+ - { $zoom: { min: 18 } }
+ draw:
+ polygons:
+ visible: true
+ order: 438
+ style: building-grid
+ extrude: 100
+ color: [0.930,0.940,0.940]
+ lines:
+ visible: true
+ order: 439
+ style: building-lines
+ extrude: 100
+ z16-default:
+ filter: { $zoom: [16] }
draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 15
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
- priority: 13
- text:
- font:
- size: 14px
-
- z9places-4:
- filter:
- any:
- - { population: { min: 50000, max: 84999 } }
+ polygons:
+ extrude: 20
+ lines:
+ extrude: 20
+ z18-default:
+ filter: { $zoom: { min: 18 } }
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 19
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-s
- priority: 17
-# text:
-# priority: 18
- z9places-5:
+ polygons:
+ extrude: 20
+ lines:
+ extrude: 20
+ z18-special:
filter:
- all:
- - { population: { max: 50000 } }
any:
- - { country_capital: true }
- - { region_capital: true }
+ - { $zoom: { min: 18 }, area: { min: 5000 }, name: true }
+ - { $zoom: { min: 18 }, area: { min: 5000 }, kind: true }
+ - { $zoom: { min: 18 }, area: { min: 3000 }, landuse_kind: true }
+ - { $zoom: { min: 18 }, height: { min: 100 } }
+ - { $zoom: { min: 18 }, volume: { min: 100000 } }
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 19
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-s
- priority: 17
-# text:
-# priority: 18
+ polygons:
+ extrude: 100
+ lines:
+ extrude: 100
- populated-places-osm-z9-no-population:
- filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: false
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [9]
- - kind_detail: [city,town]
+
+ # landuse-specific rules
+ # in_park:
+ # filter: { landuse_kind: [park,forest,nature_reserve,conservation,golf_course,garden] }
+ # draw:
+ # polygons:
+ # color: [0.864,0.910,0.905]
+
+ # # golf_course:
+ # # filter: { landuse_kind: golf_course }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # nature_reserve:
+ # # filter: { landuse_kind: nature_reserve }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # conservation:
+ # # filter: { landuse_kind: conservation }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # # zoo:
+ # # filter: { landuse_kind: zoo }
+ # # draw:
+ # # polygons:
+ # # color: *building2
+ # in_university:
+ # filter: { landuse_kind: [university,school] }
+ # draw:
+ # polygons:
+ # color: [0.950,0.917,0.883]
+ # lines:
+ # color: *brown1_bo
+ # in_hospital:
+ # filter: { landuse_kind: hospital }
+ # draw:
+ # polygons:
+ # color: [0.976,0.908,0.913]
+ # in_airport:
+ # filter: { landuse_kind: [aerodrome, runway, taxiway] }
+ # draw:
+ # polygons:
+ # color: *purple_b
+ # lines:
+ # color: *purple_bo
+ # width: [[14,0.5px],[15,0.5px],[17,0.5px],[18,0.75px],[19,0.25m]]
+ # in_retail:
+ # filter: { landuse_kind: retail }
+ # draw:
+ # polygons:
+ # color: [0.945, 0.898, 0.878]
+
+ transit-overlay-station-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; }
+
+ buildings-labels:
+ filter:
+ all:
+ - { $zoom: { min: 17 } }
+ - $geometry: point
+ - not: { location: underground, kind: address }
+ - name: true
+ any:
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 5000 } }
+ - { $zoom: [16], area: { min: 10000 }, landuse_kind: true }
+ - { $zoom: [16], area: { min: 7000 }, kind_detail: [university, college, school, kindergarten] }
+ - { $zoom: [16], volume: { min: 50000 }, name: true }
+ - { $zoom: [17], area: { min: 3000 } }
+ - { $zoom: [17], area: { min: 2000 }, kind_detail: [university, college, school, kindergarten] }
+ - { $zoom: [18], area: { min: 1000 } }
+ - { $zoom: [18], kind_detail: [university, college, school, kindergarten] }
+ - { $zoom: [19], area: { min: 200 } }
+ - { $zoom: { min: 19 }, kind_detail: [university, college, school, kindergarten] }
+ - { $zoom: { min: 20 }, area: true }
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source
+ interactive: global.interactive
+ move_into_tile: true
+ priority: 70
+ visible: *text_visible_building
+ order: 7
+ font:
+ fill: '#666'
+ family: *text_font_family
+ style: italic
+ size: 11px
+ stroke: { color: *text_stroke_address, width: 1 }
+ building_labels-z15-z16-z17:
+ filter: { $zoom: [15,16,17] }
+ draw: { text-blend-order: { font: { size: 12px, stroke: { width: 2 } } } }
+ building_labels-z18:
+ filter: { $zoom: [18,19] }
+ draw: { text-blend-order: { font: { size: 12px, weight: 600, stroke: { width: 3 } } } }
+ building_labels-z20-up:
+ filter: { $zoom: { min: 20 } }
+ draw: { text-blend-order: { font: { size: 14px, weight: 600, stroke: { width: 3 } } } }
+ building-labels-z16:
+ filter: function() { if( $zoom == 16 && feature.name.length > 20 ) { return true; } else { return false; } }
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 21
- text:
- # anchor: center
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
+ text-blend-order:
+ visible: false
+ building-labels-z17:
+ filter: function() { if( $zoom == 17 && feature.name.length > 30 ) { return true; } else { return false; } }
+ draw:
+ text-blend-order:
+ visible: false
+ building-labels-z20+:
+ filter: { $zoom: { min: 20 } }
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source_building_and_address
+ address-labels:
+ filter:
+ $zoom: { min: 20 }
+ any:
+ - kind: address
+ - { label_position: true, addr_housenumber: true, name: false }
+ draw:
+ text-blend-order:
+ interactive: global.interactive
+ order: 7
+ visible: *text_visible_address
+ text_source: addr_housenumber
+ font:
+ fill: *text_fill_address
+ family: *text_font_family
+ style: italic
+ size: 10px
+ stroke: { color: *text_stroke_address, width: 4 }
- populated-places-natural-earth-z9-backfill:
- filter: { $zoom: [9], population: { max: 50000 } }
- draw: { icons: { text: { font: { fill: *text_fill } } } }
- z9places-1-ne:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- size: 8px
- visible: *icon_visible_populated_places
- sprite: townspot-l-rev
- priority: 25
- text:
- visible: *text_visible_populated_places
- font:
- size: 17px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-l
- priority: 23
-# text:
-# priority: 24
+ boundaries:
+ data: { source: mapzen, layer: boundaries }
+ draw:
+ lines:
+ order: function() { return (feature.sort_rank + 100); }
+ country:
+ filter:
+ - kind: country
+ - admin_level: 2
+ draw:
+ lines:
+ color: *country_boundary
+ width: [[1, 0.5px], [2, 1.0px], [4, 1.5px], [9, 2.5px], [14, 3.5px], [16, 4.5px], [17, 14m]]
+ water:
+ filter: { maritime_boundary: true }
+ draw:
+ lines:
+ visible: false
+ labels-z9-up:
+ filter: { name: true, $zoom: { min: 9 }, not: { maritime_boundary: true } }
+ draw:
+ text-blend-order:
+ priority: 2
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_boundary_lines
+ text_wrap: 100
+ font:
+ family: *text_font_family
+ size: 9px
+ fill: [0.00,0.00,0.00]
+ transform: uppercase
- z9places-2-ne:
- filter: { min_zoom: [4,5,6] }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 29
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
- priority: 28
-# text:
-# priority: 27
+ other_country_boundary_disputed_etc:
+ filter: { kind: [disputed, indefinite, indeterminate, lease_limit, line_of_control, overlay_limit] }
+ draw:
+ dashed:
+ order: function() { return (feature.sort_rank + 100); }
+ color: *country_boundary
+ width: [[1,0.2px],[9,1.5px],[17,10m]]
+ disputed:
+ filter: { kind: [disputed, line_of_control] }
+ draw:
+ dashed:
+ visible: false
+ dashed_big:
+ order: function() { return (feature.sort_rank + 100); }
+ color: *country_boundary
+ width: [[1,0.5px],[9,2.5px],[17,14m]]
- z9places-3-ne:
- filter: { min_zoom: [6,7,9] }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 33
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
- priority: 31
-# text:
-# priority: 32
+ region:
+ filter:
+ - kind: [region,macroregion]
+ - kind_detail: [3,4]
+ draw:
+ lines:
+ color: *region_boundary
+ width: [[0, 0.5px], [2, 1.0px], [5, 1.25px], [6, 1.5px], [7, 1.75px], [9, 2.0px], [14, 4.0px], [16, 5.0px], [17, 10m]]
+ water:
+ filter: { maritime_boundary: true }
+ draw:
+ lines:
+ visible: false
+ early:
+ filter: { not: { min_zoom: [1,2] }, $zoom: { max: 8 } }
+ draw:
+ lines:
+ visible: false
+ labels-z9-up:
+ filter: { name: true, $zoom: { min: 9 }, not: { maritime_boundary: true } }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_boundary_lines
+ text_wrap: 100
+ #offset: [0px, -7px]
+ anchor: top
+ font:
+ family: *text_font_family
+ size: 9px
+ fill: [0.35,0.35,0.35]
+ transform: uppercase
+ city_walls:
+ filter: { kind: city_wall }
+ draw:
+ lines:
+ color: *city_wall
+ width: [[12, 0.75px], [13, 1.0px], [14, 1.2px], [15, 2.0px], [16, 2.5px], [19, 6m]]
+ retaining_wall:
+ filter: { kind: retaining_wall }
+ draw:
+ lines:
+ color: *retaining_wall
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 4m]]
+ snow_fence:
+ filter: { kind: snow_fence }
+ draw:
+ lines:
+ color: *snow_fence
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
+ fence:
+ filter: { kind: fence }
+ draw:
+ lines:
+ color: [[14,[0.770,0.765,0.755]],[18,[0.770,0.765,0.755]],[19,[0.841,0.837,0.824]]]
+ width: [[14, 0.5px], [15, 0.75px], [16, 0.75px], [18, 1.5px], [19, 1m]]
+ dam:
+ filter: { kind: dam }
+ draw:
+ lines:
+ color: *dam
+ width: [[14, 0.5px], [15, 1.0px], [16, 1.5px], [17, 2.0px], [19, 1.5m]]
- populated-places-osm-z10:
- filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [10]
+ places:
+ data: { source: mapzen, layer: places }
+ filter:
+ name: true
+ draw:
+ icons:
+ text:
+ text_source: global.ux_language_text_source
+ visible: false
+ buffer: 3px
+ font:
+ family: *text_font_family
+ fill: *text_fill
+ # NOTE: This is a hack for localities because of an icon & text bug, see note below
+ text-blend-order:
+ text_source: global.ux_language_text_source
+ visible: false # labels are enabled by each layer below
+ buffer: 3px
+ font:
+ family: *text_font_family
+ fill: *text_fill
+ # END NOTE
- z10places-1:
+ country:
+ filter:
+ kind: country
+ $zoom: { min: 2, max: 9 }
+ draw:
+ text-blend-order:
+ priority: 3
+ visible: *text_visible_admin
+ font:
+ fill: *text_fill
+ weight: 600
+ stroke: { color: *text_stroke, width: 4 }
+ country-z2-3:
+ filter:
+ $zoom: [2,3]
+ draw:
+ text-blend-order:
+ font:
+ priority: 10
+ buffer: 10px
+ weight: 200
+ size: 11px
+ early-ones-z2:
filter:
- any:
- - { population: { min: 1000000 } }
+ $zoom: [2]
+ not: { name: [United States of America,Brasil,中华人民共和国,Россия,Canada,Kalaallit Nunaat,Ísland,Australia,India,日本,Guam,Indonesia,South Africa,مصر,Nigeria,Kenya] }
draw:
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- font:
- size: 17px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z10places-2a:
+ visible: false
+ early-ones-z3:
filter:
- any:
- - { population: { min: 350000, max: 1000000 } }
+ $zoom: [3]
+ 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,Deutschland,España]
draw:
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z10places-2b:
- filter:
- any:
- - { population: { min: 150000, max: 350000 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 7
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z10places-3:
- filter:
- any:
- - { population: { min: 50000, max: 149999 } }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 11
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z10places-4:
+ visible: false
+ country-z4:
+ filter:
+ $zoom: [4]
+ draw:
+ text-blend-order:
+ buffer: 10px
+ priority: 8
+ font:
+ weight: 200
+ size: 13px
+ early-ones-z4:
filter:
- any:
- - { population: { min: 20000, max: 49999 } }
+ 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,Deutschland,España,Magyarország,Österreich,Polska,Хуссар Ирыстон,Аҧсны - Абхазия]
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 13
- text:
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-osm-z10-no-population:
+ text-blend-order:
+ visible: false
+ country-z5:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: false
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [10]
- - kind_detail: [city,town]
+ $zoom: [5]
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 15
- text:
- # anchor: center
- visible: *text_visible_populated_places
- font:
- size: 10px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z10-backfill:
- filter: { $zoom: [10], population: { max: 20000 } }
- draw: { icons: { text: { font: { fill: *text_fill } } } }
- z10places-1-ne:
- filter: { min_zoom: [2,3] }
- draw:
- icons:
- text:
- visible: *text_visible_populated_places
- font:
- size: 17px
- stroke: { color: *text_stroke, width: 4 }
-
- z10places-2-ne:
- filter: { min_zoom: [4,5,6] }
- draw:
- icons:
- size: 6px
- visible: *icon_visible_populated_places
- sprite: townspot-m-rev
- priority: 21
- text:
- visible: *text_visible_populated_places
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- sprite: capital-m
- priority: 20
-# text:
-# priority: 21
-
- z10places-3-ne:
- filter: { min_zoom: [6,7,9,10] }
+ text-blend-order:
+ priority: 8
+ font:
+ size: 13px
+ early-ones-z5:
+ filter:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ - name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,El Salvador,Belize,België - Belgique - Belgien,"Хуссар Ирыстон - Южная Осетия","Хуссар Ирыстон","Аҧсны - Абхазия","Լեռնային Ղարաբաղի Հանրապետությու (Nagorno-Karabakh Republic)"]
+ - population: { max: 5000000 }
draw:
- icons:
- size: 5px
- visible: *icon_visible_populated_places
- sprite: townspot-s-rev
- priority: 25
- text:
- visible: *text_visible_populated_places
- font:
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- icons:
- size: 7px
- sprite: capital-m
- priority: 23
-# text:
-# priority: 24
-
- populated-places-osm-z11:
+ text-blend-order:
+ visible: false
+ country-z6:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [11]
- - kind_detail: [city,town]
+ $zoom: [6]
draw:
text-blend-order:
- anchor: center
-
- z11places-1:
+ priority: 8
+ font:
+ size: 14px
+ small-ones-z6:
filter:
- any:
- - { population: { min: 1000000 } }
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ - name: [Luxembourg,Liechtenstein,San Marino,Civitatis Vaticanæ,België - Belgique - Belgien,"Хуссар Ирыстон - Южная Осетия","Хуссар Ирыстон","Аҧсны - Абхазия","Լեռնային Ղարաբաղի Հանրապետությու (Nagorno-Karabakh Republic)"]
+ - population: { max: 5000000 }
draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 5
- font:
- size: 18px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z11places-2:
+ visible: false
+ country-z7:
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ filter: { $zoom: { min: 7, max: 9 } }
+ draw:
+ text-blend-order:
+ font:
+ size: 16px
+ small-ones-z7:
filter:
- any:
- - { population: { min: 50000, max: 999999 } }
+ $zoom: [7]
+ # South Ossetia and Abkhazia aren't countries (they are disputed areas)
+ name: [Liechtenstein,San Marino,Civitatis Vaticanæ,"Хуссар Ирыстон - Южная Осетия","Хуссар Ирыстон","Аҧсны - Абхазия","Լեռնային Ղարաբաղի Հանրապետությու (Nagorno-Karabakh Republic)"]
draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 6
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z11places-3:
+ visible: false
+ small-pop:
filter:
- any:
- - { population: { min: 5000, max: 49999 } }
+ - population: { max: 5000000 }
draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 7
+ priority: 30
font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
+ size: 12px
- populated-places-osm-z11-no-population:
+ region:
+ filter:
+ kind: region
+ $zoom: { min: 4, max: 9 }
+ draw:
+ text-blend-order:
+ priority: 14
+ visible: false
+ font:
+ size: 11px
+ weight: normal
+ fill: [0.5,0.5,0.5,0.5]
+ region-z4:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: false
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [11]
- - kind_detail: [city,town]
+ $zoom: [4]
+ not: { name: [Western Cape,Eastern Cape,Northern Cape,North West,Limpopo,KwaZulu-Natal,Hamburg,Freie und Hansestadt Hamburg,Neuchâtel,Nordrhein-Westfalen,Haute-Normandie,Baden-Württemberg,Bayern,Sachsen-Anhalt,Berlin,Mecklenburg-Vorpommern,Schleswig-Holstein,Brandenburg,Niedersachsen,Saarland,Thüringen,Hessen,Sachsen] }
draw:
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- priority: 8
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_short
font:
- size: 11px
- fill: *text_fill
+ fill: [0.70,0.70,0.70]
stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z11-backfill:
- filter: { name: true, source: naturalearthdata.com, $zoom: [11], population: { max: 5000 } }
+ region-z5:
+ filter:
+ $zoom: [5]
+ not: { name: [Western Cape,Eastern Cape,Northern Cape,North West,Limpopo,KwaZulu-Natal,Hamburg,Freie und Hansestadt Hamburg,Neuchâtel,Nordrhein-Westfalen,Haute-Normandie,Baden-Württemberg,Bayern,Sachsen-Anhalt,Berlin,Mecklenburg-Vorpommern,Schleswig-Holstein,Brandenburg,Niedersachsen,Saarland,Thüringen,Hessen,Sachsen] }
draw:
text-blend-order:
- anchor: center
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_short
font:
- fill: *text_fill
- z11places-1-ne:
- filter: { min_zoom: [2,3] }
- draw:
- text-blend-order:
- visible: *text_visible_populated_places
- priority: 10
- font:
- size: 18px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- text-blend-order:
- priority: 9
- font:
- size: 18px
- stroke: { color: *text_stroke, width: 4 }
+ size: 18px
+ weight: 200
+ stroke: { color: *text_stroke, width: 4 }
+ region-z6:
+ filter:
+ $zoom: [6]
+ not: { name: [Western Cape,Eastern Cape,Northern Cape,North West,Limpopo,KwaZulu-Natal,Hamburg,Freie und Hansestadt Hamburg,Neuchâtel,Nordrhein-Westfalen,Haute-Normandie,Baden-Württemberg,Bayern,Sachsen-Anhalt,Berlin,Mecklenburg-Vorpommern,Schleswig-Holstein,Brandenburg,Niedersachsen,Saarland,Thüringen,Hessen,Sachsen] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_short
+ font:
+ size: 21px
+ weight: 200
+ transform: uppercase
- z11places-2-ne:
- filter: { min_zoom: [4,5,6] }
+ region-z7-z8:
+ filter: { $zoom: [7,8] }
+ draw:
+ text-blend-order:
+ visible: *text_visible_admin
+ text_source: global.ux_language_text_source_short_proxy_name
+ font:
+ size: 30px
+ weight: 200
+ transform: uppercase
+ pesky:
+ filter:
+ $zoom: [7]
+ name: [Western Cape,Eastern Cape,Northern Cape,North West,Limpopo,KwaZulu-Natal,Hamburg,Freie und Hansestadt Hamburg,Neuchâtel,Nordrhein-Westfalen,Haute-Normandie,Baden-Württemberg,Bayern,Sachsen-Anhalt,Berlin,Mecklenburg-Vorpommern,Schleswig-Holstein,Brandenburg,Niedersachsen,Saarland,Thüringen,Hessen,Sachsen]
draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 13
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- text-blend-order:
- priority: 11
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- state_capital:
- filter: { region_capital: true }
- draw:
- text-blend-order:
- priority: 12
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
+ visible: false
- z11places-3-ne:
- filter: { min_zoom: [6,7,9,10] }
+ abbrev-small-ones-z7:
+ filter:
+ $zoom: [7]
+ name: [Delaware,New Jersey,Connecticut,Rhode Island,Massachusetts,New Hampshire,Vermont]
draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 15
- font:
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
+ text_source: global.ux_language_text_source_abbreviation
+ font: { transform: uppercase }
+ region-z8:
+ filter:
+ $zoom: [8]
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source
+ no-pop:
+ filter:
+ any:
+ - population: false
+ - population: { max: 1000000 }
draw:
text-blend-order:
- priority: 14
font:
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
+ size: 16px
+
+
+ populated-places:
+ filter:
+ kind: locality
+ draw:
+ icons:
+ visible: *icon_visible_populated_places
+ size: [[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ buffer: 8px
+ priority: 30
+ text:
+ visible: *text_visible_populated_places
+ buffer: 3px
+ font:
+ size: [[5,9px],[8,10px],[12,11px]]
+ stroke: { color: *text_stroke, width: 4 }
+ text-blend-order:
+ visible: *text_visible_populated_places
+ buffer: 10px
+ font:
+ size: [[5,9px],[8,10px],[12,11px]]
+ stroke: { color: *text_stroke, width: 4 }
+
+ #
+ # NOTE: you'd think no-townspot would be the way to go, but icons with size 0px seems to have a bug to also hide the text :(
+ #
+ # no-townspot:
+ # filter: { $zoom: { min: 11 } }
+ # draw:
+ # icons:
+ # size: 0px
+ # text:
+ # anchor: center
+ #
+ # NOTE: So instead we play a shell game with symbolizers per zoom
+ #
+ _icons_later:
+ filter: { $zoom: { min: 11 } }
+ draw:
+ icons:
+ visible: false
+ text-blend-order:
+ visible: *text_visible_populated_places
+
+ _text_early:
+ filter: { $zoom: { max: 11 } }
+ draw:
+ text-blend-order:
+ visible: false
+ # END HACK
+
+ z8-50k-below:
+ filter: { $zoom: [8,9], population: { min: 10000, max: 50000 } }
+ draw:
+ icons:
+ buffer: 25px
+ #color: red
+ #visible: false
+ z9-10k-below:
+ filter: { $zoom: [8,9], population: { max: 10000 } }
+ draw:
+ icons:
+ buffer: 18px
+ #color: blue
+ #visible: false
+ z9-no-population:
+ filter: { $zoom: [8,9], population: false }
+ draw:
+ icons:
+ buffer: 10px
+ #color: yellow
+ #visible: false
- populated-places-osm-z12:
+ sorry-denver:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [12]
- - kind_detail: [city,town]
+ $zoom: [3]
+ name: [Denver]
+ draw:
+ icons:
+ visible: false
+
+ # HACK
+ # NOTE: These should use icon: buffer instead of going visible: false, but there are problems using icon here :(
+ # This fixes Paris area, but causes problems for small places in the USA eg Table Bluff near Eureka, California.
+ funky-village:
+ filter: { $zoom: [11], population: { max: 1000 }, kind_detail: [village] }
+ draw:
+ text-blend-order:
+ visible: false
+ funky-isolated_dwelling:
+ filter: { $zoom: [13], kind_detail: [isolated_dwelling] }
+ draw:
+ text-blend-order:
+ visible: false
+ hamlet:
+ filter: { $zoom: [13], kind_detail: hamlet }
draw:
text-blend-order:
- anchor: center
+ visible: false
+ # END HACK
+
+ # someone in London and Salt Lake City thought neighbourhoods should be tagged place: locality
+ # They were wrong
+ funky-fake-neighbourhoods:
+ filter: { $zoom: { min: 13 }, kind_detail: [locality] }
+ draw:
+ text-blend-order:
+ visible: false
- z12places-1:
- filter:
- any:
- - { population: { min: 1000000 } }
+ population-10m-up:
+ filter:
+ population: { min: 10000000 }
+ draw:
+ icons:
+ size: [[4,5px],[8,6px],[9,0px]]
+ sprite: townspot-m-rev
+ priority: 6
+ text:
+ font:
+ size: [[2,11px],[6,17px],[8,19px],[12,21px],[13,0px]]
+ text-blend-order:
+ priority: 6
+ font:
+ size: [[2,11px],[6,17px],[8,19px],[12,21x],[13,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,8px],[11,0px]]
+ sprite: capital-l
+ priority: 5
text-blend-order:
- visible: *text_visible_populated_places
priority: 5
+ population-5m-10m:
+ filter:
+ population: { min: 5000000, max: 10000000 }
+ draw:
+ icons:
+ size: [[4,5px],[8,6px],[9,0px]]
+ sprite: townspot-m-rev
+ priority: 7
+ text:
font:
- size: 18px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z12places-2:
- filter:
- any:
- - { population: { min: 50000, max: 999999 } }
+ size: [[4,10px],[6,16px],[8,18px],[12,20px],[13,0px]]
+ text-blend-order:
+ priority: 7
+ font:
+ size: [[4,10px],[6,16px],[8,18px],[12,20px],[13,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
- text-blend-order:
- visible: *text_visible_populated_places
+ icons:
+ size: [[10,8px],[11,0px]]
+ sprite: capital-l
priority: 6
- font:
- size: 14px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z12places-3:
- filter:
- any:
- - { population: { min: 5000, max: 49999 } }
- draw:
text-blend-order:
- visible: *text_visible_populated_places
- priority: 7
+ priority: 6
+ population-1m-5m:
+ filter:
+ population: { min: 1000000, max: 5000000 }
+ draw:
+ icons:
+ size: [[4,5px],[8,6px],[9,0px]]
+ sprite: townspot-m-rev
+ priority: 9
+ text:
font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- z12places-4:
- filter:
- any:
- - { population: { max: 5000 } }
+ size: [[4,10px],[6,16px],[8,18px],[12,20px],[13,0px]]
+ text-blend-order:
+ priority: 9
+ font:
+ size: [[4,10px],[6,16px],[8,18px],[12,20px],[13,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,8px],[11,0px]]
+ sprite: capital-l
+ priority: 8
text-blend-order:
- visible: *text_visible_populated_places
priority: 8
- font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-osm-z12-no-population:
+ population-500k-1m:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: false
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [12]
- - kind_detail: [city,town]
+ population: { min: 500000, max: 1000000 }
draw:
+ icons:
+ size: [[8,6px],[9,0px]]
+ sprite: townspot-m-rev
+ priority: 11
+ text:
+ font:
+ size: [[5,10px],[8,12px],[10,14px],[12,16px],[13,0px]]
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- priority: 9
+ priority: 11
font:
- size: 11px
- fill: *text_fill
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z12-backfill:
- filter: { name: true, source: naturalearthdata.com, $zoom: [12], population: { max: 5000 } }
+ size: [[5,10px],[8,12px],[10,14px],[12,16px],[13,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
+ draw:
+ icons:
+ size: [[10,6px],[11,0px]]
+ sprite: capital-m
+ priority: 10
+ text-blend-order:
+ priority: 10
+ population-200k-500k:
+ filter:
+ population: { min: 200000, max: 500000 }
draw:
+ icons:
+ size: [[8,6px],[9,6px],[10,6px],[11,0px]]
+ sprite: townspot-m-rev
+ priority: 13
+ collide: false #debug
+ text:
+ font:
+ size: [[6,10px],[8,14px],[10,15px],[12,16px],[13,0px]]
text-blend-order:
- anchor: center
- priority: 10
+ priority: 13
font:
- fill: *text_fill
-
- z12places-1-ne:
- filter: { min_zoom: [2,3] }
+ size: [[6,10px],[8,14px],[10,15px],[12,16px],[13,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,6px],[11,0px]]
+ sprite: capital-m
+ priority: 12
text-blend-order:
- visible: *text_visible_populated_places
priority: 12
+ population-100k-200k:
+ filter:
+ population: { min: 100000, max: 200000 }
+ draw:
+ icons:
+ size: [[8,6px],[9,6px],[10,6px],[11,0px]]
+ sprite: townspot-m-rev
+ priority: 15
+ text:
font:
- size: 18px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- text-blend-order:
- priority: 11
- font:
- size: 18px
- stroke: { color: *text_stroke, width: 4 }
-
- z12places-2-ne:
- filter: { min_zoom: [4,5,6] }
+ size: [[6,10px],[8,12px],[14,14px],[15,0px]]
+ text-blend-order:
+ priority: 15
+ font:
+ size: [[6,10px],[8,12px],[14,14px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,6px],[11,0px]]
+ sprite: capital-m
+ priority: 14
text-blend-order:
- visible: *text_visible_populated_places
priority: 14
+ population-50k-100k:
+ filter:
+ population: { min: 50000, max: 100000 }
+ draw:
+ icons:
+ size: [[8,5px],[9,5px],[10,6px],[11,0px]]
+ sprite: townspot-s-rev
+ priority: 17
+ text:
font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- text-blend-order:
- priority: 13
- font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
-
- z12places-3-ne:
- filter: { min_zoom: [6,7,9,10] }
+ size: [[6,10px],[8,12px],[14,14px],[15,0px]]
+ text-blend-order:
+ priority: 17
+ font:
+ size: [[6,10px],[8,12px],[14,14px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-m
+ priority: 16
text-blend-order:
- visible: *text_visible_populated_places
priority: 16
- font:
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
- capital:
- filter: { country_capital: true }
- draw:
- text-blend-order:
- priority: 15
- font:
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-osm-z13-z14:
+ population-20k-50k:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: true
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [13,14]
- - kind_detail: [city,town]
+ population: { min: 20000, max: 50000 }
draw:
+ icons:
+ size: [[8,5px],[9,5px],[10,5px],[11,0px]]
+ sprite: townspot-s-rev
+ priority: 19
+ text:
+ font:
+ size: [[9,10px],[14,12px],[15,0px]]
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
+ priority: 19
font:
- weight: 600
- fill: *text_fill
- z14:
- filter:
- $zoom: [14]
+ size: [[9,10px],[14,12px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 18
text-blend-order:
+ priority: 18
+ population-10k-20k:
+ filter:
+ population: { min: 10000, max: 20000 }
+ draw:
+ icons:
+ size: [[8,4px],[9,4px],[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ priority: 21
+ text:
font:
- weight: 600
-
- z13places-1:
- filter:
- any:
- - { population: { min: 200000 } }
- draw:
- text-blend-order:
- visible: false
-
- z13places-2:
- filter:
- any:
- - { population: { min: 50000, max: 199999 } }
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ text-blend-order:
+ priority: 21
+ font:
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 20
text-blend-order:
- visible: *text_visible_populated_places
- priority: 5
+ priority: 20
+ population-5k-10k:
+ filter:
+ population: { min: 5000, max: 10000 }
+ draw:
+ icons:
+ size: [[8,4px],[9,4px],[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ priority: 23
+ text:
font:
- size: 14px
- stroke: { color: *text_stroke, width: 4 }
-
- z13places-3:
- filter:
- any:
- - { population: { min: 5000, max: 49999 } }
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ text-blend-order:
+ priority: 23
+ font:
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 22
text-blend-order:
- visible: *text_visible_populated_places
- priority: 6
+ priority: 22
+ population-2k-5k:
+ filter:
+ population: { min: 2000, max: 5000 }
+ draw:
+ icons:
+ size: [[8,4px],[9,4px],[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ priority: 25
+ text:
font:
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
-
- z13places-4:
- filter:
- any:
- - population: false
- - population: true
- all:
- - population: { max: 5000 }
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ text-blend-order:
+ priority: 25
+ font:
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 24
text-blend-order:
- font:
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-osm-z13-z14-no-population:
+ priority: 24
+ population-1k-2k:
filter:
- all:
- - source: [openstreetmap, openstreetmap.org]
- - name: true
- - population: false
- - not: { kind: [country, county, state, island, neighbourhood, suburb, quarter] }
- - $zoom: [13, 14]
- - kind_detail: [city,town]
+ population: { min: 1000, max: 2000 }
draw:
+ icons:
+ size: [[8,4px],[9,4px],[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ priority: 27
+ text:
+ font:
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
text-blend-order:
- anchor: center
- visible: *text_visible_populated_places
- priority: 7
+ priority: 27
font:
- size: 11px
- stroke: { color: *text_stroke, width: 4 }
-
- populated-places-natural-earth-z13-z14-backfill:
- filter: { name: true, source: naturalearthdata.com, $zoom: [13,14], population: { max: 5000 } }
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,12px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
+ draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 26
+ text-blend-order:
+ priority: 26
+ population-200-1k:
+ filter:
+ population: { min: 200, max: 1000 }
draw:
+ icons:
+ size: [[8,4px],[9,4px],[10,4px],[11,0px]]
+ sprite: townspot-xs-rev
+ priority: 28
+ text:
+ font:
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,11px],[15,0px]]
text-blend-order:
- anchor: center
+ priority: 28
font:
- fill: *text_fill
- weight: 400
-
- z13places-1-ne:
- filter: { min_zoom: [2,3] }
+ fill: [[9,[0.25,0.25,0.25]],[11,[0.00,0.00,0.00]]]
+ size: [[9,10px],[14,11px],[15,0px]]
+ capital:
+ filter: { country_capital: true, $zoom: { min: 5 } }
draw:
+ icons:
+ size: [[10,5px],[11,0px]]
+ sprite: capital-s
+ priority: 27
text-blend-order:
- priority: 8
- interactive: false
- visible: false
+ priority: 27
- z13places-2-ne:
- filter: { min_zoom: [4,5,6] }
- draw:
- text-blend-order:
- priority: 9
- visible: *text_visible_populated_places
- font:
- size: 13px
- stroke: { color: *text_stroke, width: 4 }
- z13places-3-ne:
- filter: { min_zoom: [6,7,9,10] }
- draw:
- text-blend-order:
- visible: *text_visible_populated_places
- priority: 10
- font:
- size: 12px
- stroke: { color: *text_stroke, width: 4 }
neighbourhoods:
filter:
- all:
- - name: true
- - kind: [macrohood, neighbourhood]
- - is_landuse_aoi: false
+ kind:
+ - macrohood
+ - neighbourhood
+ - borough
+ $zoom: { min: 10 }
+ is_landuse_aoi: false
+ draw:
+ text-blend-order:
+ visible: false
+ priority: 29
+ buffer: 8px
+ text_wrap: 10
+ max_lines: 2
+ font:
+ fill: [0.600,0.600,0.600]
+ weight: normal
+ transform: uppercase
+ stroke: { color: [0.894,0.906,0.914], width: 4 }
neighborhood-z11:
filter:
- all:
- - $zoom: [11]
- - min_zoom: [11]
- - max_zoom: { min: 12 }
- #- kind_tile_rank: { max: 6 }
+ $zoom: [11]
+ min_zoom: [11]
+ max_zoom: { min: 12 }
+ #- kind_tile_rank: { max: 6 }
draw:
text-blend-order:
- priority: 18
text_wrap: 10
visible: *text_visible_neighbourhoods_e
font:
size: 9px
- weight: 400
- fill: [0.085,0.658,0.710]
- transform: uppercase
- stroke: { color: [0.894,0.906,0.914], width: 4 }
neighborhood-z12:
filter:
- all:
- - $zoom: [12]
- - min_zoom: [11,12]
- - max_zoom: { min: 13 }
+ $zoom: [12]
+ min_zoom: [11,12]
+ max_zoom: { min: 13 }
#- kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- priority: 18
text_wrap: 10
visible: *text_visible_neighbourhoods_e
font:
size: 10px
- weight: 400
- fill: [0.085,0.658,0.710]
- transform: uppercase
- stroke: { color: [0.894,0.906,0.914], width: 4 }
neighborhood-z13:
filter:
- all:
- - $zoom: [13]
- - min_zoom: [11,12,13]
- - max_zoom: { min: 14 }
- - kind_tile_rank: { max: 8 }
+ $zoom: [13]
+ min_zoom: [11,12,13]
+ max_zoom: { min: 14 }
+ kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- priority: 18
text_wrap: 10
visible: *text_visible_neighbourhoods_e
font:
size: 12px
- weight: 400
- fill: [0.085,0.658,0.710]
- transform: uppercase
+ weight: 300
+ fill: [0.620,0.620,0.620]
stroke: { color: [0.904,0.916,0.924], width: 4 }
neighborhood-z14:
filter:
- all:
- - $zoom: [14]
- - min_zoom: [11,12,13,14]
- - max_zoom: { min: 15 }
- - kind_tile_rank: { max: 8 }
+ $zoom: [14]
+ min_zoom: [11,12,13,14]
+ max_zoom: { min: 15 }
+ kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- priority: 18
text_wrap: 12
visible: *text_visible_neighbourhoods
font:
- size: 15px
+ size: 16px
weight: 300
- fill: [0.085,0.658,0.710]
- transform: uppercase
+ fill: [0.600,0.600,0.600]
stroke: { color: [0.914,0.926,0.934], width: 5 }
neighborhood-z15:
filter:
- all:
- - $zoom: [15]
- - min_zoom: [11,12,13,14,15]
- - max_zoom: { min: 16 }
- - kind_tile_rank: { max: 8 }
+ $zoom: [15]
+ min_zoom: [11,12,13,14,15]
+ max_zoom: { min: 16 }
+ kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- priority: 18
text_wrap: 12
visible: *text_visible_neighbourhoods
font:
- size: 18px
- weight: 200
- fill: [0.085,0.658,0.710]
- transform: uppercase
+ size: 21px
+ weight: 300
+ fill: [0.650,0.650,0.650]
stroke: { color: [0.949,0.953,0.953], width: 6 }
z15-new:
filter:
size: 13px
neighborhood-z16:
filter:
- all:
- - $zoom: [16]
- - min_zoom: [11,12,13,14,15,16]
- - max_zoom: { min: 17 }
- - kind_tile_rank: { max: 8 }
+ $zoom: [16]
+ min_zoom: [11,12,13,14,15,16]
+ max_zoom: { min: 17 }
+ kind_tile_rank: { max: 8 }
draw:
text-blend-order:
- priority: 18
visible: *text_visible_neighbourhoods
font:
- size: 20px
+ size: 24px
weight: 300
- fill: [0.082,0.780,1.000]
- transform: uppercase
+ fill: [0.00,0.00,0.00,0.50]
stroke: { color: [0.949,0.953,0.953], width: 6 }
+
highway-exit:
data: { source: mapzen, layer: [pois] }
filter: { kind: motorway_junction, $zoom: { min: 15 } }
visible: false
text-blend-order:
visible: *text_visible_exits
- interactive: true
+ interactive: global.interactive
text_source: ref
priority: 52
font:
visible: false
text-blend-order:
visible: *text_visible_airport_gate
- interactive: true
+ interactive: global.interactive
text_source: ref
font:
fill: *text_fill_exits
draw:
icons:
size: [[13, 18px], [16, 18px], [18, 22px]]
- interactive: true
+ interactive: global.interactive
visible: false
priority: 65
repeat_group: abc
text:
visible: false # labels are enabled by each layer below
+ text_source: global.ux_language_text_source
move_into_tile: false # preserves text alignment w/icons in JS
buffer: 7px
- interactive: true
font:
family: *text_font_family
weight: 600
text:
visible: false # labels are enabled by each layer below, and these are only for special cases like enclosures
move_into_tile: false # preserves text alignment w/icons in JS
- interactive: true
+ interactive: global.interactive
+ text_source: global.ux_language_text_source
font:
family: *text_font_family
weight: 600
priority: 49
baseball:
filter: { kind_detail: baseball }
- draw: { icons: { sprite: baseball-field } }
+ draw: { icons: { sprite: baseball } }
basketball:
filter: { kind_detail: basketball }
- draw: { icons: { sprite: basketball-court } }
+ draw: { icons: { sprite: basketball } }
football:
filter: { kind_detail: football }
- draw: { icons: { sprite: football-stadium } }
+ draw: { icons: { sprite: football } }
hockey:
- filter: { kind_detail: hockey-field }
- draw: { icons: { sprite: hockey-field } }
+ filter: { kind_detail: hockey }
+ draw: { icons: { sprite: hockey } }
soccer:
filter: { kind_detail: soccer }
- draw: { icons: { sprite: soccer-field } }
+ draw: { icons: { sprite: soccer } }
tennis:
filter: { kind_detail: tennis }
draw: { icons: { sprite: tennis } }
filter: { $zoom: [18] }
draw:
icons:
- # to circle white SMALL
color: [0.459,0.765,0.722]
- sprite: dot-white
+ sprite: tree-s
z19:
filter: { $zoom: [19] }
draw:
icons:
- # to circle white SMALL
sprite: tree
gate:
filter: { kind: gate, $zoom: { min: 19 } }
draw:
icons:
# to circle black generic
- sprite: dot-black
+ sprite: gate
visible: *icon_visible_poi_landuse_e
text:
text_source: function() { return 'gate'; }
draw: { icons: { sprite: playground, visible: *icon_visible_poi_landuse_e } }
picnic_site:
filter: { kind: [picnic_site, picnic_table], $zoom: { min: 15 } }
- draw: { icons: { sprite: picnic-spot, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: picnic_site, visible: *icon_visible_poi_landuse_e } }
information:
filter: { kind: information, $zoom: { min: 18 } }
draw: { icons: { sprite: information, visible: *icon_visible_poi_landuse_e } }
- drinking-water:
+ drinking_water:
filter: { kind: drinking_water, $zoom: { min: 18 } }
- draw: { icons: { sprite: drinking-water, visible: *icon_visible_poi_landuse_e } }
- traffic-signal:
+ draw: { icons: { sprite: drinking_water, visible: *icon_visible_poi_landuse_e } }
+ traffic_signals:
filter: { kind: traffic_signals, $zoom: { min: 18 } }
- draw: { icons: { sprite: traffic-signal, visible: *icon_visible_poi_landuse_e } }
- bicycle-parking:
+ draw: { icons: { sprite: traffic_signals, visible: *icon_visible_poi_landuse_e } }
+ bicycle_parking:
filter: { kind: [bicycle_parking], $zoom: { min: 19 } }
- draw: { icons: { sprite: bicycle-parking, visible: *icon_visible_poi_landuse_e } }
- car-parking:
+ draw: { icons: { sprite: bicycle_parking, visible: *icon_visible_poi_landuse_e } }
+ parking:
filter: { kind: parking, $zoom: { min: 17 } }
draw:
icons:
icons:
sprite: bbq
visible: *icon_visible_poi_landuse_e
- ranger-station:
+ ranger_station:
filter: { kind: [ranger_station], $zoom: { min: 15 } }
- draw: { icons: { sprite: ranger-station, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: ranger_station, visible: *icon_visible_poi_landuse_e } }
trailhead:
filter: { kind: [trailhead], $zoom: { min: 15 } }
draw: { icons: { sprite: trailhead, visible: *icon_visible_poi_landuse_e } }
firepit:
filter: { kind: [firepit], $zoom: { min: 15 } }
draw: { icons: { sprite: firepit, visible: *icon_visible_poi_landuse_e } }
- swimming-area:
+ swimming_area:
filter: { kind: [swimming_area], $zoom: { min: 15 } }
- draw: { icons: { sprite: swimming-area, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: swimming_area, visible: *icon_visible_poi_landuse_e } }
fishing_area:
filter: { kind: [fishing_area], $zoom: { min: 15 } }
- draw: { icons: { sprite: fishing-area, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: fishing_area, visible: *icon_visible_poi_landuse_e } }
slipway:
filter: { kind: [slipway], $zoom: { min: 15 } }
draw: { icons: { sprite: slipway, visible: *icon_visible_poi_landuse_e } }
- hot-spring:
+ hot_spring:
filter: { kind: [hot_spring], $zoom: { min: 15 } }
- draw: { icons: { sprite: hot-spring, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: hot_spring, visible: *icon_visible_poi_landuse_e } }
spring:
filter: { kind: [spring], $zoom: { min: 15 } }
draw: { icons: { sprite: spring, visible: *icon_visible_poi_landuse_e } }
observatory:
filter: { kind: [observatory], $zoom: { min: 14 } }
draw: { icons: { sprite: observatory, visible: *icon_visible_poi_landuse_e } }
- boat-rental:
- filter: { kind: [boat_rental], $zoom: { min: 15 } }
- draw: { icons: { sprite: boat-rental, visible: *icon_visible_poi_landuse_e } }
- water-tower:
+ water_tower:
filter: { kind: [water_tower], $zoom: { min: 15 } }
- draw: { icons: { sprite: water-tower, visible: *icon_visible_poi_landuse_e } }
+ draw: { icons: { sprite: water_tower, visible: *icon_visible_poi_landuse_e } }
battlefield:
filter: { kind: [battlefield] }
draw: { icons: { sprite: battlefield, visible: *icon_visible_poi_landuse_e } }
visible: true
text_source: ref
outdoor-needing-icons:
- filter: { kind: [bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, silo, putin, egress, hazard, put_in_egress, rapid, beacon, cross, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, horse, fire_lookout, fee_station, rest_area] }
+ filter: { kind: [boat_rental, bicycle_repair_station, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, silo, putin, egress, hazard, put_in_egress, rapid, beacon, cross, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, horse, fire_lookout, fee_station, rest_area] }
draw:
icons:
priority: 43
priority: 41
text:
visible: *text_visible_landuse_green
+ text_source: global.ux_language_text_source
font:
style: italic
stroke: { color: *text_stroke_park, width: 4 }
draw:
icons:
visible: *icon_visible_landuse_green
- interactive: true
sprite: beach
text:
visible: *text_visible_landuse_green
- interactive: true
airport:
filter:
all:
priority: 42
text:
visible: *text_visible_landuse_green
- text_source: function() { if(feature.iata) { return feature.name + ' (' + feature.iata + ')'; } else { return feature.name; } }
+ text_source: global.ux_language_text_source_iata
font:
#fill: [0.10,0.10,0.10]
size: 10px
visible: *label_visible_landuse_green
draw:
icons:
- sprite: college-university
+ sprite: college
visible: *icon_visible_landuse_green
priority: 41
text:
- { $zoom: { min: 18 } }
draw:
icons:
- sprite: ski-area
+ sprite: ski
visible: *icon_visible_landuse_green
priority: 41
text:
draw:
icons:
visible: false
- sprite_default: dot-black
+ sprite_default: enclosure
text:
text_wrap: 10
font:
text:
visible: true
priority: 44
- interactive: true
text_wrap: 10
font:
weight: 400
icons:
visible: false
text: { font: { style: italic } }
- burial_vault-early:
- filter: { kind: [burial_vault], $zoom: { max: 19 } }
- draw:
- icons:
- visible: false
- text: { visible: false }
+ # burial_vault-early:
+ # filter: { kind: [burial_vault], $zoom: { max: 19 } }
+ # draw:
+ # icons:
+ # visible: false
+ # text: { visible: false }
garden-area-early:
filter:
all:
font:
style: italic
station-train-subway:
- filter: { kind: [station, train-station, train_station], $zoom: { min: 11 } }
+ filter: { kind: [station, train_station], $zoom: { min: 11 } }
visible: *label_visible_station
draw:
icons:
visible: *icon_visible_station
- sprite: train-station
+ sprite: train_station
size: [[13, 12px], [14, 12px], [15, 16px], [17, 18px], [18, 20px]]
priority: 41
text:
text:
visible: false
priority: 45
- interactive: true
text_wrap: 10
font:
weight: 400
visible: false
text: { visible: false }
outdoor-needing-icons:
- filter: { kind: [bicycle_repair_station, cycle_barrier, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, putin, egress, hazard, put_in_egress, rapid, beacon, cross, mineshaft, adit, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, fishing, recreation_track, horse, fire_lookout, fee_station, rest_area] }
+ filter: { kind: [boat_rental,bicycle_repair_station, cycle_barrier, life_ring, waste_disposal, watering_place, water_point, lifeguard_tower, power_pole, power_tower, petroleum_well, communications_tower, putin, egress, hazard, put_in_egress, rapid, beacon, cross, mineshaft, adit, water_well, saddle, dune, sinkhole, rock, stone, bicycle_junction, walking_junction, dam, boat_storage, windmill, fishing, recreation_track, horse, fire_lookout, fee_station, rest_area] }
draw:
icons:
order: 41
font:
style: italic
icons:
- adult-boutique:
- filter: { kind: [erotic, adult_boutique] }
- draw: { icons: { sprite: adult-boutique } }
- allotments:
- filter: { kind: [allotments] }
- draw: { icons: { sprite: allotments } }
- airport:
- filter: { kind: [airport, aerodrome] }
- draw: { icons: { sprite: airport } }
- animal-shelter:
- filter: { kind: [animal_shelter, animal-shelter, animal_boarding] }
- draw: { icons: { sprite: animal-shelter } }
- antique-shop:
- filter: { kind: [antiques, antique-shop] }
- draw: { icons: { sprite: antique-shop } }
- art-gallery:
- filter: { kind: [art_gallery, art-gallery, art, artwork] }
- draw: { icons: { sprite: art-gallery } }
- athletics-sports:
- filter: { kind: [athletic_sports, recreation_ground, sports_centre] }
- draw: { icons: { sprite: athletics-sports } }
- automotive-shop:
- filter: { kind: [car_repair, automotive-shop, automotive, tyres] }
- draw: { icons: { sprite: automotive-shop } }
- bbq:
- filter: { kind: [bbq] }
- draw: { icons: { sprite: bbq } }
- bakery:
- filter: { kind: [bakery, pastry, chocolate] }
- draw: { icons: { sprite: bakery } }
- bar:
- filter: { kind: [pub, bar] }
- draw: { icons: { sprite: bar } }
- beach-resort:
- filter: { kind: [beach_resort] }
- draw: { icons: { sprite: beach-resort } }
- beer-garden:
- filter: { kind: [biergarten, beer-garden, brewery] }
- draw: { icons: { sprite: beer-garden } }
- bike-shop:
- filter: { kind: [bicycle, bicycle_rental, bike, bike_shop, bicycle_rental_station] }
- draw: { icons: { sprite: bike-shop } }
- bicycle-parking:
- filter: { kind: [bicycle_parking] }
- draw: { icons: { sprite: bicycle-parking } }
- boat-ferry:
- filter: { kind: [ferry_terminal, boat-ferry, ferry-boat, ferry] }
- draw: { icons: { sprite: boat-ferry } }
- boat-ramp:
- filter: { kind: [boat-ramp, boat_ramp] }
- draw: { icons: { sprite: boat-ramp } }
- bookstore:
- filter: { kind: [books, bookstore] }
- draw: { icons: { sprite: bookstore } }
- bowling-alley:
- filter: { kind: [bowling_alley, bowling-alley] }
- draw: { icons: { sprite: bowling-alley } }
- bridal-shop:
- filter: { kind: [bridal, bridal-shop] }
- draw: { icons: { sprite: bridal-shop } }
building-icon:
filter: { kind: [building, auditorium, terminal, hangar, retirement_home, manor, recreation_center, apartments] }
draw: { icons: { sprite: building } }
visible: false
text:
visible: false
- burger:
- filter: { kind: [fast_food, burger] }
- draw: { icons: { sprite: burger } }
- bus-station:
- filter: { kind: [bus_stop, bus_station] }
- draw: { icons: { sprite: bus-station } }
- camera-store:
- filter: { kind: [camera, camera-store, photo] }
- draw: { icons: { sprite: camera-store } }
- campground:
- filter: { kind: [campground, camp_site] }
- draw: { icons: { sprite: campground } }
- candy-store:
- filter: { kind: [candy, candy-store, confectionery] }
- draw: { icons: { sprite: candy-store } }
- caravan-site:
- filter: { kind: [caravan_site] }
- draw: { icons: { sprite: caravan-site } }
- car-dealership:
- filter: { kind: [car, car-dealership] }
- draw: { icons: { sprite: car-dealership } }
- car-wash:
- filter: { kind: [car_wash, car-wash] }
- draw: { icons: { sprite: car-wash } }
- castle:
- filter: { kind: [castle, fort] }
- draw: { icons: { sprite: castle } }
- cemetery:
- filter: { kind: [grave_yard, cemetery] }
- draw: { icons: { sprite: cemetery } }
- cheese-shop:
- filter: { kind: [cheese, cheese-shop] }
- draw: { icons: { sprite: cheese-shop } }
- clothing-store:
- filter: { kind: [clothes, chothing-store, "clothes store", fashion] }
- draw: { icons: { sprite: clothing-store } }
- coffee-shop:
- filter: { kind: [cafe, coffee-shop] }
- draw: { icons: { sprite: coffee-shop } }
- college-university:
- filter: { kind: [university, college, college-university], area: false }
- draw: { icons: { sprite: college-university } }
- commercial:
- filter: { kind: [commercial] }
- draw: { icons: { sprite: mall } }
- concert-hall:
- filter: { kind: [music_venue] }
- draw: { icons: { sprite: concert-hall } }
- convenience-store:
- filter: { kind: [convenience, convenience-store, convenience_store, beverages] }
- draw: { icons: { sprite: convenience-store } }
- cosmetics-shop:
- filter: { kind: [cosmetics, cosmetics-shop, beauty] }
- draw: { icons: { sprite: cosmetics-shop } }
+ college:
+ filter: { kind: [university, college], area: false }
+ draw: { icons: { sprite: college } }
dam:
filter: { kind: [dam] }
- draw: { icons: { sprite: dot-black } }
- department-store:
- filter: { kind: [department_store, department-store] }
- draw: { icons: { sprite: department-store } }
- doctors:
- filter: { kind: [doctors, clinic] }
- draw: { icons: { sprite: doctors } }
- dog-park:
- filter: { kind: [dog_park, dog_run, dog-run] }
- draw: { icons: { sprite: dog-park } }
- drinking-water:
- filter: { kind: drinking_water }
- draw: { icons: { sprite: drinking-water } }
- dry-cleaning:
- filter: { kind: [dry_cleaning] }
- draw: { icons: { sprite: dry-cleaning } }
- electronics-store:
- filter: { kind: [electronics, electronics-store, computer] }
- draw: { icons: { sprite: electronics-store } }
- factory:
- filter: { kind: [factory, industrial, chimney, sub_station, substation, wastewater_plant, works, water_works, plant, generator] }
- draw: { icons: { sprite: factory } }
- farmers-market:
- filter: { kind: [farmers_market, farmers-market] }
- draw: { icons: { sprite: farmers-market } }
- fire-station:
- filter: { kind: [fire_station, fire-station] }
- draw: { icons: { sprite: fire-station } }
- fish-market:
- filter: { kind: [fish, fish-market, seafood, fishmonger] }
- draw: { icons: { sprite: fish-market } }
- fishing-area:
- filter: { kind: [fishing_area, fishing-spot, fishing] }
- draw: { icons: { sprite: fishing-area } }
- fitness:
- filter: { kind: [gym, fitness, fitness_center] }
- draw: { icons: { sprite: fitness } }
- flea-market:
- filter: { kind: [flea_market, flea-market] }
- draw: { icons: { sprite: flea-market } }
- flower-shop:
- filter: { kind: [florist, flower-shop] }
- draw: { icons: { sprite: flower-shop } }
- forest:
- filter: { kind: [forest, conservation, wood] }
- draw: { icons: { sprite: forest } }
- furniture-store:
- filter: { kind: [furniture, furniture-store] }
- draw: { icons: { sprite: furniture-store } }
- garden-center:
- filter: { kind: [garden_centre, garden_center] }
- draw: { icons: { sprite: garden-center } }
- gas:
- filter: { kind: [gas, gas_canister] }
- draw: { icons: { sprite: gas } }
- gas-station:
- filter: { kind: [fuel, gas-station] }
- draw: { icons: { sprite: gas-station } }
- general-entertainment:
- filter: { kind: [ticket, general_entertainment] }
- draw: { icons: { sprite: general-entertainment } }
- generic:
- filter: { kind: [generic] }
- draw: { icons: { sprite: generic } }
- gift-shop:
- filter: { kind: [gift, gift-shop] }
- draw: { icons: { sprite: gift-shop } }
- golf-course:
- filter: { kind: [golf-course, golf_course] }
- draw: { icons: { sprite: golf-course } }
- government-building:
- filter: { kind: [townhall, public_building, embassy] }
- draw: { icons: { sprite: government-building } }
- grocery-store:
- filter: { kind: [supermarket, grocery-store, health_food, greengrocer] }
- draw: { icons: { sprite: grocery-store } }
- harbor-marina:
- filter: { kind: [marina, harbor, harbor-marina, harbor_marina, dock, mooring] }
- draw: { icons: { sprite: harbor-marina } }
+ draw: { icons: { sprite: dam } }
hardware-store:
filter: { kind: [hardware, hardware-store, doityourself, paint] }
draw: { icons: { sprite: hardware-store } }
hotel:
filter: { kind: [hotel, motel, hostel] }
draw: { icons: { sprite: hotel } }
- hot_spring:
- filter: { kind: [hot_spring] }
- draw: { icons: { sprite: hot-spring } }
- hunting:
- filter: { kind: [hunting] }
- draw: { icons: { sprite: hunting } }
- ice-cream-shop:
- filter: { kind: [ice_cream] }
- draw: { icons: { sprite: ice-cream-shop } }
- information:
- filter: { kind: [info, information] }
- draw: { icons: { sprite: information } }
- jewelry-store:
- filter: { kind: [jewelry, jewelry_store, jewelry-store] }
- draw: { icons: { sprite: jewelry-store } }
landmark:
filter: { kind: [landmark, memorial, monument, wayside_shrine, beacon] }
draw: { icons: { sprite: landmark } }
tower:
filter: { kind: [tower], label_placement: false }
draw: { icons: { sprite: landmark } }
- laundry:
- filter: { kind: [laundry] }
- draw: { icons: { sprite: laundry } }
- light-rail:
- filter: { kind: [light-rail, light_rail, tram_stop] }
- draw: { icons: { sprite: light-rail } }
- liquor-store:
- filter: { kind: [alcohol, liquor-store, liquor] }
- draw: { icons: { sprite: liquor-store } }
- market:
- filter: { kind: [market, variety_store, boutique, dairy, retail] }
- draw: { icons: { sprite: market } }
- mine:
- filter: { kind: [mine, mineshaft, adit] }
- draw: { icons: { sprite: mine } }
- quarry:
- filter: { kind: [quarry] }
- draw: { icons: { sprite: quarry } }
- miscellaneous-shop:
- filter: { kind: [houseware, miscellaneous-shop] }
- draw: { icons: { sprite: miscellaneous-shop } }
- mobile-phone-shop:
- filter: { kind: [mobile_phone] }
- draw: { icons: { sprite: mobile-phone-shop } }
- motorcycle-shop:
- filter: { kind: [motorcycle_shop, motorcycle_repair] }
- draw: { icons: { sprite: motorcycle-shop } }
- motorcycle:
- filter: { kind: [motorcycle] }
- draw: { icons: { sprite: motorcycle } }
- mountain:
- filter: { kind: [mountain, peak] }
- draw: { icons: { sprite: mountain } }
- movie-theatre:
- filter: { kind: [cinema, movie-theatre, movie-theater] }
- draw: { icons: { sprite: movie-theatre } }
- museum:
- filter: { kind: [museum] }
- draw: { icons: { sprite: museum } }
- music-store:
- filter: { kind: [music, music-store, musical_instrument] }
- draw: { icons: { sprite: music-store } }
- newsstand:
- filter: { kind: [kiosk, newsstand, newsagent] }
- draw: { icons: { sprite: newsstand } }
- nightlife:
- filter: { kind: [nightclub, nightlife] }
- draw: { icons: { sprite: nightlife } }
- office:
- filter: { kind: [insurance, office, company] }
- draw: { icons: { sprite: office } }
- office-supplies:
- filter: { kind: [office_supplies, office-supplies, stationery] }
- draw: { icons: { sprite: office-supplies } }
- optical-shop:
- filter: { kind: [optician, optical_shop, optical-shop] }
- draw: { icons: { sprite: optical-shop } }
- outdoor:
- filter: { kind: [outdoor] }
- draw: { icons: { sprite: outdoor } }
- performing-arts:
- filter: { kind: [theater, theatre, performing-arts] }
- draw: { icons: { sprite: performing-arts } }
- pet-store:
- filter: { kind: [pet, pet-store, pet-service, pet_store] }
- draw: { icons: { sprite: pet-store } }
- pharmacy:
- filter: { kind: [pharmacy, chemist] }
- draw: { icons: { sprite: pharmacy } }
- photography-lab:
- filter: { kind: [photo_studio, photography_lab, photographer] }
- draw: { icons: { sprite: photography-lab } }
- picnic-spot:
- filter: { kind: [picnic_site, picnic_spot, picnic-spot, picnic_table] }
- draw: { icons: { sprite: picnic-spot } }
- pool:
- filter: { kind: [pool, swimming_pool] }
- draw: { icons: { sprite: pool } }
- pool-hall:
- filter: { kind: [billiards, pool-hall] }
- draw: { icons: { sprite: pool-hall } }
- post-office:
- filter: { kind: [post_office, post-office] }
- draw: { icons: { sprite: post-office } }
- power-pylon:
- filter: { kind: [tower, power-pylon, pylon] }
- draw: { icons: { sprite: power-pylon } }
- ranger-station:
- filter: { kind: [ranger_station] }
- draw: { icons: { sprite: ranger-station } }
- real-estate:
- filter: { kind: [estate_agent, real_estate] }
- draw: { icons: { sprite: real-estate } }
- recreation-track:
- filter: { kind: [recreation_track] }
- draw: { icons: { sprite: recreation-track } }
- recycling-facility:
- filter: { kind: [recycling, recycling-facility] }
- draw: { icons: { sprite: recycling-facility } }
- rental-car:
- filter: { kind: [rental-car, car_rental, car_sharing] }
- draw: { icons: { sprite: rental-car } }
- rest-area:
- filter: { kind: [rest_area, rest-area] }
- draw: { icons: { sprite: rest-area } }
- restaurant:
- filter: { kind: [restaurant, deli] }
- draw: { icons: { sprite: restaurant } }
- ruin:
- filter: { kind: [ruins, archaeological_site] }
- draw: { icons: { sprite: ruin } }
- salon-barber:
- filter: { kind: [hairdresser, salon-barber, salon, beauty_salon] }
- draw: { icons: { sprite: salon-barber } }
- scuba-diving:
- filter: { kind: [scuba_diving,dive_centre] }
- draw: { icons: { sprite: scuba-diving } }
- ship-wreck:
- filter: { kind: [wreck] }
- draw: { icons: { sprite: ship-wreck } }
- shoe-store:
- filter: { kind: [shoes, shoe-store, shoe_store] }
- draw: { icons: { sprite: shoe-store } }
- slipway:
- filter: { kind: [slipway] }
- draw: { icons: { sprite: slipway } }
- smoke-shop:
- filter: { kind: [smoke_shop, tobacco] }
- draw: { icons: { sprite: smoke-shop } }
- spa-massage:
- filter: { kind: [spa, spa-massage, sauna, massage] }
- draw: { icons: { sprite: spa-massage } }
# prefix with "a-" here to allow Tangram to sort the generic style 1st, allowing more specific religion tags to win later
- a-spiritual-center:
+ place_of_worship:
filter:
all:
- - kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel]
- draw: { icons: { sprite: spiritual-center } }
- church:
- filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: christian }
- draw: { icons: { sprite: church } }
- synagogue:
- filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: jewish }
- draw: { icons: { sprite: synagogue } }
- buddhist:
- filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: buddhist }
- draw: { icons: { sprite: buddhism } }
- mosque:
- filter: { kind: [spiritual_center, spiritual-center, place_of_worship, wayside_chapel], religion: muslim }
- draw: { icons: { sprite: mosque } }
- sporting-goods-shop:
- filter: { kind: [sporting_goods, sporting-goods-shop, sports] }
- draw: { icons: { sprite: sporting-goods-shop } }
- stable:
- filter: { kind: [stable, horse_riding, horse] }
- draw: { icons: { sprite: stable } }
- storage-facility:
- filter: { kind: [storage, storage-facility] }
- draw: { icons: { sprite: storage-facility } }
- subway-entrance:
- filter: { kind: [subway_entrance] }
- draw: { icons: { sprite: subway-entrance } }
- summer-camp:
- filter: { kind: [summer_camp] }
- draw: { icons: { sprite: summer-camp } }
- tailor-shop:
- filter: { kind: [tailor, tailor-shop] }
- draw: { icons: { sprite: tailor-shop } }
- tattoo-parlor:
- filter: { kind: [tattoo, tattoo_parlor, tattoo-parlor] }
- draw: { icons: { sprite: tattoo-parlor } }
- telescope:
- filter: { kind: [telescope] }
- draw: { icons: { sprite: telescope } }
- theme-park:
- filter: { kind: [theme_park, theme-park, miniature_golf] }
- draw: { icons: { sprite: theme-park } }
- thrift-vintage-store:
- filter: { kind: [thrift, thrift-vintage-store, second_hand] }
- draw: { icons: { sprite: thrift-vintage-store } }
- toll-booth:
- filter: { kind: [toll_booth, checkpoint, border_control] }
- draw: { icons: { sprite: toll-booth } }
- toy-game-store:
- filter: { kind: [toys, toy-game-store, baby_goods] }
- draw: { icons: { sprite: toy-game-store } }
- toilets:
- filter: { kind: [toilets] }
- draw: { icons: { sprite: toilets } }
- trailhead:
- filter: { kind: [trailhead, hiking_trail] }
- draw: { icons: { sprite: trailhead } }
- veterinarian:
- filter: { kind: [pet_care, veterinarian, veterinary] }
- draw: { icons: { sprite: veterinarian } }
- video-game-store:
- filter: { kind: [video_games] }
- draw: { icons: { sprite: video-game-store } }
- video-store:
- filter: { kind: [video, video_store] }
- draw: { icons: { sprite: video-store } }
- view-point:
- filter: { kind: [viewpoint, view_point, view-point, vista] }
- draw: { icons: { sprite: view-point } }
- waterfall:
- filter: { kind: [waterfall] }
- draw: { icons: { sprite: waterfall } }
- waterpark:
- filter: { kind: [water_park] }
- draw: { icons: { sprite: waterpark } }
- well:
- filter: { kind: [well, water_well] }
- draw: { icons: { sprite: well } }
- wine-shop:
- filter: { kind: [wine, wine-shop] }
- draw: { icons: { sprite: wine-shop } }
- winery:
- filter: { kind: [winery, wine] }
- draw: { icons: { sprite: winery } }
- winter_sport:
- filter: { kind: [ski, ski_rental, ski_school, ski_jumping, skiing] }
- draw: { icons: { sprite: ski-area } }
+ - kind: [place_of_worship, wayside_chapel]
+ draw:
+ icons:
+ sprite: function() { return feature.religion; }
+ sprite_default: place_of_worship
water-area-labels:
data: { source: mapzen, layer: [water] }
visible: *text_visible_water_labels
default-label-text:
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
fill: *text_fill_water
family: *text_font_family
filter: { name: true, kind: [sea, ocean] }
draw:
text-blend-order:
+ text_source: global.ux_language_text_source
font:
fill: *text_fill_water
family: *text_font_family
- weight: 400
+ weight: normal
size: 12px
transform: uppercase
- sea-early:
- filter: { $zoom: [3], kind: sea }
- draw: { text-blend-order: { visible: false } }
ocean-spacer:
filter: { kind: ocean }
ocean-spacer-z1-z4:
filter: { $zoom: { min: 1, max: 4 } }
draw:
text-blend-order:
- text_source: function() { return feature.name.split('').join(' ') }
+ text_source: global.ux_language_text_source_sea
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] }
- draw:
- text-blend-order: { font: { size: 8px } }
- ocean-labels-z2:
- filter: { $zoom: [2] }
- draw:
- text-blend-order: { font: { size: 10px } }
- ocean-labels-z3:
- filter: { $zoom: [3] }
+ ocean-labels:
draw:
- text-blend-order: { font: { size: 13px } }
- ocean-labels-z4-up:
- filter: { $zoom: { min: 4} }
- draw:
- text-blend-order: { font: { size: 16px } }
+ text-blend-order:
+ font:
+ size: [[1,8px],[2,10px],[3,13px],[4,16px]]
+ sea-early:
+ filter: { $zoom: [3], kind: sea }
+ draw: { text-blend-order: { visible: false } }
sea-spacer:
filter: { not: { kind: [ocean] }, $zoom: { min: 4 } }
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: 8px, fill: [0.250,0.250,0.250] } }
- sea-labels-z5:
- filter: { $zoom: [5] }
- draw:
- text-blend-order: { font: { size: 10px } }
- sea-labels-z6:
- filter: { $zoom: [6] }
- draw:
- text-blend-order: { font: { size: 11px } }
- sea-labels-z7:
- filter: { $zoom: [7] }
- draw:
- text-blend-order: { font: { size: 12px } }
- sea-labels-z8:
- filter: { $zoom: { min: 8} }
- draw:
- text-blend-order: { font: { size: 14px } }
+ draw:
+ text-blend-order:
+ font:
+ fill: [0.350,0.350,0.350]
+ size: [[4,8px],[6,11px],[8,14px]]
earth-labels:
data: { source: mapzen, layer: earth }
filter: { name: true }
+ draw:
+ text-blend-order:
+ text_source: global.ux_language_text_source
continent:
- filter: { name: true, kind: [continent], $zoom: {max: 5} }
+ filter: { kind: [continent], $zoom: {max: 5} }
draw:
text-blend-order:
visible: *text_visible_continent
+ text_source: global.ux_language_text_source_continent_stacked_only
+ text_wrap: false
font:
- size: 14px
+ family: *text_font_family
+ size: [[1,11px],[3,14px]]
style: italic
fill: *text_fill
- weight: 600
- # stroke: { color: *text_stroke, width: 4 }
+ weight: normal
transform: uppercase
- continent-spacer:
- filter: { kind: continent }
- continent-spacer-z1-z5:
- filter: { $zoom: { min: 1, max: 5 } }
+ continent-spacer:
+ filter: { $zoom: { min: 2 } }
draw:
text-blend-order:
- text_source: function() { return feature.name.split('').join(' ') }
- text_wrap: false
+ text_source: global.ux_language_text_source_continent
island:
filter: { kind: [archipelago, island, islet] }
draw:
visible: *text_visible_island
text_wrap: 10
font:
+ family: *text_font_family
size: 12px
style: italic
fill: *text_fill
- weight: 400
+ weight: normal
stroke: { color: *text_stroke, width: 4 }
#transform: uppercase
draw:
lines:
order: 999
- interactive: true
#cliff:
# filter: { kind: cliff }
# draw:
draw:
dots-lines:
order: 1002
- interactive: true
color: [0.120,0.600,0.520]
#width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 3px], [17, 6px], [18, 7px], [19, 10px]]
width: [[13, 0.75px], [14, 1px], [15, 3.5px], [16, 3px], [17, 4px], [18, 5px], [19, 8px]]
#color: purple
lines:
order: 1000
- interactive: true
#width: [[13, 0.75px], [14, 0.85px], [15, 1.1px], [16, 2px], [17, 6px], [18, 7px], [19, 10px]]
#color: [[15,[0.120,0.600,0.520]],[16,[0.623,0.820,0.797]]]
color: [[14,[0.510,0.752,0.695]],[15,[0.671,0.839,0.820]],[16,[0.671,0.839,0.820]]]
# color: blue #[0.120,0.600,0.520]
# width: [[13, 1px], [14, 1.45px], [15, 1.1px], [16, 1.5px], [17, 2px], [18, 5px], [19, 6px]]
# order: 1004
- interactive: true
color: [[11,[0.120,0.600,0.520]],[14,[0.120,0.600,0.520]],[15,[1.00,1.00,1.00]]]
#width: [[11, 0.25px], [12, 0.35px], [13, 0.55px],[14,1px],[15,0px]]
width: [[13, 0.75px], [14, 1.1px], [15, 1.1px], [16, 1.5px], [17, 2.2px], [18, 5px], [19, 6px]]
# color: [0.756,0.563,0.499]
width: [[13, 0.6px], [14, 1px], [15, 1.1px], [16, 1.25px], [17, 1.5px], [18, 5px], [19, 6px]]
order: 990
- interactive: true
late:
filter: { $zoom: { min: 16 } }
draw:
color: [0.710,0.553,0.522]
width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1.5px], [17, 3px], [18, 3m]]
order: 990
- interactive: true
late:
filter: { $zoom: { min: 15 } }
draw:
color: [0.120,0.600,0.520]
width: [[11, 0.25px], [12, 0.35px], [13, 0.55px], [14, 1px], [15, 0px], [16, 1px], [17, 6px], [18, 9m]]
order: 990
- interactive: true
double-lines:
filter: { $zoom: { min: 16 } }
draw:
width: [[15, 0.5px],[16, 1.5px],[17, 1.5px],[18, 2.5px],[19, 1m]]
casing_left:
visible: false
- interactive: true
order: 486
color: [0.120,0.600,0.520]
width: [[15, 0.5px],[16, 5.5px],[17, 10px],[18, 9m],[19, 8m]]
casing_right:
visible: false
- interactive: true
order: 486
color: white
width: [[15, 0.5px],[16, 6px],[17, 10px],[18, 9m],[19, 8m]]
visible: false
highlight:
visible: false
+
+ transit-overlay-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]]
+ 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-overlay-station-labels:
+ data: { source: mapzen, layer: [pois] }
+ 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: global.interactive
+ 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: global.interactive
+ priority: 16
+ font:
+ fill: black
+ weight: normal
+ 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: global.interactive
+ 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: global.interactive
+ 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: global.interactive
+ 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-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
\ No newline at end of file