From fdb6d267f0a9e8250a16c0a7c3988d5d91933807 Mon Sep 17 00:00:00 2001 From: nebulon42 Date: Sat, 25 Mar 2017 22:13:49 +0100 Subject: [PATCH] major rewrite of amenity-points, labels are tied to icons with shields, a second pass of only icons fills up free space, dy was harmonized, restructuring of code to avoid repetition, fixes #234 --- amenity-points.mss | 3225 ++++++++++----------------- landcover.mss | 561 ++++- placenames.mss | 19 + project.mml | 348 ++- symbols/aerodrome.12.svg | 2 +- symbols/archaeological_site.svg | 2 +- symbols/arts_centre.svg | 39 + symbols/artwork.svg | 2 +- symbols/atm.svg | 2 +- symbols/bank.svg | 2 +- symbols/bar.svg | 2 +- symbols/bench.svg | 2 +- symbols/bicycle_parking.svg | 2 +- symbols/biergarten.svg | 2 +- symbols/buddhist.svg | 2 +- symbols/bus_stop.12.svg | 2 +- symbols/cafe.svg | 2 +- symbols/camping.svg | 2 +- symbols/car_wash.svg | 2 +- symbols/caravan_park.svg | 2 +- symbols/charging_station.svg | 2 +- symbols/christian.9.svg | 2 +- symbols/christian.svg | 2 +- symbols/cinema.svg | 2 +- symbols/communications.svg | 2 +- symbols/community_centre.svg | 2 +- symbols/courthouse.svg | 2 +- symbols/dentist.svg | 2 +- symbols/doctors.svg | 2 +- symbols/dog_park.svg | 39 + symbols/drinking_water.svg | 2 +- symbols/elevator.12.svg | 2 +- symbols/embassy.svg | 2 +- symbols/emergency_phone.svg | 2 +- symbols/entrance.10.svg | 2 +- symbols/fast_food.svg | 2 +- symbols/firestation.svg | 2 +- symbols/ford.svg | 2 +- symbols/fountain.svg | 2 +- symbols/fountain_z17.svg | 39 + symbols/fuel.svg | 2 +- symbols/helipad.16.svg | 2 +- symbols/hinduist.svg | 2 +- symbols/hospital.svg | 2 +- symbols/hostel.svg | 2 +- symbols/hotel.svg | 2 +- symbols/hunting_stand.svg | 2 +- symbols/information.12.svg | 2 +- symbols/jewish.svg | 2 +- symbols/library.svg | 2 +- symbols/lighthouse.svg | 2 +- symbols/memorial.svg | 2 +- symbols/monument.svg | 2 +- symbols/motel.svg | 2 +- symbols/motorcycle_parking.svg | 2 +- symbols/museum.svg | 2 +- symbols/muslim.svg | 2 +- symbols/nightclub.svg | 2 +- symbols/parking.svg | 2 +- symbols/peak.svg | 2 +- symbols/pharmacy.svg | 2 +- symbols/picnic.svg | 2 +- symbols/place_of_worship.svg | 2 +- symbols/playground.svg | 2 +- symbols/police.svg | 2 +- symbols/post_box.12.svg | 2 +- symbols/post_office.svg | 2 +- symbols/prison.svg | 2 +- symbols/pub.svg | 2 +- symbols/recycling.svg | 2 +- symbols/rental_bicycle.svg | 2 +- symbols/rental_car.svg | 2 +- symbols/restaurant.svg | 2 +- symbols/saddle.svg | 2 +- symbols/shelter.svg | 2 +- symbols/shintoist.svg | 2 +- symbols/shop/alcohol.svg | 2 +- symbols/shop/art.svg | 2 +- symbols/shop/bag.svg | 2 +- symbols/shop/bakery.svg | 2 +- symbols/shop/beauty.svg | 2 +- symbols/shop/beverages.svg | 2 +- symbols/shop/bicycle.svg | 2 +- symbols/shop/books.svg | 37 + symbols/shop/car.svg | 10 +- symbols/shop/car_parts.svg | 2 +- symbols/shop/car_repair.svg | 2 +- symbols/shop/chemist.svg | 2 +- symbols/shop/clothes.svg | 2 +- symbols/shop/coffee.svg | 3 +- symbols/shop/computer.svg | 2 +- symbols/shop/confectionery.svg | 2 +- symbols/shop/convenience.svg | 16 +- symbols/shop/copyshop.svg | 2 +- symbols/shop/deli.svg | 2 +- symbols/shop/department_store.svg | 2 +- symbols/shop/diy.svg | 2 +- symbols/shop/electronics.svg | 2 +- symbols/shop/florist.svg | 2 +- symbols/shop/furniture.svg | 3 +- symbols/shop/garden_centre.svg | 2 +- symbols/shop/gift.svg | 2 +- symbols/shop/greengrocer.svg | 2 +- symbols/shop/hairdresser.svg | 2 +- symbols/shop/hifi.svg | 2 +- symbols/shop/ice_cream.svg | 2 +- symbols/shop/jewelry.svg | 2 +- symbols/shop/laundry.svg | 2 +- symbols/shop/mobile_phone.svg | 2 +- symbols/{ => shop}/motorcycle.svg | 2 +- symbols/shop/musical_instrument.svg | 2 +- symbols/shop/newsagent.svg | 2 +- symbols/shop/optician.svg | 3 +- symbols/shop/other.svg | 33 + symbols/shop/outdoor.svg | 2 +- symbols/shop/perfumery.svg | 2 +- symbols/shop/pet.svg | 2 +- symbols/shop/photo.svg | 2 +- symbols/shop/seafood.svg | 2 +- symbols/shop/shoes.svg | 2 +- symbols/shop/sports.svg | 2 +- symbols/shop/stationery.svg | 2 +- symbols/shop/supermarket.svg | 22 +- symbols/shop/tea.svg | 2 +- symbols/shop/tobacco.svg | 2 +- symbols/shop/toys.svg | 2 +- symbols/shop/travel_agency.svg | 2 +- symbols/shop/variety_store.svg | 2 +- symbols/sikhist.svg | 2 +- symbols/social_facility.svg | 2 +- symbols/taxi.svg | 2 +- symbols/telephone.svg | 3 +- symbols/theatre.svg | 2 +- symbols/toilets.svg | 2 +- symbols/town_hall.svg | 2 +- symbols/veterinary.svg | 2 +- symbols/viewpoint.svg | 2 +- symbols/volcano.svg | 15 + symbols/waste_basket.10.svg | 2 +- symbols/water_park.svg | 2 +- symbols/water_tower.svg | 2 +- symbols/wilderness_hut.svg | 2 +- symbols/windmill.svg | 2 +- 143 files changed, 2240 insertions(+), 2427 deletions(-) create mode 100644 symbols/arts_centre.svg create mode 100644 symbols/dog_park.svg create mode 100644 symbols/fountain_z17.svg create mode 100644 symbols/shop/books.svg rename symbols/{ => shop}/motorcycle.svg (99%) create mode 100644 symbols/shop/other.svg create mode 100644 symbols/volcano.svg diff --git a/amenity-points.mss b/amenity-points.mss index bcbe74e3a3..dac2d22e22 100644 --- a/amenity-points.mss +++ b/amenity-points.mss @@ -4,1894 +4,1243 @@ @shop-text: #939; @transportation-icon: #0092da; @transportation-text: #0066ff; -@airtransport: #8461C4; +@airtransport: #8461c4; @health-color: #da0092; @amenity-brown: #734a08; @man-made-icon: #555; @landform-color: #d08f55; -@landcover-font-size: 10; -@landcover-font-size-big: 12; -@landcover-font-size-bigger: 15; -@landcover-wrap-width-size: 25; -@landcover-wrap-width-size-big: 35; -@landcover-wrap-width-size-bigger: 45; -@landcover-face-name: @oblique-fonts; - @standard-wrap-width: 30; @standard-text-size: 10; @standard-font: @book-fonts; /* Note that .points is also used in water-features.mss */ .points { - [feature = 'tourism_alpine_hut'][zoom >= 13] { - point-file: url('symbols/alpinehut.p.16.png'); - point-placement: interior; - } + // markers with text (shields) - [feature = 'tourism_wilderness_hut'][zoom >= 13], - [feature = 'amenity_shelter'][zoom >= 16] { - marker-file: url('symbols/shelter.svg'); + [feature = 'tourism_alpine_hut'][zoom >= 14], + [feature = 'tourism_wilderness_hut'][zoom >= 14], + [feature = 'amenity_shelter'][zoom >= 17], + [feature = 'amenity_atm'][zoom >= 17], + [feature = 'amenity_bank'][zoom >= 17], + [feature = 'amenity_bar'][zoom >= 17], + [feature = 'amenity_bicycle_rental'][zoom >= 17], + [feature = 'amenity_taxi'][zoom >= 17], + [feature = 'amenity_bus_station'][zoom >= 17], + [feature = 'amenity_cafe'][zoom >= 17], + [feature = 'tourism_artwork'][zoom >= 17], + [feature = 'amenity_cinema'][zoom >= 17], + [feature = 'highway_bus_stop'][zoom >= 17], + [feature = 'amenity_car_rental'][zoom >= 17], + [feature = 'amenity_car_wash'][zoom >= 17], + [feature = 'tourism_chalet'][zoom >= 17], + [feature = 'amenity_nightclub'][zoom >= 17], + [feature = 'amenity_fire_station'][zoom >= 17], + [feature = 'amenity_charging_station'][zoom >= 17], + [feature = 'amenity_fuel'][zoom >= 17], + [feature = 'tourism_guest_house'][zoom >= 17], + [feature = 'amenity_hospital'][zoom >= 16], + [feature = 'tourism_hostel'][zoom >= 17], + [feature = 'tourism_hotel'][zoom >= 17], + [feature = 'tourism_motel'][zoom >= 17], + [feature = 'amenity_ice_cream'][zoom >= 17], + [feature = 'amenity_embassy'][zoom >= 17], + [feature = 'amenity_library'][zoom >= 17], + [feature = 'amenity_courthouse'][zoom >= 17], + [feature = 'amenity_community_centre'][zoom >= 17], + [feature = 'amenity_social_facility'][zoom >= 17], + [feature = 'amenity_townhall'][zoom >= 17], + [feature = 'tourism_museum'][zoom >= 17], + [feature = 'man_made_mast'][zoom >= 17], + [feature = 'amenity_pharmacy'][zoom >= 17], + [feature = 'amenity_clinic'][zoom >= 17], + [feature = 'amenity_doctors'][zoom >= 17], + [feature = 'amenity_dentist'][zoom >= 17], + [feature = 'amenity_veterinary'][zoom >= 17], + [feature = 'amenity_place_of_worship'][zoom >= 17], + [feature = 'man_made_cross'][zoom >= 17], + [feature = 'historic_wayside_cross'][zoom >= 17], + [feature = 'amenity_police'][zoom >= 17], + [feature = 'amenity_post_office'][zoom >= 17], + [feature = 'amenity_pub'][zoom >= 17], + [feature = 'amenity_biergarten'][zoom >= 17], + [feature = 'amenity_restaurant'][zoom >= 17], + [feature = 'amenity_food_court'][zoom >= 17], + [feature = 'amenity_fast_food'][zoom >= 17], + [feature = 'amenity_recycling'][zoom >= 17], + [feature = 'amenity_theatre'][zoom >= 17], + [feature = 'amenity_arts_centre'][zoom >= 17], + [feature = 'amenity_drinking_water'][zoom >= 17], + [feature = 'amenity_prison'][zoom >= 17], + [feature = 'tourism_viewpoint'][zoom >= 16], + [feature = 'man_made_water_tower'][zoom >= 17], + [feature = 'historic_memorial'][zoom >= 17], + [feature = 'man_made_obelisk'][zoom >= 16], + [feature = 'historic_monument'][zoom >= 16], + [feature = 'historic_archaeological_site'][zoom >= 17], + [feature = 'leisure_picnic_table'][zoom >= 17], + [feature = 'leisure_slipway'][zoom >= 17], + [feature = 'man_made_lighthouse'][zoom >= 15], + [feature = 'natural_peak'][zoom >= 13], + [feature = 'natural_volcano'][zoom >= 13], + [feature = 'natural_saddle'][zoom >= 15], + [feature = 'natural_cave_entrance'][zoom >= 15], + [feature = 'natural_spring'][zoom >= 16], + [feature = 'man_made_windmill'][zoom >= 17], + [feature = 'amenity_hunting_stand'][zoom >= 17], + [feature = 'leisure_miniature_golf'][zoom >= 17], + [feature = 'leisure_golf_course'][zoom >= 15], + [feature = 'aeroway_helipad'][zoom >= 16], + [feature = 'aeroway_aerodrome'][zoom >= 10][zoom < 14], + [feature = 'tourism_caravan_site'][zoom >= 16], + [feature = 'tourism_picnic_site'][zoom >= 16], + [feature = 'tourism_camp_site'][zoom >= 17], + [feature = 'leisure_water_park'][zoom >= 17], + [feature = 'leisure_dog_park'][zoom >= 17], + [feature = 'leisure_playground'][zoom >= 17] { + shield-placement: interior; + shield-clip: false; + shield-name: "[name]"; + shield-size: @standard-text-size; + shield-face-name: @standard-font; + shield-halo-radius: @standard-halo-radius; + shield-halo-fill: @standard-halo-fill; + shield-wrap-width: @standard-wrap-width; + shield-fill: @amenity-brown; + shield-text-dy: 11; + shield-unlock-image: true; + + // second pass for icons without text where there is still space + a/marker-fill: @amenity-brown; + a/marker-placement: interior; + a/marker-clip: false; + + [feature = 'tourism_alpine_hut'] { + shield-file: url('symbols/alpinehut.p.16.png'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/alpinehut.p.16.png'); + } [feature = 'tourism_wilderness_hut'] { - marker-file: url('symbols/wilderness_hut.svg'); + shield-file: url('symbols/wilderness_hut.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/wilderness_hut.svg'); + a/marker-fill: @transportation-icon; } - marker-fill: @transportation-icon; - marker-placement: interior; - marker-clip: false; - } + [feature = 'amenity_shelter'] { + shield-file: url('symbols/shelter.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/shelter.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_atm'] { + shield-file: url('symbols/atm.svg'); + shield-name: "[operator]"; + a/marker-file: url('symbols/atm.svg'); + } + [feature = 'amenity_bank'] { + shield-file: url('symbols/bank.svg'); + a/marker-file: url('symbols/bank.svg'); + } + [feature = 'amenity_bar'] { + shield-file: url('symbols/bar.svg'); + a/marker-file: url('symbols/bar.svg'); + } + [feature = 'amenity_bicycle_rental'] { + shield-file: url('symbols/rental_bicycle.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/rental_bicycle.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_taxi'] { + shield-file: url('symbols/taxi.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/taxi.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_bus_station'] { + shield-file: url('symbols/bus_station.n.16.png'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/bus_station.n.16.png'); + } + [feature = 'amenity_cafe'] { + shield-file: url('symbols/cafe.svg'); + a/marker-file: url('symbols/cafe.svg'); + } + [feature = 'tourism_artwork'] { + shield-file: url('symbols/artwork.svg'); + a/marker-file: url('symbols/artwork.svg'); + } + [feature = 'amenity_cinema'] { + shield-file: url('symbols/cinema.svg'); + a/marker-file: url('symbols/cinema.svg'); + } + [feature = 'highway_bus_stop'] { + shield-file: url('symbols/bus_stop.12.svg'); + shield-fill: @transportation-text; + shield-text-dy: 9; + a/marker-file: url('symbols/bus_stop.12.svg'); + a/marker-fill: @transportation-icon; + a/marker-width: 12; + } + [feature = 'amenity_car_rental'] { + shield-file: url('symbols/rental_car.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/rental_car.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_car_wash'] { + shield-file: url('symbols/car_wash.svg'); + a/marker-file: url('symbols/car_wash.svg'); + } + [feature = 'tourism_chalet'] { + shield-file: url('symbols/chalet.p.16.png'); + a/marker-file: url('symbols/chalet.p.16.png'); + } + [feature = 'amenity_nightclub'] { + shield-file: url('symbols/nightclub.svg'); + a/marker-file: url('symbols/nightclub.svg'); + } + [feature = 'amenity_fire_station'] { + shield-file: url('symbols/firestation.svg'); + a/marker-file: url('symbols/firestation.svg'); + } + [feature = 'amenity_charging_station'] { + shield-file: url('symbols/charging_station.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/charging_station.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_fuel'] { + shield-file: url('symbols/fuel.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/fuel.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'tourism_guest_house'] { + shield-file: url('symbols/guest_house.p.16.png'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/guest_house.p.16.png'); + } + [feature = 'amenity_hospital'] { + shield-file: url('symbols/hospital.svg'); + shield-fill: @health-color; + a/marker-file: url('symbols/hospital.svg'); + a/marker-fill: @health-color; + } + [feature = 'tourism_hostel'] { + shield-file: url('symbols/hostel.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/hostel.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'tourism_hotel'] { + shield-file: url('symbols/hotel.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/hotel.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'tourism_motel'] { + shield-file: url('symbols/motel.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/motel.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_ice_cream'] { + shield-file: url('symbols/shop/ice_cream.svg'); + a/marker-file: url('symbols/shop/ice_cream.svg'); + } + [feature = 'amenity_embassy'] { + shield-file: url('symbols/embassy.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/embassy.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'amenity_library'] { + shield-file: url('symbols/library.svg'); + a/marker-file: url('symbols/library.svg'); + } + [feature = 'amenity_courthouse'] { + shield-file: url('symbols/courthouse.svg'); + a/marker-file: url('symbols/courthouse.svg'); + } + [feature = 'amenity_community_centre'] { + shield-file: url('symbols/community_centre.svg'); + a/marker-file: url('symbols/community_centre.svg'); + } + [feature = 'amenity_social_facility'] { + shield-file: url('symbols/social_facility.svg'); + a/marker-file: url('symbols/social_facility.svg'); + } + [feature = 'amenity_townhall'] { + shield-file: url('symbols/town_hall.svg'); + a/marker-file: url('symbols/town_hall.svg'); + } + [feature = 'tourism_museum'] { + shield-file: url('symbols/museum.svg'); + a/marker-file: url('symbols/museum.svg'); + } + [feature = 'man_made_mast'] { + shield-file: url('symbols/communications.svg'); + a/marker-file: url('symbols/communications.svg'); + } + [feature = 'amenity_pharmacy'] { + shield-file: url('symbols/pharmacy.svg'); + shield-fill: @health-color; + a/marker-file: url('symbols/pharmacy.svg'); + a/marker-fill: @health-color; + } + [feature = 'amenity_clinic'], + [feature = 'amenity_doctors'] { + shield-file: url('symbols/doctors.svg'); + shield-fill: @health-color; + a/marker-file: url('symbols/doctors.svg'); + a/marker-fill: @health-color; + } + [feature = 'amenity_dentist'] { + shield-file: url('symbols/dentist.svg'); + shield-fill: @health-color; + a/marker-file: url('symbols/dentist.svg'); + a/marker-fill: @health-color; + } + [feature = 'amenity_veterinary'] { + shield-file: url('symbols/veterinary.svg'); + shield-fill: @health-color; + a/marker-file: url('symbols/veterinary.svg'); + a/marker-fill: @health-color; + } + [feature = 'amenity_place_of_worship'] { + shield-fill: black; + a/marker-fill: black; + shield-file: url('symbols/place_of_worship.svg'); + a/marker-file: url('symbols/place_of_worship.svg'); + [religion = 'christian'] { + shield-file: url('symbols/christian.svg'); + a/marker-file: url('symbols/christian.svg'); + [denomination = 'jehovahs_witness']{ + shield-file: url('symbols/place_of_worship.svg'); + a/marker-file: url('symbols/place_of_worship.svg'); + } + } + [religion = 'muslim'] { + shield-file: url('symbols/muslim.svg'); + a/marker-file: url('symbols/muslim.svg'); + } + [religion = 'sikh'] { + shield-file: url('symbols/sikhist.svg'); + a/marker-file: url('symbols/sikhist.svg'); + } + [religion = 'jewish'] { + shield-file: url('symbols/jewish.svg'); + a/marker-file: url('symbols/jewish.svg'); + } + [religion = 'hindu'] { + shield-file: url('symbols/hinduist.svg'); + a/marker-file: url('symbols/hinduist.svg'); + } + [religion = 'buddhist'] { + shield-file: url('symbols/buddhist.svg'); + a/marker-file: url('symbols/buddhist.svg'); + } + [religion = 'shinto'] { + shield-file: url('symbols/shintoist.svg'); + a/marker-file: url('symbols/shintoist.svg'); + } + [religion = 'taoist'] { + shield-file: url('symbols/taoist.svg'); + a/marker-file: url('symbols/taoist.svg'); + } + } + [feature = 'man_made_cross'], + [feature = 'historic_wayside_cross'] { + shield-file: url('symbols/christian.9.svg'); + shield-fill: black; + shield-text-dy: 8; + a/marker-file: url('symbols/christian.9.svg'); + a/marker-fill: black; + } + [feature = 'amenity_police'] { + shield-file: url('symbols/police.svg'); + a/marker-file: url('symbols/police.svg'); + } + [feature = 'amenity_post_office'] { + shield-file: url('symbols/post_office.svg'); + a/marker-file: url('symbols/post_office.svg'); + } + [feature = 'amenity_pub'] { + shield-file: url('symbols/pub.svg'); + a/marker-file: url('symbols/pub.svg'); + } + [feature = 'amenity_biergarten'] { + shield-file: url('symbols/biergarten.svg'); + a/marker-file: url('symbols/biergarten.svg'); + } + [feature = 'amenity_restaurant'], + [feature = 'amenity_food_court'] { + shield-file: url('symbols/restaurant.svg'); + a/marker-file: url('symbols/restaurant.svg'); + } + [feature = 'amenity_fast_food'] { + shield-file: url('symbols/fast_food.svg'); + a/marker-file: url('symbols/fast_food.svg'); + } + [feature = 'amenity_recycling'] { + shield-file: url('symbols/recycling.svg'); + a/marker-file: url('symbols/recycling.svg'); + [access != ''][access != 'permissive'][access != 'yes'] { + shield-opacity: 0.33; + a/marker-opacity: 0.33; + } + } + [feature = 'amenity_theatre'] { + shield-file: url('symbols/theatre.svg'); + a/marker-file: url('symbols/theatre.svg'); + } + [feature = 'amenity_arts_centre'] { + shield-file: url('symbols/arts_centre.svg'); + a/marker-file: url('symbols/arts_centre.svg'); + } + [feature = 'amenity_drinking_water'] { + shield-file: url('symbols/drinking_water.svg'); + a/marker-file: url('symbols/drinking_water.svg'); + } + [feature = 'amenity_prison'] { + shield-file: url('symbols/prison.svg'); + a/marker-file: url('symbols/prison.svg'); + } + [feature = 'tourism_viewpoint'] { + shield-file: url('symbols/viewpoint.svg'); + a/marker-file: url('symbols/viewpoint.svg'); + } + [feature = 'man_made_water_tower'] { + shield-file: url('symbols/water_tower.svg'); + a/marker-file: url('symbols/water_tower.svg'); + } + [feature = 'historic_memorial'] { + shield-file: url('symbols/memorial.svg'); + a/marker-file: url('symbols/memorial.svg'); + } + [feature = 'man_made_obelisk'], + [feature = 'historic_monument'] { + shield-file: url('symbols/monument.svg'); + a/marker-file: url('symbols/monument.svg'); + } + [feature = 'historic_archaeological_site'] { + shield-file: url('symbols/archaeological_site.svg'); + a/marker-file: url('symbols/archaeological_site.svg'); + } + [feature = 'leisure_picnic_table'], + [feature = 'tourism_picnic_site'] { + shield-file: url('symbols/picnic.svg'); + a/marker-file: url('symbols/picnic.svg'); + } + [feature = 'leisure_slipway'] { + shield-file: url('symbols/transport_slipway.p.20.png'); + shield-fill: @transportation-text; + shield-text-dy: 13; + a/marker-file: url('symbols/transport_slipway.p.20.png'); + } + [feature = 'man_made_lighthouse'] { + shield-file: url('symbols/lighthouse.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/lighthouse.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'natural_peak'] { + shield-file: url('symbols/peak.svg'); + shield-fill: darken(@landform-color, 30%); + shield-text-dy: 8; + a/marker-file: url('symbols/peak.svg'); + a/marker-fill: @landform-color; + } + [feature = 'natural_volcano'] { + shield-file: url('symbols/volcano.svg'); + shield-fill: #d40000; + shield-text-dy: 8; + a/marker-file: url('symbols/volcano.svg'); + a/marker-fill: #d40000; + } + [feature = 'natural_saddle'] { + shield-file: url('symbols/saddle.svg'); + shield-fill: darken(@landform-color, 30%); + shield-text-dy: 8; + a/marker-file: url('symbols/saddle.svg'); + a/marker-fill: @landform-color; + } + [feature = 'natural_cave_entrance'] { + shield-file: url('symbols/cave.svg'); + shield-fill: black; + a/marker-file: url('symbols/cave.svg'); + a/marker-fill: black; + } + [feature = 'natural_spring'] { + shield-file: url('symbols/spring.svg'); + shield-fill: @water-text; + shield-text-dy: 8; + a/marker-file: url('symbols/spring.svg'); + } + [feature = 'man_made_windmill'] { + shield-file: url('symbols/windmill.svg'); + a/marker-file: url('symbols/windmill.svg'); + } + [feature = 'amenity_hunting_stand'] { + shield-file: url('symbols/hunting_stand.svg'); + a/marker-file: url('symbols/hunting_stand.svg'); + } + [feature = 'leisure_miniature_golf'] { + shield-file: url('symbols/miniature_golf.p.20.png'); + shield-fill: darken(@park, 60%); + shield-text-dy: 13; + a/marker-file: url('symbols/miniature_golf.p.20.png'); + } + [feature = 'leisure_golf_course'] { + shield-file: url('symbols/golf.p.20.png'); + shield-fill: darken(@park, 60%); + shield-text-dy: 13; + a/marker-file: url('symbols/golf.p.20.png'); + } + [feature = 'aeroway_helipad'] { + shield-file: url('symbols/helipad.16.svg'); + shield-fill: darken(@airtransport, 15%); + shield-text-dy: -11; + a/marker-file: url('symbols/helipad.16.svg'); + a/marker-fill: @airtransport; + } + [feature = 'aeroway_aerodrome'] { + shield-file: url('symbols/aerodrome.12.svg'); + shield-fill: darken(@airtransport, 15%); + shield-text-dy: -11; + a/marker-file: url('symbols/aerodrome.12.svg'); + a/marker-fill: @airtransport; + } + [feature = 'tourism_caravan_site'] { + shield-file: url('symbols/caravan_park.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/caravan_park.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'tourism_camp_site'] { + shield-file: url('symbols/camping.svg'); + shield-fill: @transportation-text; + a/marker-file: url('symbols/camping.svg'); + a/marker-fill: @transportation-icon; + } + [feature = 'leisure_water_park'] { + shield-file: url('symbols/water_park.svg'); + a/marker-file: url('symbols/water_park.svg'); + } + [feature = 'leisure_dog_park'] { + shield-file: url('symbols/dog_park.svg'); + a/marker-file: url('symbols/dog_park.svg'); + } + [feature = 'leisure_playground'] { + shield-file: url('symbols/playground.svg'); + a/marker-file: url('symbols/playground.svg'); - [feature = 'amenity_atm'][zoom >= 17] { - marker-file: url('symbols/atm.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; + [access != ''][access != 'permissive'][access != 'yes'] { + shield-opacity: 0.33; + shield-text-opacity: 0.33; + a/marker-opacity: 0.33; + } + } } + [feature ='amenity_fountain'][zoom >= 17] { + shield-placement: interior; + shield-clip: false; + shield-name: "[name]"; + shield-size: @standard-text-size; + shield-face-name: @standard-font; + shield-halo-radius: @standard-halo-radius; + shield-halo-fill: @standard-halo-fill; + shield-wrap-width: @standard-wrap-width; + shield-fill: @marina-text; + shield-unlock-image: true; - [feature = 'amenity_bank'][zoom >= 17] { - marker-file: url('symbols/bank.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } + // second pass for icons without text where there is still space + a/marker-placement: interior; + a/marker-clip: false; - [feature = 'amenity_bar'][zoom >= 17] { - marker-file: url('symbols/bar.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; + [zoom >= 17][zoom < 18] { + shield-file: url('symbols/fountain_z17.svg'); + a/marker-file: url('symbols/fountain_z17.svg'); + shield-text-dy: 8; + } + [zoom >= 18] { + shield-file: url('symbols/fountain.svg'); + a/marker-file: url('symbols/fountain.svg'); + shield-text-dy: 11; + } } + [feature = 'amenity_parking'][way_pixels > 900], + [feature = 'amenity_bicycle_parking'][way_pixels > 900], + [feature = 'amenity_motorcycle_parking'][way_pixels > 900] { + [zoom < 10] { + marker-placement: interior; - [feature = 'amenity_bicycle_rental'][zoom >= 17] { - marker-file: url('symbols/rental_bicycle.svg'); - marker-fill: @transportation-icon; + [feature = 'amenity_parking'] { + marker-file: url('symbols/parking.svg'); + } + [feature = 'amenity_bicycle_parking'] { + marker-file: url('symbols/bicycle_parking.svg'); + } + [feature = 'amenity_motorcycle_parking'] { + marker-file: url('symbols/motorcycle_parking.svg'); + } + [access != ''][access != 'permissive'][access != 'yes'] { + marker-opacity: 0.33; + } + } + [zoom >= 10] { + shield-placement: interior; + shield-clip: false; + shield-name: "[name]"; + shield-size: @standard-text-size; + shield-face-name: @standard-font; + shield-halo-radius: @standard-halo-radius; + shield-halo-fill: @standard-halo-fill; + shield-wrap-width: @standard-wrap-width; + shield-fill: @transportation-text; + shield-text-dy: 11; + shield-unlock-image: true; + + // second pass for icons without text where there is still space + a/marker-placement: interior; + a/marker-clip: false; + a/marker-fill: @transportation-icon; + + [access != ''][access != 'permissive'][access != 'yes'] { + shield-opacity: 0.33; + shield-text-opacity: 0.33; + a/marker-opacity: 0.33; + } + + [feature = 'amenity_parking'] { + shield-file: url('symbols/parking.svg'); + a/marker-file: url('symbols/parking.svg'); + } + [feature = 'amenity_bicycle_parking'] { + shield-file: url('symbols/bicycle_parking.svg'); + a/marker-file: url('symbols/bicycle_parking.svg'); + } + [feature = 'amenity_motorcycle_parking'] { + shield-file: url('symbols/motorcycle_parking.svg'); + a/marker-file: url('symbols/motorcycle_parking.svg'); + } + } + } + + // markers without text + + [feature = 'tourism_alpine_hut'][zoom >= 13][zoom < 14], + [feature = 'tourism_wilderness_hut'][zoom >= 13][zoom < 14], + [feature = 'amenity_shelter'][zoom >= 16][zoom < 17], + [feature = 'highway_elevator'][zoom >= 18], + [feature = 'amenity_bus_station'][zoom >= 16][zoom < 17], + [feature = 'highway_traffic_signals'][zoom >= 17], + [feature = 'amenity_cinema'][zoom >= 16][zoom < 17], + [feature = 'highway_bus_stop'][zoom >= 16][zoom < 17], + [feature = 'highway_ford'][zoom >= 16], + [feature = 'amenity_fire_station'][zoom >= 16][zoom < 17], + [feature = 'amenity_hospital'][zoom >= 15][zoom < 16], + [feature = 'tourism_information'][zoom >= 17], + [feature = 'amenity_library'][zoom >= 16][zoom < 17], + [feature = 'amenity_courthouse'][zoom >= 16][zoom < 17], + [feature = 'amenity_townhall'][zoom >= 16][zoom < 17], + [feature = 'tourism_museum'][zoom >= 16][zoom < 17], + [feature = 'amenity_clinic'][zoom >= 16][zoom < 17], + [feature = 'amenity_place_of_worship'][zoom >= 16][zoom < 17], + [feature = 'amenity_police'][zoom >= 16][zoom < 17], + [feature = 'amenity_post_box'][zoom >= 17], + [feature = 'amenity_telephone'][zoom >= 17], + [feature = 'amenity_emergency_phone'][zoom >= 17], + [feature = 'amenity_theatre'][zoom >= 16][zoom < 17], + [feature = 'amenity_toilets'][zoom >= 17], + [feature = 'historic_archaeological_site'][zoom >= 16][zoom < 17], + [feature = 'natural_peak'][zoom >= 11][zoom < 13], + [feature = 'natural_volcano'][zoom >= 11][zoom < 13], + [feature = 'power_generator']['generator:source' = 'wind'][zoom >= 15], + [feature = 'power_generator'][power_source = 'wind'][zoom >= 15], + [feature = 'man_made_windmill'][zoom >= 16][zoom < 17], + [feature = 'amenity_hunting_stand'][zoom >= 16][zoom < 17] { + marker-fill: @amenity-brown; marker-placement: interior; marker-clip: false; - } - [feature = 'highway_bus_stop'] { - [zoom >= 16] { + [feature = 'tourism_alpine_hut'] { + marker-file: url('symbols/alpinehut.p.16.png'); + marker-fill: @transportation-icon; + } + [feature = 'tourism_wilderness_hut'] { + marker-file: url('symbols/wilderness_hut.svg'); + marker-fill: @transportation-icon; + } + [feature = 'amenity_shelter'] { + marker-file: url('symbols/shelter.svg'); + marker-fill: @transportation-icon; + } + [feature = 'highway_elevator'] { + [access = null], + [access = 'yes'] { + marker-file: url('symbols/elevator.12.svg'); + marker-fill: @transportation-icon; + } + } + [feature = 'amenity_bus_station'] { + marker-file: url('symbols/bus_station.n.16.png'); + marker-fill: @transportation-icon; + } + [feature = 'highway_traffic_signals'] { + marker-file: url('symbols/traffic_light.16.svg'); + marker-fill: #0a0a0a; + } + [feature = 'amenity_cinema'] { + marker-file: url('symbols/cinema.svg'); + } + [feature = 'highway_bus_stop'] { marker-file: url('symbols/square.svg'); marker-fill: @transportation-icon; - marker-placement: interior; marker-width: 6; - marker-clip: false; - } - [zoom >= 17] { - marker-file: url('symbols/bus_stop.12.svg'); - marker-width: 12; } - } - - [feature = 'highway_elevator'][zoom >= 18] { - [access = null], - [access = 'yes'] { - marker-file: url('symbols/elevator.12.svg'); + [feature = 'highway_ford'] { + marker-file: url('symbols/ford.svg'); marker-fill: @transportation-icon; - marker-placement: interior; + } + [feature = 'amenity_fire_station'] { + marker-file: url('symbols/firestation.svg'); + } + [feature = 'amenity_hospital'] { + marker-file: url('symbols/hospital.svg'); + marker-fill: @health-color; + } + [feature = 'tourism_information'] { + marker-file: url('symbols/information.12.svg'); + } + [feature = 'amenity_library'] { + marker-file: url('symbols/library.svg'); + } + [feature = 'amenity_courthouse'] { + marker-file: url('symbols/courthouse.svg'); + } + [feature = 'amenity_townhall'] { + marker-file: url('symbols/town_hall.svg'); + } + [feature = 'tourism_museum'] { + marker-file: url('symbols/museum.svg'); + } + [feature = 'amenity_clinic'] { + marker-file: url('symbols/doctors.svg'); + marker-fill: @health-color; + } + [feature = 'amenity_place_of_worship'] { + marker-fill: black; + marker-file: url('symbols/place_of_worship.svg'); + [religion = 'christian'] { + marker-file: url('symbols/christian.svg'); + [denomination = 'jehovahs_witness']{ + marker-file: url('symbols/place_of_worship.svg'); + } + } + [religion = 'muslim'] { + marker-file: url('symbols/muslim.svg'); + } + [religion = 'sikh'] { + marker-file: url('symbols/sikhist.svg'); + } + [religion = 'jewish'] { + marker-file: url('symbols/jewish.svg'); + } + [religion = 'hindu'] { + marker-file: url('symbols/hinduist.svg'); + } + [religion = 'buddhist'] { + marker-file: url('symbols/buddhist.svg'); + } + [religion = 'shinto'] { + marker-file: url('symbols/shintoist.svg'); + } + [religion = 'taoist'] { + marker-file: url('symbols/taoist.svg'); + } + } + [feature = 'amenity_police'] { + marker-file: url('symbols/police.svg'); + } + [feature = 'amenity_post_box'] { + marker-file: url('symbols/post_box.12.svg'); + } + [feature = 'amenity_telephone'] { + marker-file: url('symbols/telephone.svg'); + } + [feature = 'amenity_emergency_phone'] { + marker-file: url('symbols/emergency_phone.svg'); + } + [feature = 'amenity_theatre'] { + marker-file: url('symbols/theatre.svg'); + } + [feature = 'amenity_toilets'] { + marker-file: url('symbols/toilets.svg'); + } + [feature = 'historic_archaeological_site'] { + marker-file: url('symbols/archaeological_site.svg'); + } + [feature = 'natural_peak'] { + marker-file: url('symbols/peak.svg'); + marker-fill: @landform-color; + } + [feature = 'natural_volcano'] { + marker-file: url('symbols/volcano.svg'); + marker-fill: #d40000; + } + [feature = 'power_generator']['generator:source' = 'wind'], + [feature = 'power_generator'][power_source = 'wind'] { + marker-file: url('symbols/power_wind.svg'); + marker-fill: black; + } + [feature = 'man_made_windmill'] { + marker-file: url('symbols/windmill.svg'); + } + [feature = 'amenity_hunting_stand'] { + marker-file: url('symbols/hunting_stand.svg'); } } - - [feature = 'amenity_bus_station'][zoom >= 16] { - point-file: url('symbols/bus_station.n.16.png'); - point-placement: interior; - } - - [feature = 'amenity_taxi'][zoom >= 17] { - marker-file: url('symbols/taxi.svg'); - marker-fill: @transportation-icon; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'highway_traffic_signals'][zoom >= 17] { - marker-file: url('symbols/traffic_light.16.svg'); - marker-fill: #0a0a0a; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_cafe'][zoom >= 17] { - marker-file: url('symbols/cafe.svg'); - marker-fill: @amenity-brown; + [feature = 'natural_spring'][zoom >= 14][zoom < 16] { marker-placement: interior; marker-clip: false; + marker-file: url('symbols/spring.svg'); } - [feature = 'tourism_artwork'][zoom >= 17] { - marker-file: url('symbols/artwork.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } + // shops - [feature = 'tourism_camp_site'][zoom >= 16] { - marker-file: url('symbols/camping.svg'); - marker-fill: @transportation-icon; - marker-placement: interior; - marker-clip: false; + [feature = 'shop'] { + [zoom >= 17][zoom < 18] { + marker-fill: @shop-icon; + marker-width: 6; + marker-line-width: 0; + marker-placement: interior; + marker-clip: false; + } + [zoom >= 18] { + [shop = 'other'], + [shop = 'art'], + [shop = 'bag'], + [shop = 'bakery'], + [shop = 'beauty'], + [shop = 'beverages'], + [shop = 'books'], + [shop = 'butcher'], + [shop = 'chemist'], + [shop = 'clothes'], + [shop = 'fashion'], + [shop = 'coffee'], + [shop = 'computer'], + [shop = 'convenience'], + [shop = 'confectionery'], + [shop = 'copyshop'], + [shop = 'cosmetics'], + [shop = 'perfumery'], + [shop = 'deli'], + [shop = 'doityourself'], + [shop = 'hardware'], + [shop = 'dry_cleaning'], + [shop = 'laundry'], + [shop = 'fishmonger'], + [shop = 'seafood'], + [shop = 'florist'], + [shop = 'garden_centre'], + [shop = 'greengrocer'], + [shop = 'farm'], + [shop = 'hairdresser'], + [shop = 'hifi'], + [shop = 'ice_cream'], + [shop = 'car'], + [shop = 'car_parts'], + [shop = 'car_repair'], + [shop = 'bicycle'], + [shop = 'pet'], + [shop = 'photo'], + [shop = 'photo_studio'], + [shop = 'photography'], + [shop = 'shoes'], + [shop = 'gift'], + [shop = 'electronics'], + [shop = 'alcohol'], + [shop = 'wine'], + [shop = 'optician'], + [shop = 'outdoor'], + [shop = 'furniture'], + [shop = 'mobile_phone'], + [shop = 'motorcycle'], + [shop = 'musical_instrument'], + [shop = 'kiosk'], + [shop = 'newsagent'], + [shop = 'jewelry'], + [shop = 'jewellery'], + [shop = 'toys'], + [shop = 'travel_agency'], + [shop = 'sports'], + [shop = 'stationery'], + [shop = 'tobacco'], + [shop = 'tea'], + [shop = 'variety_store'] { + shield-fill: @shop-icon; + shield-placement: interior; + shield-clip: false; + shield-name: "[name]"; + shield-size: @standard-text-size; + shield-face-name: @standard-font; + shield-halo-radius: @standard-halo-radius; + shield-halo-fill: @standard-halo-fill; + shield-wrap-width: @standard-wrap-width; + shield-fill: @shop-text; + shield-text-dy: 11; + shield-unlock-image: true; + + // second pass for icons without text where there is still space + a/marker-fill: @shop-icon; + a/marker-placement: interior; + a/marker-clip: false; + + [shop = 'other'] { + shield-file: url('symbols/shop/other.svg'); + shield-text-dy: 8; + a/marker-file: url('symbols/shop/other.svg'); + } + [shop = 'art'] { + shield-file: url('symbols/shop/art.svg'); + a/marker-file: url('symbols/shop/art.svg'); + } + [shop = 'bag'] { + shield-file: url('symbols/shop/bag.svg'); + a/marker-file: url('symbols/shop/bag.svg'); + } + [shop = 'bakery'] { + shield-file: url('symbols/shop/bakery.svg'); + a/marker-file: url('symbols/shop/bakery.svg'); + } + [shop = 'beauty'] { + shield-file: url('symbols/shop/beauty.svg'); + a/marker-file: url('symbols/shop/beauty.svg'); + } + [shop = 'beverages'] { + shield-file: url('symbols/shop/beverages.svg'); + a/marker-file: url('symbols/shop/beverages.svg'); + } + [shop = 'books'] { + shield-file: url('symbols/shop/books.svg'); + a/marker-file: url('symbols/shop/books.svg'); + } + [shop = 'butcher'] { + shield-file: url('symbols/shop/butcher.png'); + a/marker-file: url('symbols/shop/butcher.png'); + } + [shop = 'chemist'] { + shield-file: url('symbols/shop/chemist.svg'); + a/marker-file: url('symbols/shop/chemist.svg'); + } + [shop = 'clothes'], + [shop = 'fashion'] { + shield-file: url('symbols/shop/clothes.svg'); + a/marker-file: url('symbols/shop/clothes.svg'); + } + [shop = 'coffee'] { + shield-file: url('symbols/shop/coffee.svg'); + a/marker-file: url('symbols/shop/coffee.svg'); + } + [shop = 'computer'] { + shield-file: url('symbols/shop/computer.svg'); + a/marker-file: url('symbols/shop/computer.svg'); + } + [shop = 'convenience'] { + shield-file: url('symbols/shop/convenience.svg'); + a/marker-file: url('symbols/shop/convenience.svg'); + } + [shop = 'confectionery'] { + shield-file: url('symbols/shop/confectionery.svg'); + a/marker-file: url('symbols/shop/confectionery.svg'); + } + [shop = 'copyshop'] { + shield-file: url('symbols/shop/copyshop.svg'); + a/marker-file: url('symbols/shop/copyshop.svg'); + } + [shop = 'cosmetics'], + [shop = 'perfumery'] { + shield-file: url('symbols/shop/perfumery.svg'); + a/marker-file: url('symbols/shop/perfumery.svg'); + } + [shop = 'deli'] { + shield-file: url('symbols/shop/deli.svg'); + a/marker-file: url('symbols/shop/deli.svg'); + } + [shop = 'doityourself'], + [shop = 'hardware'] { + shield-file: url('symbols/shop/diy.svg'); + a/marker-file: url('symbols/shop/diy.svg'); + } + [shop = 'dry_cleaning'], + [shop = 'laundry'] { + shield-file: url('symbols/shop/laundry.svg'); + a/marker-file: url('symbols/shop/laundry.svg'); + } + [shop = 'fishmonger'], + [shop = 'seafood'] { + shield-file: url('symbols/shop/seafood.svg'); + a/marker-file: url('symbols/shop/seafood.svg'); + } + [shop = 'florist'] { + shield-file: url('symbols/shop/florist.svg'); + a/marker-file: url('symbols/shop/florist.svg'); + } + [shop = 'garden_centre'] { + shield-file: url('symbols/shop/garden_centre.svg'); + a/marker-file: url('symbols/shop/garden_centre.svg'); + } + [shop = 'greengrocer'], + [shop = 'farm'] { + shield-file: url('symbols/shop/greengrocer.svg'); + a/marker-file: url('symbols/shop/greengrocer.svg'); + } + [shop = 'hairdresser'] { + shield-file: url('symbols/shop/hairdresser.svg'); + a/marker-file: url('symbols/shop/hairdresser.svg'); + } + [shop = 'hifi'] { + shield-file: url('symbols/shop/hifi.svg'); + a/marker-file: url('symbols/shop/hifi.svg'); + } + [shop = 'ice_cream'] { + shield-file: url('symbols/shop/ice_cream.svg'); + a/marker-file: url('symbols/shop/ice_cream.svg'); + } + [shop = 'car'] { + shield-file: url('symbols/shop/car.svg'); + a/marker-file: url('symbols/shop/car.svg'); + } + [shop = 'car_parts'] { + shield-file: url('symbols/shop/car_parts.svg'); + a/marker-file: url('symbols/shop/car_parts.svg'); + } + [shop = 'car_repair'] { + shield-file: url('symbols/shop/car_repair.svg'); + a/marker-file: url('symbols/shop/car_repair.svg'); + } + [shop = 'bicycle'] { + shield-file: url('symbols/shop/bicycle.svg'); + a/marker-file: url('symbols/shop/bicycle.svg'); + } + [shop = 'pet'] { + shield-file: url('symbols/shop/pet.svg'); + a/marker-file: url('symbols/shop/pet.svg'); + } + [shop = 'photo'], + [shop = 'photo_studio'], + [shop = 'photography'] { + shield-file: url('symbols/shop/photo.svg'); + a/marker-file: url('symbols/shop/photo.svg'); + } + [shop = 'shoes'] { + shield-file: url('symbols/shop/shoes.svg'); + a/marker-file: url('symbols/shop/shoes.svg'); + } + [shop = 'gift'] { + shield-file: url('symbols/shop/gift.svg'); + a/marker-file: url('symbols/shop/gift.svg'); + } + [shop = 'electronics'] { + shield-file: url('symbols/shop/electronics.svg'); + a/marker-file: url('symbols/shop/electronics.svg'); + } + [shop = 'alcohol'], + [shop = 'wine'] { + shield-file: url('symbols/shop/alcohol.svg'); + a/marker-file: url('symbols/shop/alcohol.svg'); + } + [shop = 'optician'] { + shield-file: url('symbols/shop/optician.svg'); + a/marker-file: url('symbols/shop/optician.svg'); + } + [shop = 'outdoor'] { + shield-file: url('symbols/shop/outdoor.svg'); + a/marker-file: url('symbols/shop/outdoor.svg'); + } + [shop = 'furniture'] { + shield-file: url('symbols/shop/furniture.svg'); + a/marker-file: url('symbols/shop/furniture.svg'); + } + [shop = 'mobile_phone'] { + shield-file: url('symbols/shop/mobile_phone.svg'); + a/marker-file: url('symbols/shop/mobile_phone.svg'); + } + [shop = 'motorcycle'] { + shield-file: url('symbols/shop/motorcycle.svg'); + a/marker-file: url('symbols/shop/motorcycle.svg'); + } + [shop = 'musical_instrument'] { + shield-file: url('symbols/shop/musical_instrument.svg'); + a/marker-file: url('symbols/shop/musical_instrument.svg'); + } + [shop = 'kiosk'], + [shop = 'newsagent'] { + shield-file: url('symbols/shop/newsagent.svg'); + a/marker-file: url('symbols/shop/newsagent.svg'); + } + [shop = 'jewelry'], + [shop = 'jewellery'] { + shield-file: url('symbols/shop/jewelry.svg'); + a/marker-file: url('symbols/shop/jewelry.svg'); + } + [shop = 'toys'] { + shield-file: url('symbols/shop/toys.svg'); + a/marker-file: url('symbols/shop/toys.svg'); + } + [shop = 'travel_agency'] { + shield-file: url('symbols/shop/travel_agency.svg'); + a/marker-file: url('symbols/shop/travel_agency.svg'); + } + [shop = 'sports'] { + shield-file: url('symbols/shop/sports.svg'); + a/marker-file: url('symbols/shop/sports.svg'); + } + [shop = 'stationery'] { + shield-file: url('symbols/shop/stationery.svg'); + a/marker-file: url('symbols/shop/stationery.svg'); + } + [shop = 'tobacco'] { + shield-file: url('symbols/shop/tobacco.svg'); + a/marker-file: url('symbols/shop/tobacco.svg'); + } + [shop = 'tea'] { + shield-file: url('symbols/shop/tea.svg'); + a/marker-file: url('symbols/shop/tea.svg'); + } + [shop = 'variety_store'] { + shield-file: url('symbols/shop/variety_store.svg'); + a/marker-file: url('symbols/shop/variety_store.svg'); + } + } + } + [shop = 'supermarket'], + [shop = 'department_store'] { + [zoom >= 16] { + shield-fill: @shop-icon; + shield-placement: interior; + shield-clip: false; + shield-name: "[name]"; + shield-size: @standard-text-size; + shield-face-name: @standard-font; + shield-halo-radius: @standard-halo-radius; + shield-halo-fill: @standard-halo-fill; + shield-wrap-width: @standard-wrap-width; + shield-fill: @shop-icon; + shield-text-dy: 11; + shield-unlock-image: true; + + // second pass for icons without text where there is still space + a/marker-fill: @shop-icon; + a/marker-placement: interior; + a/marker-clip: false; + + [shop = 'supermarket'] { + shield-file: url('symbols/shop/supermarket.svg'); + a/marker-file: url('symbols/shop/supermarket.svg'); + } + [shop = 'department_store'] { + shield-file: url('symbols/shop/department_store.svg'); + a/marker-file: url('symbols/shop/department_store.svg'); + } + } + } } +} - [feature = 'highway_ford'][zoom >= 16] { - marker-file: url('symbols/ford.svg'); - marker-fill: @transportation-icon; +.amenity-low-priority { + [feature = 'man_made_cross'][zoom >= 16], + [feature = 'historic_wayside_cross'][zoom >= 16] { + marker-file: url('symbols/christian.9.svg'); + marker-fill: black; marker-placement: interior; marker-clip: false; } - [feature = 'tourism_caravan_site'][zoom >= 16] { - marker-file: url('symbols/caravan_park.svg'); + [feature = 'amenity_parking'][zoom >= 17], + [feature = 'amenity_bicycle_parking'][zoom >= 17], + [feature = 'amenity_motorcycle_parking'][zoom >= 17] { + [feature = 'amenity_parking'] { + marker-file: url('symbols/parking.svg'); + } + [feature = 'amenity_bicycle_parking'] { + marker-file: url('symbols/bicycle_parking.svg'); + } + [feature = 'amenity_motorcycle_parking'] { + marker-file: url('symbols/motorcycle_parking.svg'); + } marker-placement: interior; marker-clip: false; marker-fill: @transportation-icon; + [access != ''][access != 'permissive'][access != 'yes'] { + marker-opacity: 0.33; + } } - [feature = 'amenity_car_rental'][zoom >= 17] { - marker-file: url('symbols/rental_car.svg'); - marker-fill: @transportation-icon; + [feature = 'railway_level_crossing'][zoom >= 14]::railway, + [feature = 'railway_crossing'][zoom >= 15]::railway{ + marker-file: url('symbols/level_crossing.svg'); marker-placement: interior; - marker-clip: false; + [zoom >= 16] { + marker-file: url('symbols/level_crossing2.svg'); + } } - [feature = 'amenity_car_wash'][zoom >= 17] { - marker-file: url('symbols/car_wash.svg'); - marker-fill: @amenity-brown; + [feature = 'highway_mini_roundabout'][zoom >= 16]::highway { + marker-file: url('symbols/mini_roundabout.svg'); marker-placement: interior; marker-clip: false; } - [feature = 'tourism_chalet'][zoom >= 17] { - point-file: url('symbols/chalet.p.16.png'); - point-placement: interior; - } - - [feature = 'amenity_cinema'][zoom >= 16] { - marker-file: url('symbols/cinema.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; + [feature = 'barrier_gate']::barrier { + [zoom >= 16] { + marker-file: url('symbols/gate.svg'); + marker-placement: interior; + marker-clip: false; + } } - [feature = 'amenity_nightclub'][zoom >= 17] { - marker-file: url('symbols/nightclub.svg'); - marker-fill: @amenity-brown; + [feature = 'barrier_lift_gate'][zoom >= 16]::barrier, + [feature = 'barrier_swing_gate'][zoom >= 16]::barrier { + marker-file: url('symbols/liftgate.svg'); + marker-fill: #3f3f3f; marker-placement: interior; marker-clip: false; } - [feature = 'amenity_fire_station'][zoom >= 16] { - marker-file: url('symbols/firestation.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } + [feature = 'barrier_bollard'], + [feature = 'barrier_block'] { + [zoom >= 16] { + marker-width: 3; + marker-line-width: 0; + marker-fill: #7d7c7c; + marker-placement: interior; - [feature = 'amenity_fountain'] { - ::basin { - [zoom = 17] { - marker-fill: @water-color; - marker-allow-overlap: true; - marker-line-width: 0; - marker-width: 10; - marker-height: 10; - marker-ignore-placement: true; - } - } - ::nozzle { - [zoom = 17] { - nozzle/marker-fill: @marina-text; - nozzle/marker-line-width: 0; - nozzle/marker-width: 3; - nozzle/marker-height: 3; - } [zoom >= 18] { - nozzle/marker-file: url('symbols/fountain.svg'); - nozzle/marker-fill: @marina-text; - nozzle/marker-placement: interior; - nozzle/marker-clip: false; + marker-width: 4; } } } - [feature = 'amenity_charging_station'][zoom >= 17] { - marker-file: url('symbols/charging_station.svg'); - marker-fill: @transportation-icon; + [feature = 'amenity_bench'][zoom >= 19]::amenity { + marker-file: url('symbols/bench.svg'); + marker-fill: @amenity-brown; marker-placement: interior; - marker-clip: false; } - [feature = 'amenity_fuel'][zoom >= 17] { - marker-file: url('symbols/fuel.svg'); - marker-fill: @transportation-icon; + [feature = 'amenity_waste_basket'][zoom >= 19]::amenity { + marker-file: url('symbols/waste_basket.10.svg'); + marker-fill: @amenity-brown; marker-placement: interior; - marker-clip: false; - } - - [feature = 'tourism_guest_house'][zoom >= 17] { - point-file: url('symbols/guest_house.p.16.png'); - point-placement: interior; } +} - [feature = 'amenity_hospital'][zoom >= 15] { - marker-file: url('symbols/hospital.svg'); - marker-fill: @health-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'tourism_hostel'][zoom >= 17] { - marker-file: url('symbols/hostel.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - } - - [feature = 'tourism_hotel'][zoom >= 17] { - marker-file: url('symbols/hotel.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - } - - [feature = 'tourism_motel'][zoom >= 17] { - marker-file: url('symbols/motel.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - } - - [feature = 'amenity_ice_cream'][zoom >= 17] { - marker-file: url('symbols/shop/ice_cream.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'tourism_information'][zoom >= 17] { - marker-file: url('symbols/information.12.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'amenity_embassy'][zoom >= 17] { - marker-file: url('symbols/embassy.svg'); - marker-fill: @transportation-icon; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_library'][zoom >= 16] { - marker-file: url('symbols/library.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_courthouse'][zoom >= 16] { - marker-file: url('symbols/courthouse.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'amenity_community_centre'][zoom >= 17] { - marker-file: url('symbols/community_centre.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_social_facility'][zoom >= 17] { - marker-file: url('symbols/social_facility.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_townhall'][zoom >= 16] { - marker-file: url('symbols/town_hall.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'man_made_mast'][zoom >= 17] { - marker-file: url('symbols/communications.svg'); - marker-fill: @man-made-icon; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'tourism_museum'][zoom >= 16] { - marker-file: url('symbols/museum.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_parking'][way_pixels > 900], - [feature = 'amenity_bicycle_parking'][way_pixels > 900], - [feature = 'amenity_motorcycle_parking'][way_pixels > 900] { - [feature = 'amenity_parking'] { - marker-file: url('symbols/parking.svg'); - } - [feature = 'amenity_bicycle_parking'] { - marker-file: url('symbols/bicycle_parking.svg'); - } - [feature = 'amenity_motorcycle_parking'] { - marker-file: url('symbols/motorcycle_parking.svg'); - } - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - [access != ''][access != 'permissive'][access != 'yes'] { - marker-opacity: 0.33; - } - } - - [feature = 'amenity_pharmacy'][zoom >= 17] { - marker-file: url('symbols/pharmacy.svg'); - marker-fill: @health-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_clinic'][zoom >= 16], - [feature = 'amenity_doctors'][zoom >= 17] { - marker-file: url('symbols/doctors.svg'); - marker-fill: @health-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_dentist'][zoom >= 17] { - marker-file: url('symbols/dentist.svg'); - marker-fill: @health-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_veterinary'][zoom >= 17] { - marker-file: url('symbols/veterinary.svg'); - marker-fill: @health-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_place_of_worship'][zoom >= 16] { - marker-file: url('symbols/place_of_worship.svg'); - marker-fill: #000000; - marker-placement: interior; - marker-clip: false; - [religion = 'christian'] { - marker-file: url('symbols/christian.svg'); - [denomination = 'jehovahs_witness']{ - marker-file: url('symbols/place_of_worship.svg'); - } - } - [religion = 'muslim'] { - marker-file: url('symbols/muslim.svg'); - } - [religion = 'sikh'] { - marker-file: url('symbols/sikhist.svg'); - } - [religion = 'jewish'] { - marker-file: url('symbols/jewish.svg'); - } - [religion = 'hindu'] { - marker-file: url('symbols/hinduist.svg'); - } - [religion = 'buddhist'] { - marker-file: url('symbols/buddhist.svg'); - } - [religion = 'shinto'] { - marker-file: url('symbols/shintoist.svg'); - } - [religion = 'taoist'] { - marker-file: url('symbols/taoist.svg'); - } - } - - [feature = 'man_made_cross'][zoom >= 17], - [feature = 'historic_wayside_cross'][zoom >= 17] { - marker-file: url('symbols/christian.9.svg'); - marker-fill: #000000; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_police'][zoom >= 16] { - marker-file: url('symbols/police.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_post_box'][zoom >= 17] { - marker-file: url('symbols/post_box.12.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_post_office'][zoom >= 17] { - marker-file: url('symbols/post_office.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_pub'][zoom >= 17] { - marker-file: url('symbols/pub.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_biergarten'][zoom >= 17] { - marker-file: url('symbols/biergarten.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_recycling'][zoom >= 17] { - marker-file: url('symbols/recycling.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - [access != ''][access != 'permissive'][access != 'yes'] { - marker-opacity: 0.33; - } - } - - [feature = 'amenity_restaurant'][zoom >= 17], - [feature = 'amenity_food_court'][zoom >= 17] { - marker-file: url('symbols/restaurant.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_fast_food'][zoom >= 17] { - marker-file: url('symbols/fast_food.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_telephone'][zoom >= 17] { - marker-file: url('symbols/telephone.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_emergency_phone'][zoom >= 17] { - marker-file: url('symbols/emergency_phone.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_theatre'][zoom >= 16] { - marker-file: url('symbols/theatre.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_arts_centre'][zoom >= 17] { - marker-file: url('symbols/shop/art.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_toilets'][zoom >= 17] { - marker-file: url('symbols/toilets.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_drinking_water'][zoom >= 17] { - marker-file: url('symbols/drinking_water.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_prison'][zoom >= 17] { - marker-file: url('symbols/prison.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'tourism_viewpoint'][zoom >= 16] { - marker-file: url('symbols/viewpoint.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'man_made_water_tower'][zoom >= 17] { - marker-file: url('symbols/water_tower.svg'); - marker-fill: @man-made-icon; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'historic_memorial'][zoom >= 17] { - marker-file: url('symbols/memorial.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'man_made_obelisk'][zoom >= 16], - [feature = 'historic_monument'][zoom >= 16] { - marker-file: url('symbols/monument.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'historic_archaeological_site'][zoom >= 16] { - marker-file: url('symbols/archaeological_site.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'shop'] { - [zoom >= 17], - [shop = 'supermarket'][zoom >= 16], - [shop = 'department_store'][zoom >= 16] { - marker-placement: interior; - marker-clip: false; - marker-fill: @shop-icon; - } - - [zoom >= 17][zoom < 18][shop != 'supermarket'][shop != 'department_store'] { - marker-placement: interior; - marker-clip: false; - marker-fill: @shop-icon; - marker-width: 4; - marker-line-width: 0; - } - - [shop = 'other'][zoom >= 18] { - marker-width: 6; - marker-line-width: 0; - } - - [shop = 'supermarket'][zoom >= 16] { - marker-file: url('symbols/shop/supermarket.svg'); - } - - [shop = 'art'][zoom >= 18] { - marker-file: url('symbols/shop/art.svg'); - } - - [shop = 'bag'][zoom >= 18] { - marker-file: url('symbols/shop/bag.svg'); - } - - [shop = 'bakery'][zoom >= 18] { - marker-file: url('symbols/shop/bakery.svg'); - } - - [shop = 'beauty'][zoom >= 18] { - marker-file: url('symbols/shop/beauty.svg'); - } - - [shop = 'beverages'][zoom >= 18] { - marker-file: url('symbols/shop/beverages.svg'); - } - - [shop = 'books'][zoom >= 18] { - marker-file: url('symbols/library.svg'); - } - - [shop = 'butcher'][zoom >= 18] { - marker-file: url('symbols/shop/butcher.png'); - } - - [shop = 'chemist'][zoom >= 18] { - marker-file: url('symbols/shop/chemist.svg'); - } - - [shop = 'clothes'], - [shop = 'fashion'] { - [zoom >= 18] { - marker-file: url('symbols/shop/clothes.svg'); - } - } - - [shop = 'coffee'][zoom >= 18] { - marker-file: url('symbols/shop/coffee.svg'); - } - - [shop = 'computer'][zoom >= 18] { - marker-file: url('symbols/shop/computer.svg'); - } - - [shop = 'convenience'][zoom >= 18] { - marker-file: url('symbols/shop/convenience.svg'); - } - - [shop = 'confectionery'][zoom >= 18] { - marker-file: url('symbols/shop/confectionery.svg'); - } - - [shop = 'copyshop'][zoom >= 18] { - marker-file: url('symbols/shop/copyshop.svg'); - } - - [shop = 'cosmetics'], - [shop = 'perfumery'] { - [zoom >= 18] { - marker-file: url('symbols/shop/perfumery.svg'); - } - } - - [shop = 'deli'] { - [zoom >= 18] { - marker-file: url('symbols/shop/deli.svg'); - } - } - - [shop = 'department_store'][zoom >= 16] { - marker-file: url('symbols/shop/department_store.svg'); - } - - [shop = 'doityourself'], - [shop = 'hardware'] { - [zoom >= 18] { - marker-file: url('symbols/shop/diy.svg'); - } - } - - [shop = 'dry_cleaning'], - [shop = 'laundry'] { - [zoom >= 18] { - marker-file: url('symbols/shop/laundry.svg'); - } - } - - [shop = 'fishmonger'], - [shop = 'seafood'] { - [zoom >= 18] { - marker-file: url('symbols/shop/seafood.svg'); - } - } - - [shop = 'florist'][zoom >= 18] { - marker-file: url('symbols/shop/florist.svg'); - } - - [shop = 'garden_centre'][zoom >= 18] { - marker-file: url('symbols/shop/garden_centre.svg'); - } - - [shop = 'greengrocer'], - [shop = 'farm'] { - [zoom >= 18] { - marker-file: url('symbols/shop/greengrocer.svg'); - } - } - - [shop = 'hairdresser'][zoom >= 18] { - marker-file: url('symbols/shop/hairdresser.svg'); - } - - [shop = 'hifi'][zoom >= 18] { - marker-file: url('symbols/shop/hifi.svg'); - } - - [shop = 'ice_cream'][zoom >= 18] { - marker-file: url('symbols/shop/ice_cream.svg'); - } - - [shop = 'car'][zoom >= 18] { - marker-file: url('symbols/shop/car.svg'); - } - - [shop = 'car_parts'][zoom >= 18] { - marker-file: url('symbols/shop/car_parts.svg'); - } - - [shop = 'car_repair'][zoom >= 18] { - marker-file: url('symbols/shop/car_repair.svg'); - marker-fill: @amenity-brown; - } - - [shop = 'bicycle'][zoom >= 18] { - marker-file: url('symbols/shop/bicycle.svg'); - } - - [shop = 'pet'][zoom >= 18] { - marker-file: url('symbols/shop/pet.svg'); - } - - [shop = 'photo'], - [shop = 'photo_studio'], - [shop = 'photography'] { - [zoom >= 18] { - marker-file: url('symbols/shop/photo.svg'); - } - } - - [shop = 'shoes'][zoom >= 18] { - marker-file: url('symbols/shop/shoes.svg'); - } - - [shop = 'gift'][zoom >= 18] { - marker-file: url('symbols/shop/gift.svg'); - } - - [shop = 'electronics'][zoom >= 18] { - marker-file: url('symbols/shop/electronics.svg'); - } - - [shop = 'alcohol'], - [shop = 'wine'] { - [zoom >= 18] { - marker-file: url('symbols/shop/alcohol.svg'); - } - } - - [shop = 'optician'][zoom >= 18] { - marker-file: url('symbols/shop/optician.svg'); - } - - [shop = 'outdoor'][zoom >= 18] { - marker-file: url('symbols/shop/outdoor.svg'); - } - - [shop = 'furniture'][zoom >= 18] { - marker-file: url('symbols/shop/furniture.svg'); - } - - [shop = 'mobile_phone'][zoom >= 18] { - marker-file: url('symbols/shop/mobile_phone.svg'); - } - - [shop = 'motorcycle'][zoom >= 18] { - marker-file: url('symbols/motorcycle.svg'); - } - - [shop = 'musical_instrument'][zoom >= 18] { - marker-file: url('symbols/shop/musical_instrument.svg'); - } - - [shop = 'kiosk'], - [shop = 'newsagent'] { - [zoom >= 18] { - marker-file: url('symbols/shop/newsagent.svg'); - } - } - - [shop = 'jewelry'], - [shop = 'jewellery'] { - [zoom >= 18] { - marker-file: url('symbols/shop/jewelry.svg'); - } - } - - [shop = 'toys'][zoom >= 18] { - marker-file: url('symbols/shop/toys.svg'); - } - - [shop = 'travel_agency'][zoom >= 18] { - marker-file: url('symbols/shop/travel_agency.svg'); - } - - [shop = 'sports'][zoom >= 18] { - marker-file: url('symbols/shop/sports.svg'); - } - - [shop = 'stationery'][zoom >= 18] { - marker-file: url('symbols/shop/stationery.svg'); - } - - [shop = 'tobacco'][zoom >= 18] { - marker-file: url('symbols/shop/tobacco.svg'); - } - - [shop = 'tea'][zoom >= 18] { - marker-file: url('symbols/shop/tea.svg'); - } - - [shop = 'variety_store'][zoom >= 18] { - marker-file: url('symbols/shop/variety_store.svg'); - } - } - - [feature = 'leisure_water_park'][zoom >= 17] { - marker-file: url('symbols/water_park.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'leisure_dog_park'][zoom >= 17] { - marker-file: url('symbols/shop/pet.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'leisure_playground'][zoom >= 17] { - marker-file: url('symbols/playground.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - [access != ''][access != 'permissive'][access != 'yes'] { - marker-opacity: 0.33; - } - } - - [feature = 'leisure_miniature_golf'][zoom >= 17] { - point-file: url('symbols/miniature_golf.p.20.png'); - point-placement: interior; - } - - [feature = 'leisure_golf_course'][zoom >= 15] { - point-file: url('symbols/golf.p.20.png'); - point-placement: interior; - } - - [feature = 'tourism_picnic_site'][zoom >= 16] { - marker-file: url('symbols/picnic.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'leisure_picnic_table'][zoom >= 17] { - marker-file: url('symbols/picnic.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'leisure_slipway'][zoom >= 17] { - point-file: url('symbols/transport_slipway.p.20.png'); - point-placement: interior; - } - - [feature = 'aeroway_helipad'][zoom >= 16] { - marker-file: url('symbols/helipad.16.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @airtransport; - } - - [feature = 'aeroway_aerodrome'][zoom >= 10][zoom < 14] { - marker-file: url('symbols/aerodrome.12.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @airtransport; - } - - [feature = 'man_made_lighthouse'][zoom >= 15] { - marker-file: url('symbols/lighthouse.svg'); - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - } - - [feature = 'natural_peak'][zoom >= 11] { - marker-file: url('symbols/peak.svg'); - marker-fill: @landform-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'natural_volcano'][zoom >= 11] { - marker-file: url('symbols/peak.svg'); - marker-fill: #d40000; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'natural_saddle'][zoom >= 15] { - marker-file: url('symbols/saddle.svg'); - marker-fill: @landform-color; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'natural_cave_entrance'][zoom >= 15] { - marker-file: url('symbols/cave.svg'); - marker-placement: interior; - marker-clip: false; - } - - [feature = 'natural_spring'][zoom >= 14] { - marker-file: url('symbols/spring.svg'); - marker-placement: interior; - marker-clip: false; - } - - [feature = 'power_generator']['generator:source' = 'wind'], - [feature = 'power_generator'][power_source = 'wind'] { - [zoom >= 15] { - marker-file: url('symbols/power_wind.svg'); - marker-placement: interior; - marker-fill: black; - marker-clip: false; - } - } - - [feature = 'man_made_windmill'][zoom >= 16] { - marker-file: url('symbols/windmill.svg'); - marker-placement: interior; - marker-fill: @amenity-brown; - marker-clip: false; - } - - [feature = 'amenity_hunting_stand'][zoom >= 16] { - marker-file: url('symbols/hunting_stand.svg'); - marker-fill: @man-made-icon; - marker-placement: interior; - marker-clip: false; - } -} - -.amenity-low-priority { - [feature = 'man_made_cross'][zoom >= 16], - [feature = 'historic_wayside_cross'][zoom >= 16] { - marker-file: url('symbols/christian.9.svg'); - marker-fill: #000000; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'amenity_parking'][zoom >= 17], - [feature = 'amenity_bicycle_parking'][zoom >= 17], - [feature = 'amenity_motorcycle_parking'][zoom >= 17] { - [feature = 'amenity_parking'] { - marker-file: url('symbols/parking.svg'); - } - [feature = 'amenity_bicycle_parking'] { - marker-file: url('symbols/bicycle_parking.svg'); - } - [feature = 'amenity_motorcycle_parking'] { - marker-file: url('symbols/motorcycle_parking.svg'); - } - marker-placement: interior; - marker-clip: false; - marker-fill: @transportation-icon; - [access != ''][access != 'permissive'][access != 'yes'] { - marker-opacity: 0.33; - } - } - - [feature = 'railway_level_crossing'][zoom >= 14]::railway, - [feature = 'railway_crossing'][zoom >= 15]::railway{ - point-file: url('symbols/level_crossing.svg'); - point-placement: interior; - [zoom >= 16] { - point-file: url('symbols/level_crossing2.svg'); - } - } - - [feature = 'highway_mini_roundabout'][zoom >= 16]::highway { - marker-file: url('symbols/mini_roundabout.svg'); - marker-placement: interior; - marker-clip: false; - } - - [feature = 'barrier_gate']::barrier { - [zoom >= 16] { - marker-file: url('symbols/gate.svg'); - marker-placement: interior; - marker-clip: false; - } - } - - [feature = 'barrier_lift_gate'][zoom >= 16]::barrier, - [feature = 'barrier_swing_gate'][zoom >= 16]::barrier { - marker-file: url('symbols/liftgate.svg'); - marker-fill: #3f3f3f; - marker-placement: interior; - marker-clip: false; - } - - [feature = 'barrier_bollard'], - [feature = 'barrier_block'] { - [zoom >= 16] { - marker-width: 3; - marker-line-width: 0; - marker-fill: #7d7c7c; - marker-placement: interior; - - [zoom >= 18] { - marker-width: 4; - } - } - } - - [feature = 'amenity_bench'][zoom >= 19]::amenity { - marker-file: url('symbols/bench.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - } - - [feature = 'amenity_waste_basket'][zoom >= 19]::amenity { - marker-file: url('symbols/waste_basket.10.svg'); - marker-fill: @amenity-brown; - marker-placement: interior; - } -} - -/* Note that .text is also used in water.mss */ -.text-low-zoom[zoom < 10], -.text[zoom >= 10] { - [feature = 'place_island'][zoom >= 7][way_pixels > 3000][way_pixels < 800000], - [feature = 'place_island'][zoom >= 16][way_pixels < 800000], - [feature = 'place_islet'][zoom >= 14][way_pixels > 3000][way_pixels < 800000], - [feature = 'place_islet'][zoom >= 17][way_pixels < 800000] { - text-name: "[name]"; - text-fill: #000; - text-size: @standard-text-size; - [way_pixels > 12000] { text-size: 12; } - [way_pixels > 48000] { text-size: 15; } - text-face-name: @oblique-fonts; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_pub'], - [feature = 'amenity_restaurant'], - [feature = 'amenity_food_court'], - [feature = 'amenity_cafe'], - [feature = 'amenity_fast_food'], - [feature = 'amenity_biergarten'], - [feature = 'amenity_bar'], - [feature = 'amenity_ice_cream'], - [feature = 'amenity_nightclub'] { - [zoom >= 17] { - text-name: "[name]"; - text-fill: @amenity-brown; - text-size: @standard-text-size; - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'amenity_bar']{ - text-dy: 13; - } - [feature = 'amenity_nightclub']{ - text-dy: 12; - } - } - } - - [feature = 'amenity_library'], - [feature = 'tourism_museum'], - [feature = 'amenity_theatre'], - [feature = 'amenity_courthouse'], - [feature = 'amenity_townhall'], - [feature = 'amenity_cinema'], - [feature = 'amenity_arts_centre'] { - [zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @amenity-brown; - text-dy: 13; - text-face-name: @standard-font; - [feature = 'tourism_museum'] { text-face-name: @standard-font; } - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'amenity_library'], - [feature = 'tourism_museum'], - [feature = 'amenity_theatre'], - [feature = 'amenity_cinema'], - [feature = 'amenity_arts_centre'] { - text-dy: 11; - } - } - } - - [feature = 'amenity_car_rental'][zoom >= 17], - [feature = 'amenity_bicycle_rental'][zoom >= 17], - [feature = 'leisure_slipway'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @transportation-text; - [feature = 'amenity_car_rental'] { text-dy: 10; } - [feature = 'amenity_bicycle_rental'] { text-dy: 10; } - [feature = 'leisure_slipway'] { text-dy: 13; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_parking'][zoom >= 10][way_pixels > 900], - [feature = 'amenity_bicycle_parking'][zoom >= 10][way_pixels > 900], - [feature = 'amenity_motorcycle_parking'][zoom >= 10][way_pixels > 900] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @transportation-text; - text-dy: 9; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [access != ''][access != 'permissive'][access != 'yes'] { - text-fill: #66ccaf; - } - [feature = 'amenity_bicycle_parking'], - [feature = 'amenity_motorcycle_parking'] { - text-dy: 12; - } - } - - - [feature = 'amenity_police'][zoom >= 17], - [feature = 'amenity_car_wash'][zoom >= 17], - [feature = 'amenity_community_centre'][zoom >= 17], - [feature = 'amenity_social_facility'][zoom >= 17], - [feature = 'amenity_fire_station'][zoom >= 17], - [feature = 'amenity_drinking_water'][zoom >= 17], - [feature = 'tourism_picnic_site'][zoom >= 17], - [feature = 'leisure_picnic_table'][zoom >= 17], - [feature = 'amenity_post_office'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @amenity-brown; - text-dy: 10; - [feature = 'amenity_police'] { text-dy: 11; } - [feature = 'amenity_fire_station'] { text-dy: 11; } - [feature = 'amenity_post_office'] { text-dy: 11; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_place_of_worship'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: #000033; - text-dy: 12; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'natural_peak'][zoom >= 13], - [feature = 'natural_volcano'][zoom >= 13], - [feature = 'natural_saddle'][zoom >= 15], - [feature = 'tourism_viewpoint'][zoom >= 16] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: darken(@landform-color, 30%); - [feature = 'natural_volcano'] { text-fill: #d40000; } - text-dy: 7; - [feature = 'tourism_viewpoint'] { text-dy: 11; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'man_made_cross'][zoom >= 17], - [feature = 'historic_wayside_cross'][zoom >= 17], - [feature = 'natural_cave_entrance'][zoom >= 15], - [feature = 'man_made_mast'][zoom >= 17], - [feature = 'man_made_water_tower'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: black; - [feature = 'natural_cave_entrance'], - [feature = 'man_made_water_tower'] { - text-dy: 11; - } - [feature = 'man_made_cross'], - [feature = 'historic_wayside_cross'] { - text-dy: 6; - } - [feature = 'man_made_mast'] { text-dy: 10; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'tourism_artwork'][zoom >= 17], - [feature = 'historic_memorial'][zoom >= 17], - [feature = 'man_made_obelisk'][zoom >= 16], - [feature = 'historic_monument'][zoom >= 16], - [feature = 'historic_archaeological_site'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @amenity-brown; - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'leisure_miniature_golf'][zoom >= 17], - [feature = 'leisure_golf_course'][zoom >= 15] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: darken(@park, 60%); - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - text-dy: 13; - text-wrap-width: 40; - } - - [feature = 'leisure_water_park'] { - [way_area >= 150000][zoom >= 14], - [way_area >= 80000][zoom >= 15], - [way_area >= 20000][zoom >= 16], - [zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: darken(@park, 60%); - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - } - - [feature = 'leisure_swimming_pool'][is_building = 'no'] { - [zoom >= 14][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: @marina-text; - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'leisure_playground'], - [feature = 'leisure_dog_park'] { - [way_area >= 150000][zoom >= 14], - [way_area >= 80000][zoom >= 15], - [way_area >= 20000][zoom >= 16], - [zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-dy: 13; - text-fill: darken(@park, 60%); - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [access != ''][access != 'permissive'][access != 'yes'] { - text-fill: darken(@park, 50%); - } - } - } - - [feature = 'landuse_military'], - [feature = 'natural_wood'], - [feature = 'landuse_forest'], - [feature = 'boundary_national_park'], - [feature = 'leisure_nature_reserve'] { - [zoom >= 8][way_pixels > 3000][is_building = 'no'], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - [feature = 'landuse_military'] { - text-fill: darken(@military, 40%); - } - [feature = 'natural_wood'], - [feature = 'landuse_forest'] { - text-fill: @forest-text; - } - [feature = 'boundary_national_park'], - [feature = 'leisure_nature_reserve'] { - text-fill: darken(@park, 70%); - } - } - } - - [feature = 'military_danger_area'][is_building = 'no'] { - [zoom >= 9][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: darken(@danger_area, 40%); - text-face-name: @bold-fonts; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'landuse_garages'][is_building = 'no'] { - [zoom >= 13][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: darken(@garages, 50%); - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'natural_wetland'], - [feature = 'natural_marsh'], - [feature = 'natural_mud'], - [feature = 'leisure_park'], - [feature = 'leisure_recreation_ground'], - [feature = 'landuse_recreation_ground'], - [feature = 'landuse_village_green'], - [feature = 'leisure_common'], - [feature = 'leisure_garden'], - [feature = 'landuse_quarry'], - [feature = 'landuse_vineyard'], - [feature = 'landuse_orchard'], - [feature = 'landuse_plant_nursery'], - [feature = 'landuse_cemetery'], - [feature = 'amenity_grave_yard'], - [feature = 'landuse_residential'], - [feature = 'landuse_meadow'], - [feature = 'natural_grassland'], - [feature = 'landuse_grass'], - [feature = 'landuse_allotments'], - [feature = 'landuse_farmyard'], - [feature = 'landuse_farm'], - [feature = 'landuse_farmland'], - [feature = 'landuse_greenhouse_horticulture'], - [feature = 'shop_mall'], - [feature = 'landuse_retail'], - [feature = 'landuse_industrial'], - [feature = 'landuse_railway'], - [feature = 'landuse_commercial'], - [feature = 'landuse_brownfield'], - [feature = 'landuse_landfill'], - [feature = 'landuse_construction'], - [feature = 'tourism_caravan_site'], - [feature = 'tourism_theme_park'], - [feature = 'tourism_zoo'], - [feature = 'tourism_attraction'], - [feature = 'amenity_kindergarten'], - [feature = 'amenity_school'], - [feature = 'amenity_college'], - [feature = 'amenity_university'], - [feature = 'natural_heath'], - [feature = 'natural_scrub'], - [feature = 'natural_beach'], - [feature = 'natural_shoal'], - [feature = 'natural_reef'], - [feature = 'leisure_fitness_centre'], - [feature = 'leisure_sports_centre'], - [feature = 'leisure_stadium'], - [feature = 'leisure_track'], - [feature = 'leisure_dog_park'], - [feature = 'leisure_pitch'] { - [zoom >= 10][way_pixels > 3000][is_building = 'no'], - [zoom >= 17][is_building = 'no'], - [zoom >= 10][way_pixels > 3000][feature = 'shop_mall'], - [zoom >= 17][feature = 'shop_mall'] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - [feature = 'natural_reef'], - [feature = 'natural_wetland'], - [feature = 'natural_marsh'], - [feature = 'natural_mud'] { - text-fill: @wetland-text; - } - [feature = 'leisure_park'], - [feature = 'leisure_recreation_ground'], - [feature = 'landuse_recreation_ground'], - [feature = 'landuse_village_green'], - [feature = 'leisure_common'], - [feature = 'leisure_garden'] { - text-fill: darken(@park, 60%); - } - [feature = 'landuse_quarry'] { - text-fill: darken(@quarry, 60%); - } - [feature = 'landuse_vineyard'], - [feature = 'landuse_orchard'], - [feature = 'landuse_plant_nursery'] { - text-fill: darken(@orchard, 50%); - } - [feature = 'landuse_cemetery'], - [feature = 'amenity_grave_yard'] { - text-fill: darken(@cemetery, 50%); - text-halo-radius: @standard-halo-radius * 1.5; /* extra halo needed to overpower the cemetery polygon pattern */ - } - [feature = 'landuse_residential'] { - text-fill: darken(@residential, 50%); - } - [feature = 'landuse_meadow'], - [feature = 'natural_grassland'], - [feature = 'landuse_grass'] { - text-fill: darken(@grass, 50%); - } - [feature = 'landuse_allotments'] { - text-fill: darken(@allotments, 50%); - } - [feature = 'landuse_farmyard'] { - text-fill: darken(@farmyard, 50%); - } - [feature = 'landuse_farm'], - [feature = 'landuse_farmland'], - [feature = 'landuse_greenhouse_horticulture'] { - text-fill: darken(@farmland, 50%); - } - [feature = 'shop_mall'], - [feature = 'landuse_retail'] { - text-fill: darken(@retail, 50%); - } - [feature = 'landuse_industrial'], - [feature = 'landuse_railway'] { - text-fill: darken(@industrial, 60%); - } - [feature = 'landuse_commercial'] { - text-fill: darken(@commercial, 60%); - } - [feature = 'landuse_brownfield'], - [feature = 'landuse_landfill'], - [feature = 'landuse_construction'] { - text-fill: darken(@construction, 50%); - } - [feature = 'tourism_caravan_site'] { - text-fill: darken(@campsite, 50%); - text-dy: 15; - } - [feature = 'tourism_theme_park'], - [feature = 'tourism_zoo'] { - text-fill: @tourism; - text-face-name: @bold-fonts; /*rendered bold to improve visibility since theme parks tend to have crowded backgrounds*/ - } - [feature = 'tourism_attraction'] { - text-fill: #660033; - text-face-name: @standard-font; - } - [feature = 'amenity_kindergarten'], - [feature = 'amenity_school'], - [feature = 'amenity_college'], - [feature = 'amenity_university'] { - text-fill: darken(@societal_amenities, 70%); - } - [feature = 'natural_heath'] { - text-fill: darken(@heath, 40%); - } - [feature = 'natural_scrub'] { - text-fill: darken(@scrub, 60%); - } - [feature = 'natural_beach'], - [feature = 'natural_shoal'] { - text-fill: darken(@beach, 60%); - } - [feature = 'leisure_fitness_centre'], - [feature = 'leisure_sports_centre'], - [feature = 'leisure_stadium'] { - text-fill: darken(@stadium, 70%); - } - [feature = 'leisure_dog_park'] { - text-fill: darken(@park, 60%); - text-halo-radius: @standard-halo-radius * 1.5; /* Extra halo needed to stand out from paw pattern. */ - text-halo-fill: @standard-halo-fill; - } - [feature = 'leisure_track'] { - text-fill: darken(@track, 40%); - } - [feature = 'leisure_pitch'] { - text-fill: darken(@pitch, 40%); - } - } - } - - [feature = 'natural_bay'][zoom >= 14], - [feature = 'natural_spring'][zoom >= 16] { - text-name: "[name]"; - text-size: 10; - text-fill: @water-text; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'natural_spring'] { - text-dy: 6; - } - } - - [feature = 'amenity_bank'][zoom >= 17], - [feature = 'amenity_atm'][zoom >= 17] { - text-name: "[name]"; - [feature = 'amenity_atm'] { - text-name: "[operator]"; - } - text-size: @standard-text-size; - [feature = 'amenity_bank'] { text-dy: 9; } - [feature = 'amenity_atm'] { text-dy: 10; } - text-fill: @amenity-brown; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - text-face-name: @standard-font; - } - - [feature = 'tourism_alpine_hut'][zoom >= 14], - [feature = 'amenity_shelter'][zoom >= 17], - [feature = 'tourism_hotel'][zoom >= 17], - [feature = 'tourism_motel'][zoom >= 17], - [feature = 'tourism_hostel'][zoom >= 17], - [feature = 'tourism_chalet'][zoom >= 17], - [feature = 'tourism_guest_house'][zoom >= 17], - [feature = 'tourism_wilderness_hut'][zoom >= 14], - [feature = 'tourism_camp_site'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: #0066ff; - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'tourism_motel'] { - text-dy: 13; - } - [feature = 'tourism_camp_site'] { - text-dy: 15; - } - } - - [feature = 'amenity_embassy'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: #0066ff; - text-dy: 10; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_taxi'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: #0066ff; - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'highway_bus_stop'], - [feature = 'amenity_charging_station'], - [feature = 'amenity_fuel'], - [feature = 'amenity_bus_station'] { - [zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @transportation-text; - text-dy: 11; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'highway_bus_stop'] { - text-dy: 9; - } - } - } - - [feature = 'leisure_marina'][zoom >= 15] { - [zoom >= 10][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: @marina-text; - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'amenity_fountain'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @marina-text; - text-dy: 4; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [zoom >= 18] { - text-dy: 10; - } - } - - - [feature = 'amenity_prison'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @amenity-brown; - text-dy: 12; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - - [feature = 'man_made_lighthouse'][zoom >= 15] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @transportation-text; - text-dy: 16; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'man_made_windmill'][zoom >= 17], - [feature = 'amenity_recycling'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @amenity-brown; - text-dy: 12; - [feature = 'amenity_recycling'] { text-dy: 10; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - [feature = 'amenity_hospital'][zoom >= 16] { - text-name: "[name]"; - text-fill: @health-color; - text-size: @standard-text-size; - text-dy: 10; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - - - [feature = 'amenity_clinic'], - [feature = 'amenity_pharmacy'], - [feature = 'amenity_doctors'], - [feature = 'amenity_dentist'], - [feature = 'amenity_veterinary'] { - [zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-dy: 12; - text-fill: @health-color; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - } - - [feature = 'shop_art'], - [feature = 'shop_bag'], - [feature = 'shop_bakery'], - [feature = 'shop_beauty'], - [feature = 'shop_beverages'], - [feature = 'shop_books'], - [feature = 'shop_clothes'], - [feature = 'shop_coffee'], - [feature = 'shop_computer'], - [feature = 'shop_fashion'], - [feature = 'shop_convenience'], - [feature = 'shop_confectionery'], - [feature = 'shop_copyshop'], - [feature = 'shop_deli'], - [feature = 'shop_doityourself'], - [feature = 'shop_dry_cleaning'], - [feature = 'shop_hardware'], - [feature = 'shop_hairdresser'], - [feature = 'shop_hifi'], - [feature = 'shop_ice_cream'], - [feature = 'shop_butcher'], - [feature = 'shop_car'], - [feature = 'shop_car_repair'], - [feature = 'shop_car_parts'], - [feature = 'shop_cosmetics'], - [feature = 'shop_bicycle'], - [feature = 'shop_farm'], - [feature = 'shop_fishmonger'], - [feature = 'shop_florist'], - [feature = 'shop_garden_centre'], - [feature = 'shop_greengrocer'], - [feature = 'shop_pet'], - [feature = 'shop_photo'], - [feature = 'shop_photo_studio'], - [feature = 'shop_photography'], - [feature = 'shop_shoes'], - [feature = 'shop_gift'], - [feature = 'shop_electronics'], - [feature = 'shop_alcohol'], - [feature = 'shop_optician'], - [feature = 'shop_outdoor'], - [feature = 'shop_perfumery'], - [feature = 'shop_furniture'], - [feature = 'shop_kiosk'], - [feature = 'shop_mobile_phone'], - [feature = 'shop_motorcycle'], - [feature = 'shop_musical_instrument'], - [feature = 'shop_newsagent'], - [feature = 'shop_jewelry'], - [feature = 'shop_jewellery'], - [feature = 'shop_laundry'], - [feature = 'shop_chemist'], - [feature = 'shop_toys'], - [feature = 'shop_travel_agency'], - [feature = 'shop_seafood'], - [feature = 'shop_sports'], - [feature = 'shop_stationery'], - [feature = 'shop_tobacco'], - [feature = 'shop_tea'], - [feature = 'shop_variety_store'], - [feature = 'shop_wine'], - [feature = 'shop_other']{ - [way_pixels > 3000][zoom >= 17], - [zoom >= 18] { - text-name: "[name]"; - text-size: @standard-text-size; - text-dy: 12; - text-fill: @shop-text; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: rgba(255, 255, 255, 0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - [feature = 'shop_car_repair'] { - text-fill: @amenity-brown; - } - } - } - - [feature = 'shop_supermarket'], - [feature = 'shop_department_store'] { - [zoom >= 16] { - text-name: "[name]"; - text-size: @standard-text-size; - text-dy: 12; - text-fill: @shop-text; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: rgba(255, 255, 255, 0.6); - text-wrap-width: @standard-wrap-width; - text-placement: interior; - } - } - - [feature = 'aeroway_gate'][zoom >= 17] { +/* Note that .text is also used in water.mss, landcover.mss and placenames.mss */ +.text[zoom >= 17] { + [feature = 'aeroway_gate'] { text-name: "[ref]"; text-size: @standard-text-size; text-fill: #aa66cc; @@ -1901,246 +1250,4 @@ text-wrap-width: @standard-wrap-width; text-placement: interior; } - - [feature = 'power_plant'][is_building = 'no'][zoom >= 10], - [feature = 'power_station'][is_building = 'no'][zoom >= 10], - [feature = 'power_generator'][is_building = 'no'][zoom >= 10], - [feature = 'power_sub_station'][is_building = 'no'][zoom >= 13], - [feature = 'power_substation'][is_building = 'no'][zoom >= 13]{ - [way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: darken(@power, 40%); - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'natural_scree'], - [feature = 'natural_shingle'], - [feature = 'natural_bare_rock'], - [feature = 'natural_sand'] { - [zoom >= 9][way_pixels > 3000][is_building = 'no'], - [zoom >= 17][is_building = 'no'] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - [feature = 'natural_scree'], - [feature = 'natural_shingle'], - [feature = 'natural_bare_rock'] { - text-fill: darken(@bare_ground, 50%); - } - [feature = 'natural_sand'] { - text-fill: darken(@sand, 50%); - } - } - } - - [feature = 'aeroway_apron'][is_building = 'no'] { - [zoom >= 10][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: darken(@apron, 60%); - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'highway_services'][is_building = 'no'], - [feature = 'highway_rest_area'][is_building = 'no'] { - [zoom >= 10][way_pixels > 3000], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: darken(@rest_area, 40%); - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'natural_glacier'][is_building = 'no'] { - [zoom >= 8][way_pixels > 10000], - [zoom >= 10][way_pixels > 750], - [zoom >= 17] { - text-name: "[name]"; - text-size: @landcover-font-size; - text-wrap-width: @landcover-wrap-width-size; - [way_pixels > 12000] { - text-size: @landcover-font-size-big; - text-wrap-width: @landcover-wrap-width-size-big; - } - [way_pixels > 48000] { - text-size: @landcover-font-size-bigger; - text-wrap-width: @landcover-wrap-width-size-bigger; - } - text-fill: mix(darken(@glacier, 40%), darken(@glacier-line, 30%), 50%); - text-face-name: @landcover-face-name; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - } - } - - [feature = 'aeroway_helipad'][zoom >= 16] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: @airtransport; - text-dy: -10; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - text-wrap-width: @standard-wrap-width; - } - - [feature = 'aeroway_aerodrome'][zoom >= 10][zoom < 14] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: darken(@airtransport, 15%); - text-dy: -10; - text-face-name: @oblique-fonts; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - text-wrap-width: @standard-wrap-width; - } - - [feature = 'amenity_hunting_stand'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-dy: 11; - text-fill: @man-made-icon; - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - text-wrap-width: @standard-wrap-width; - } - - [feature = 'natural_tree'][zoom >= 17] { - text-name: "[name]"; - text-size: @standard-text-size; - text-fill: green; - text-dy: 7; - [zoom >= 18] { text-dy: 8; } - [zoom >= 19] { text-dy: 11; } - [zoom >= 20] { text-dy: 18; } - text-face-name: @standard-font; - text-halo-radius: @standard-halo-radius; - text-halo-fill: @standard-halo-fill; - text-placement: interior; - text-wrap-width: @standard-wrap-width; - } -} - -#trees [zoom >= 16] { - ::canopy { - opacity: 0.3; - [natural = 'tree_row'] { - line-color: green; - line-cap: round; - line-width: 2.5; - [zoom >= 17] { - line-width: 5; - } - [zoom >= 18] { - line-width: 10; - } - [zoom >= 19] { - line-width: 15; - } - [zoom >= 20] { - line-width: 30; - } - } - [natural = 'tree'] { - marker-fill: green; - marker-allow-overlap: true; - marker-line-width: 0; - marker-width: 2.5; - marker-height: 2.5; - marker-ignore-placement: true; - [zoom >= 17] { - marker-width: 5; - marker-height: 5; - } - [zoom >= 18] { - marker-width: 10; - marker-height: 10; - } - [zoom >= 19] { - marker-width: 15; - marker-height: 15; - } - [zoom >= 20] { - marker-width: 30; - marker-height: 30; - } - } - } - [natural = 'tree']::trunk { - [zoom >= 18] { - trunk/marker-fill: #b27f36; - trunk/marker-allow-overlap: true; - trunk/marker-line-width: 0; - trunk/marker-width: 2; - trunk/marker-height: 2; - trunk/marker-ignore-placement: true; - } - [zoom >= 19] { - trunk/marker-width: 3; - trunk/marker-height: 3; - } - [zoom >= 20] { - trunk/marker-width: 6; - trunk/marker-height: 6; - } - } } diff --git a/landcover.mss b/landcover.mss index 23ce1ec631..a457f847c6 100644 --- a/landcover.mss +++ b/landcover.mss @@ -62,6 +62,16 @@ @stadium: @societal_amenities; // also fitness_centre and sports_centre @golf_course: #b5e3b5; +// --- Text --- + +@landcover-font-size: 10; +@landcover-font-size-big: 12; +@landcover-font-size-bigger: 15; +@landcover-wrap-width-size: 25; +@landcover-wrap-width-size-big: 35; +@landcover-wrap-width-size-bigger: 45; +@landcover-face-name: @oblique-fonts; + #landcover-low-zoom[zoom < 10], #landcover[zoom >= 10] { @@ -92,20 +102,6 @@ [way_pixels >= 64] { polygon-gamma: 0.3; } } - [feature = 'tourism_camp_site'], - [feature = 'tourism_caravan_site'], - [feature = 'tourism_picnic_site'] { - [zoom >= 10] { - polygon-fill: @campsite; - [zoom >= 13] { - line-color: saturate(darken(@campsite, 60%), 30%); - line-width: 0.3; - } - [way_pixels >= 4] { polygon-gamma: 0.75; } - [way_pixels >= 64] { polygon-gamma: 0.3; } - } - } - [feature = 'landuse_quarry'][zoom >= 10] { polygon-fill: @quarry; polygon-pattern-file: url('symbols/quarry.png'); @@ -575,6 +571,20 @@ [way_pixels >= 4] { polygon-gamma: 0.75; } [way_pixels >= 64] { polygon-gamma: 0.3; } } + + [feature = 'tourism_camp_site'], + [feature = 'tourism_caravan_site'], + [feature = 'tourism_picnic_site'] { + [zoom >= 10] { + polygon-fill: @campsite; + [zoom >= 13] { + line-color: saturate(darken(@campsite, 60%), 30%); + line-width: 0.3; + } + [way_pixels >= 4] { polygon-gamma: 0.75; } + [way_pixels >= 64] { polygon-gamma: 0.3; } + } + } } /* man_made=cutline */ @@ -762,3 +772,526 @@ text-spacing: 400; } } + +#trees[zoom >= 16] { + ::canopy { + opacity: 0.3; + [natural = 'tree_row'] { + line-color: green; + line-cap: round; + line-width: 2.5; + [zoom >= 17] { line-width: 5; } + [zoom >= 18] { line-width: 10; } + [zoom >= 19] { line-width: 15; } + [zoom >= 20] { line-width: 30; } + } + [natural = 'tree'] { + marker-fill: green; + marker-allow-overlap: true; + marker-line-width: 0; + marker-width: 2.5; + marker-height: 2.5; + marker-ignore-placement: true; + [zoom >= 17] { + marker-width: 5; + marker-height: 5; + } + [zoom >= 18] { + marker-width: 10; + marker-height: 10; + } + [zoom >= 19] { + marker-width: 15; + marker-height: 15; + } + [zoom >= 20] { + marker-width: 30; + marker-height: 30; + } + } + } + [natural = 'tree']::trunk { + [zoom >= 18] { + trunk/marker-fill: #b27f36; + trunk/marker-allow-overlap: true; + trunk/marker-line-width: 0; + trunk/marker-width: 2; + trunk/marker-height: 2; + trunk/marker-ignore-placement: true; + } + [zoom >= 19] { + trunk/marker-width: 3; + trunk/marker-height: 3; + } + [zoom >= 20] { + trunk/marker-width: 6; + trunk/marker-height: 6; + } + } +} + +.text-low-zoom[zoom < 10], +.text[zoom >= 10] { + [feature = 'landuse_military'], + [feature = 'natural_wood'], + [feature = 'landuse_forest'], + [feature = 'boundary_national_park'], + [feature = 'leisure_nature_reserve'] { + [zoom >= 8][way_pixels > 3000][is_building = 'no'], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + [feature = 'landuse_military'] { + text-fill: darken(@military, 40%); + } + [feature = 'natural_wood'], + [feature = 'landuse_forest'] { + text-fill: @forest-text; + } + [feature = 'boundary_national_park'], + [feature = 'leisure_nature_reserve'] { + text-fill: darken(@park, 70%); + } + } + } + + [feature = 'military_danger_area'][is_building = 'no'] { + [zoom >= 9][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: darken(@danger_area, 40%); + text-face-name: @bold-fonts; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'landuse_garages'][is_building = 'no'] { + [zoom >= 13][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: darken(@garages, 50%); + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'natural_wetland'], + [feature = 'natural_marsh'], + [feature = 'natural_mud'], + [feature = 'leisure_park'], + [feature = 'leisure_recreation_ground'], + [feature = 'landuse_recreation_ground'], + [feature = 'landuse_village_green'], + [feature = 'leisure_common'], + [feature = 'leisure_garden'], + [feature = 'landuse_quarry'], + [feature = 'landuse_vineyard'], + [feature = 'landuse_orchard'], + [feature = 'landuse_plant_nursery'], + [feature = 'landuse_cemetery'], + [feature = 'amenity_grave_yard'], + [feature = 'landuse_residential'], + [feature = 'landuse_meadow'], + [feature = 'natural_grassland'], + [feature = 'landuse_grass'], + [feature = 'landuse_allotments'], + [feature = 'landuse_farmyard'], + [feature = 'landuse_farm'], + [feature = 'landuse_farmland'], + [feature = 'landuse_greenhouse_horticulture'], + [feature = 'shop_mall'], + [feature = 'landuse_retail'], + [feature = 'landuse_industrial'], + [feature = 'landuse_railway'], + [feature = 'landuse_commercial'], + [feature = 'landuse_brownfield'], + [feature = 'landuse_landfill'], + [feature = 'landuse_construction'], + [feature = 'tourism_caravan_site'], + [feature = 'tourism_theme_park'], + [feature = 'tourism_zoo'], + [feature = 'tourism_attraction'], + [feature = 'amenity_kindergarten'], + [feature = 'amenity_school'], + [feature = 'amenity_college'], + [feature = 'amenity_university'], + [feature = 'natural_heath'], + [feature = 'natural_scrub'], + [feature = 'natural_beach'], + [feature = 'natural_shoal'], + [feature = 'natural_reef'], + [feature = 'leisure_fitness_centre'], + [feature = 'leisure_sports_centre'], + [feature = 'leisure_stadium'], + [feature = 'leisure_track'], + [feature = 'leisure_dog_park'], + [feature = 'leisure_playground'], + [feature = 'leisure_pitch'], + [feature = 'leisure_water_park'] { + [zoom >= 10][way_pixels > 3000][is_building = 'no'], + [zoom >= 17][is_building = 'no'], + [zoom >= 10][way_pixels > 3000][feature = 'shop_mall'], + [zoom >= 17][feature = 'shop_mall'] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + [feature = 'natural_reef'], + [feature = 'natural_wetland'], + [feature = 'natural_marsh'], + [feature = 'natural_mud'] { + text-fill: @wetland-text; + } + [feature = 'leisure_park'], + [feature = 'leisure_recreation_ground'], + [feature = 'landuse_recreation_ground'], + [feature = 'landuse_village_green'], + [feature = 'leisure_common'], + [feature = 'leisure_garden'], + [feature = 'leisure_water_park'], + [feature = 'leisure_playground'] { + text-fill: darken(@park, 60%); + [feature = 'leisure_playground'][access != ''][access != 'permissive'][access != 'yes'] { + text-fill: darken(@park, 50%); + } + } + [feature = 'landuse_quarry'] { + text-fill: darken(@quarry, 60%); + } + [feature = 'landuse_vineyard'], + [feature = 'landuse_orchard'], + [feature = 'landuse_plant_nursery'] { + text-fill: darken(@orchard, 50%); + } + [feature = 'landuse_cemetery'], + [feature = 'amenity_grave_yard'] { + text-fill: darken(@cemetery, 50%); + text-halo-radius: @standard-halo-radius * 1.5; /* extra halo needed to overpower the cemetery polygon pattern */ + } + [feature = 'landuse_residential'] { + text-fill: darken(@residential, 50%); + } + [feature = 'landuse_meadow'], + [feature = 'natural_grassland'], + [feature = 'landuse_grass'] { + text-fill: darken(@grass, 50%); + } + [feature = 'landuse_allotments'] { + text-fill: darken(@allotments, 50%); + } + [feature = 'landuse_farmyard'] { + text-fill: darken(@farmyard, 50%); + } + [feature = 'landuse_farm'], + [feature = 'landuse_farmland'], + [feature = 'landuse_greenhouse_horticulture'] { + text-fill: darken(@farmland, 50%); + } + [feature = 'shop_mall'], + [feature = 'landuse_retail'] { + text-fill: darken(@retail, 50%); + } + [feature = 'landuse_industrial'], + [feature = 'landuse_railway'] { + text-fill: darken(@industrial, 60%); + } + [feature = 'landuse_commercial'] { + text-fill: darken(@commercial, 60%); + } + [feature = 'landuse_brownfield'], + [feature = 'landuse_landfill'], + [feature = 'landuse_construction'] { + text-fill: darken(@construction, 50%); + } + [feature = 'tourism_caravan_site'] { + text-fill: darken(@campsite, 50%); + text-dy: 15; + } + [feature = 'tourism_theme_park'], + [feature = 'tourism_zoo'] { + text-fill: @tourism; + text-face-name: @bold-fonts; /*rendered bold to improve visibility since theme parks tend to have crowded backgrounds*/ + } + [feature = 'tourism_attraction'] { + text-fill: #660033; + text-face-name: @standard-font; + } + [feature = 'amenity_kindergarten'], + [feature = 'amenity_school'], + [feature = 'amenity_college'], + [feature = 'amenity_university'] { + text-fill: darken(@societal_amenities, 70%); + } + [feature = 'natural_heath'] { + text-fill: darken(@heath, 40%); + } + [feature = 'natural_scrub'] { + text-fill: darken(@scrub, 60%); + } + [feature = 'natural_beach'], + [feature = 'natural_shoal'] { + text-fill: darken(@beach, 60%); + } + [feature = 'leisure_fitness_centre'], + [feature = 'leisure_sports_centre'], + [feature = 'leisure_stadium'] { + text-fill: darken(@stadium, 70%); + } + [feature = 'leisure_dog_park'] { + text-fill: darken(@park, 60%); + text-halo-radius: @standard-halo-radius * 1.5; /* Extra halo needed to stand out from paw pattern. */ + text-halo-fill: @standard-halo-fill; + } + [feature = 'leisure_track'] { + text-fill: darken(@track, 40%); + } + [feature = 'leisure_pitch'] { + text-fill: darken(@pitch, 40%); + } + } + } + + [feature = 'natural_scree'], + [feature = 'natural_shingle'], + [feature = 'natural_bare_rock'], + [feature = 'natural_sand'] { + [zoom >= 9][way_pixels > 3000][is_building = 'no'], + [zoom >= 17][is_building = 'no'] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + [feature = 'natural_scree'], + [feature = 'natural_shingle'], + [feature = 'natural_bare_rock'] { + text-fill: darken(@bare_ground, 50%); + } + [feature = 'natural_sand'] { + text-fill: darken(@sand, 50%); + } + } + } + + [feature = 'aeroway_apron'][is_building = 'no'] { + [zoom >= 10][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: darken(@apron, 60%); + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'highway_services'][is_building = 'no'], + [feature = 'highway_rest_area'][is_building = 'no'] { + [zoom >= 10][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: darken(@rest_area, 40%); + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'natural_bay'][zoom >= 14] { + text-name: "[name]"; + text-size: 10; + text-fill: @water-text; + text-face-name: @standard-font; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-wrap-width: @standard-wrap-width; + text-placement: interior; + } + + [feature = 'leisure_marina'][zoom >= 15] { + [zoom >= 10][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: @marina-text; + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'natural_glacier'][is_building = 'no'] { + [zoom >= 8][way_pixels > 10000], + [zoom >= 10][way_pixels > 750], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: mix(darken(@glacier, 40%), darken(@glacier-line, 30%), 50%); + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'natural_tree'][zoom >= 17] { + text-name: "[name]"; + text-size: @standard-text-size; + text-fill: green; + text-dy: 7; + [zoom >= 18] { text-dy: 8; } + [zoom >= 19] { text-dy: 11; } + [zoom >= 20] { text-dy: 18; } + text-face-name: @standard-font; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + text-wrap-width: @standard-wrap-width; + } + + [feature = 'power_plant'][is_building = 'no'][zoom >= 10], + [feature = 'power_generator'][is_building = 'no'][zoom >= 10], + [feature = 'power_station'][is_building = 'no'][zoom >= 10], + [feature = 'power_sub_station'][is_building = 'no'][zoom >= 13], + [feature = 'power_substation'][is_building = 'no'][zoom >= 13] { + [way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: darken(@power, 40%); + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } + + [feature = 'leisure_swimming_pool'][is_building = 'no'] { + [zoom >= 14][way_pixels > 3000], + [zoom >= 17] { + text-name: "[name]"; + text-size: @landcover-font-size; + text-wrap-width: @landcover-wrap-width-size; + [way_pixels > 12000] { + text-size: @landcover-font-size-big; + text-wrap-width: @landcover-wrap-width-size-big; + } + [way_pixels > 48000] { + text-size: @landcover-font-size-bigger; + text-wrap-width: @landcover-wrap-width-size-bigger; + } + text-fill: @marina-text; + text-face-name: @landcover-face-name; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-placement: interior; + } + } +} diff --git a/placenames.mss b/placenames.mss index 4b84e4bda4..7520b71989 100644 --- a/placenames.mss +++ b/placenames.mss @@ -397,3 +397,22 @@ } } +.text-low-zoom[zoom < 10], +.text[zoom >= 10] { + [feature = 'place_island'][zoom >= 7][way_pixels > 3000][way_pixels < 800000], + [feature = 'place_island'][zoom >= 16][way_pixels < 800000], + [feature = 'place_islet'][zoom >= 14][way_pixels > 3000][way_pixels < 800000], + [feature = 'place_islet'][zoom >= 17][way_pixels < 800000] { + text-name: "[name]"; + text-fill: #000; + text-size: @standard-text-size; + [way_pixels > 12000] { text-size: 12; } + [way_pixels > 48000] { text-size: 15; } + text-face-name: @oblique-fonts; + text-halo-radius: @standard-halo-radius; + text-halo-fill: @standard-halo-fill; + text-wrap-width: @standard-wrap-width; + text-placement: interior; + } +} + diff --git a/project.mml b/project.mml index f986ca17f8..60cd7f8d18 100644 --- a/project.mml +++ b/project.mml @@ -1646,6 +1646,8 @@ Layer: 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop ELSE 'other' END AS shop, + name, + operator, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels FROM planet_osm_polygon -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering @@ -1681,74 +1683,99 @@ Layer: table: |- (SELECT way, - COALESCE( - 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'wilderness_hut', 'guest_house', 'hostel', - 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END, - 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', - 'car_rental', 'car_wash', 'cinema', 'clinic', 'community_centre', 'fire_station', 'fountain', - 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', - 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', - 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', - 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', - 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, - 'shop' || CASE WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE '' END, - 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', - 'dog_park') THEN leisure ELSE NULL END, - 'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'obelisk') THEN man_made ELSE NULL END, - 'natural_' || CASE WHEN "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') THEN "natural" ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, - 'highway_'|| CASE WHEN highway IN ('bus_stop', 'elevator', 'traffic_signals', 'ford') THEN highway ELSE NULL END, - 'power_' || CASE WHEN power IN ('generator') THEN power ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('viewpoint') THEN tourism ELSE NULL END, - 'man_made_' || CASE WHEN man_made IN ('cross') THEN man_made ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END - ) AS feature, + way_pixels, + feature, + shop, access, + CONCAT( + name, + CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\n' ELSE NULL END, + CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\2212'), U&'\00A0', 'm') ELSE NULL END + ) AS name, + operator, CASE - WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN - CASE - WHEN ele ~ '^-?\d{1,4}(\.\d+)?$' THEN ele::NUMERIC - ELSE NULL - END + WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN elevation ELSE NULL END AS score, religion, denomination, "generator:source", - power_source, - CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', - 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', - 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', - 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', - 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', - 'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', - 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', - 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop - ELSE 'other' END AS shop, - NULL AS way_pixels - FROM planet_osm_point - -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering - WHERE aeroway IN ('helipad', 'aerodrome') - OR tourism IN ('artwork', 'alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'wilderness_hut', 'guest_house', 'hostel', - 'hotel', 'motel', 'information', 'museum', 'viewpoint', 'picnic_site') - OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', - 'car_rental', 'car_wash', 'cinema', 'clinic', 'community_centre', - 'fire_station', 'fountain', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', - 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', - 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', - 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', - 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', - 'veterinary', 'social_facility', 'charging_station', 'arts_centre') - OR shop IS NOT NULL -- skip checking a huge list and use a null check - OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', - 'dog_park') - OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk') - OR "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') - OR historic IN ('memorial', 'monument', 'archaeological_site', 'wayside_cross') - OR highway IN ('bus_stop', 'elevator', 'traffic_signals', 'ford') - OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind')) + power_source + FROM + (SELECT + way, + COALESCE( + 'aeroway_' || CASE WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'wilderness_hut', 'guest_house', 'hostel', + 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN tourism ELSE NULL END, + 'amenity_' || CASE WHEN amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', + 'car_rental', 'car_wash', 'cinema', 'clinic', 'community_centre', 'fire_station', 'fountain', + 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', 'townhall', 'parking', + 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', 'dentist', 'place_of_worship', + 'police', 'post_box', 'post_office', 'pub', 'biergarten', 'recycling', 'restaurant', 'food_court', + 'fast_food', 'telephone', 'emergency_phone', 'taxi', 'theatre', 'toilets', 'drinking_water', + 'prison', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', + 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, + 'shop' || CASE WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE '' END, + 'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', + 'dog_park') THEN leisure ELSE NULL END, + 'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'obelisk') THEN man_made ELSE NULL END, + 'natural_' || CASE WHEN "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') THEN "natural" ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, + 'highway_'|| CASE WHEN highway IN ('bus_stop', 'elevator', 'traffic_signals', 'ford') THEN highway ELSE NULL END, + 'power_' || CASE WHEN power IN ('generator') THEN power ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('viewpoint') THEN tourism ELSE NULL END, + 'man_made_' || CASE WHEN man_made IN ('cross') THEN man_made ELSE NULL END, + 'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END + ) AS feature, + CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', + 'confectionery', 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', + 'garden_centre', 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', + 'photo', 'photo_studio', 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', + 'mobile_phone', 'motorcycle', 'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', + 'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', + 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', + 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop ELSE 'other' END + AS shop, + access, + CASE + WHEN "natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter' THEN + CASE + WHEN ele ~ '^-?\d{1,4}(\.\d+)?$' THEN ele::NUMERIC + ELSE NULL + END + ELSE NULL + END AS elevation, + religion, + denomination, + "generator:source", + power_source, + "natural", + name, + operator, + NULL AS way_pixels + FROM planet_osm_point + -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering + WHERE aeroway IN ('helipad', 'aerodrome') + OR tourism IN ('artwork', 'alpine_hut', 'camp_site', 'caravan_site', 'chalet', 'wilderness_hut', 'guest_house', 'hostel', + 'hotel', 'motel', 'information', 'museum', 'viewpoint', 'picnic_site') + OR amenity IN ('shelter', 'atm', 'bank', 'bar', 'bicycle_rental', 'bus_station', 'cafe', + 'car_rental', 'car_wash', 'cinema', 'clinic', 'community_centre', + 'fire_station', 'fountain', 'fuel', 'hospital', 'ice_cream', 'embassy', 'library', 'courthouse', + 'townhall', 'parking', 'bicycle_parking', 'motorcycle_parking', 'pharmacy', 'doctors', + 'dentist', 'place_of_worship', 'police', 'post_box', 'post_office', 'pub', 'biergarten', + 'recycling', 'restaurant', 'food_court', 'fast_food', 'telephone', 'emergency_phone', + 'taxi', 'theatre', 'toilets', 'drinking_water', 'prison', 'hunting_stand', 'nightclub', + 'veterinary', 'social_facility', 'charging_station', 'arts_centre') + OR shop IS NOT NULL -- skip checking a huge list and use a null check + OR leisure IN ('water_park', 'playground', 'miniature_golf', 'golf_course', 'picnic_table', 'slipway', + 'dog_park') + OR man_made IN ('mast', 'water_tower', 'lighthouse', 'windmill', 'cross', 'obelisk') + OR "natural" IN ('peak', 'volcano', 'saddle', 'spring', 'cave_entrance') + OR historic IN ('memorial', 'monument', 'archaeological_site', 'wayside_cross') + OR highway IN ('bus_stop', 'elevator', 'traffic_signals', 'ford') + OR (power = 'generator' AND ("generator:source" = 'wind' OR power_source = 'wind')) + ) AS p ORDER BY score DESC NULLS LAST ) AS amenity_points properties: @@ -2057,73 +2084,50 @@ Layer: <<: *extents Datasource: <<: *osm2pgsql - # Include values that are rendered as icon without label to prevent mismatch between icons and labels, - # see https://github.com/gravitystorm/openstreetmap-carto/pull/1349#issuecomment-77805678 table: |- (SELECT way, way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels, COALESCE( - 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'wilderness_hut', 'guest_house', 'camp_site', 'caravan_site', - 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END, - 'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', - 'theatre', 'courthouse', 'townhall', 'cinema', 'clinic', 'community_centre', 'parking', - 'bicycle_parking', 'motorcycle_parking', 'police', 'fire_station', 'fountain', 'place_of_worship', - 'grave_yard', 'shelter', 'bank', 'embassy', 'fuel', 'bus_station', 'prison', 'university', - 'school', 'college', 'kindergarten', 'hospital', 'ice_cream', 'pharmacy', 'doctors', 'dentist', - 'atm', 'bicycle_rental', 'car_rental', 'car_wash', 'post_box', 'post_office', - 'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', 'drinking_water', 'hunting_stand', - 'nightclub', 'veterinary', 'social_facility', 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, - 'shop_' || CASE WHEN shop IN ('supermarket', 'bag', 'bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', - 'fashion', 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', - 'hairdresser', 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', - 'photography', 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', - 'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', - 'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', - 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', - 'coffee') THEN shop - WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END, - 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'fitness_centre', 'sports_centre', 'stadium', 'track', - 'pitch', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', - 'picnic_table', 'dog_park') THEN leisure ELSE NULL END, + 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron') THEN aeroway ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('artwork', 'camp_site', 'caravan_site', 'theme_park', 'zoo', 'picnic_site') THEN tourism ELSE NULL END, + 'amenity_' || CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'grave_yard', 'university', + 'school', 'college', 'kindergarten') THEN amenity ELSE NULL END, + 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'fitness_centre', 'sports_centre', 'stadium', 'track', + 'pitch', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', + 'marina', 'dog_park') THEN leisure ELSE NULL END, 'power_' || CASE WHEN power IN ('plant', 'station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, 'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military', 'plant_nursery') THEN landuse ELSE NULL END, - 'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne', 'obelisk') THEN man_made ELSE NULL END, + 'man_made_' || CASE WHEN man_made IN ('pier', 'breakwater', 'groyne') THEN man_made ELSE NULL END, 'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'shoal', 'reef', 'glacier') THEN "natural" ELSE NULL END, 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, - 'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'elevator', 'ford') THEN highway ELSE NULL END, + 'highway_' || CASE WHEN highway IN ('services', 'rest_area') THEN highway ELSE NULL END, 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, 'waterway_' || CASE WHEN waterway IN ('dam') THEN waterway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('viewpoint', 'attraction') THEN tourism ELSE NULL END + 'tourism_' || CASE WHEN tourism IN ('attraction') THEN tourism ELSE NULL END ) AS feature, access, name, - operator, ref, way_area, CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building FROM planet_osm_polygon -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering - WHERE (aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') - OR tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'wilderness_hut', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', - 'museum', 'viewpoint', 'attraction', 'zoo', 'information', 'picnic_site') + WHERE (aeroway IN ('gate', 'apron') + OR tourism IN ('artwork', 'camp_site', 'caravan_site', 'theme_park', 'attraction', 'zoo', 'picnic_site') OR amenity IS NOT NULL -- skip checking a huge list and use a null check - OR shop IS NOT NULL OR leisure IS NOT NULL OR landuse IS NOT NULL - OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'pier', 'breakwater', 'groyne', 'obelisk') + OR man_made IN ('pier', 'breakwater', 'groyne') OR "natural" IS NOT NULL OR place IN ('island', 'islet') OR military IN ('danger_area') - OR historic IN ('memorial', 'monument', 'archaeological_site') - OR highway IN ('services', 'rest_area', 'bus_stop', 'elevator', 'ford') + OR highway IN ('services', 'rest_area') OR power IN ('plant', 'station', 'generator', 'sub_station', 'substation') OR boundary IN ('national_park') OR waterway = 'dam') @@ -2166,114 +2170,56 @@ Layer: <<: *extents Datasource: <<: *osm2pgsql - # Include values that are rendered as icon without label to prevent mismatch between icons and labels, - # see https://github.com/gravitystorm/openstreetmap-carto/pull/1349#issuecomment-77805678 table: |- (SELECT way, - way_pixels, - feature, + NULL AS way_pixels, + COALESCE( + 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron') THEN aeroway ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('camp_site', 'caravan_site', 'theme_park', 'zoo', 'picnic_site') THEN tourism ELSE NULL END, + 'amenity_' || CASE WHEN amenity IN ('parking', 'bicycle_parking', 'motorcycle_parking', 'grave_yard', 'university', 'school', + 'college', 'kindergarten') THEN amenity ELSE NULL END, + 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'fitness_centre', 'sports_centre', 'stadium', 'track', + 'pitch','playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', + 'dog_park') THEN leisure ELSE NULL END, + 'power_' || CASE WHEN power IN ('plant', 'station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, + 'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', + 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', + 'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', + 'construction', 'military', 'plant_nursery') THEN landuse ELSE NULL END, + 'natural_' || CASE WHEN "natural" IN ('wood', 'water', 'mud', 'wetland', 'marsh', 'bay', 'scree', 'shingle', 'bare_rock', 'sand', 'heath', + 'grassland', 'scrub', 'beach', 'glacier', 'tree') THEN "natural" ELSE NULL END, + 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, + 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, + 'highway_' || CASE WHEN highway IN ('services', 'rest_area') THEN highway ELSE NULL END, + 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, + 'waterway_' || CASE WHEN waterway IN ('dam', 'weir') THEN waterway ELSE NULL END, + 'tourism_' || CASE WHEN tourism IN ('attraction') THEN tourism ELSE NULL END + ) AS feature, access, - CONCAT( - name, - CASE WHEN name IS NOT NULL AND elevation IS NOT NULL THEN E'\n' ELSE NULL END, - CASE WHEN elevation IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\2212'), U&'\00A0', 'm') ELSE NULL END - ) AS name, - CASE - WHEN "natural" IN ('peak', 'volcano', 'saddle') THEN elevation - ELSE NULL - END AS score, - operator, + name, ref, - way_area, - is_building - FROM - (SELECT - way, - NULL AS way_pixels, - COALESCE( - 'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') THEN aeroway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'wilderness_hut', 'guest_house', 'camp_site', 'caravan_site', - 'theme_park', 'museum', 'zoo', 'information', 'picnic_site') THEN tourism ELSE NULL END, - 'amenity_' || CASE WHEN amenity IN ('pub', 'restaurant', 'food_court', 'cafe', 'fast_food', 'biergarten', 'bar', 'library', 'theatre', - 'courthouse', 'townhall', 'cinema', 'clinic', 'community_centre', 'parking', 'bicycle_parking', - 'motorcycle_parking', 'police', 'fire_station', 'fountain', 'place_of_worship', 'grave_yard', 'shelter', 'bank', - 'embassy', 'fuel', 'bus_station', 'prison', 'university', 'school', 'college', 'kindergarten', 'hospital', - 'ice_cream', 'pharmacy', 'doctors', 'dentist', 'atm', 'bicycle_rental', 'car_rental', - 'car_wash', 'post_box', 'post_office', 'recycling', 'telephone', 'emergency_phone', 'toilets', 'taxi', - 'drinking_water', 'hunting_stand', 'nightclub', 'veterinary', 'social_facility', - 'charging_station', 'arts_centre') THEN amenity ELSE NULL END, - 'shop_' || CASE WHEN shop IN ('supermarket', 'bag','bakery', 'beauty', 'books', 'butcher', 'clothes', 'computer', 'confectionery', 'fashion', - 'convenience', 'department_store', 'doityourself', 'hardware', 'fishmonger', 'florist', 'garden_centre', 'hairdresser', - 'hifi', 'ice_cream', 'car', 'car_repair', 'bicycle', 'mall', 'pet', 'photo', 'photo_studio', 'photography', - 'seafood', 'shoes', 'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 'musical_instrument', - 'newsagent', 'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'travel_agency', 'car_parts', - 'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', - 'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea', 'coffee') THEN shop - WHEN shop IN ('no', 'vacant', 'closed', 'disused', 'empty') OR shop IS NULL THEN NULL ELSE 'other' END, - 'leisure_' || CASE WHEN leisure IN ('swimming_pool', 'water_park', 'miniature_golf', 'golf_course', 'fitness_centre', 'sports_centre', 'stadium', 'track', - 'pitch','playground', 'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', - 'slipway', 'picnic_table', 'dog_park') THEN leisure ELSE NULL END, - 'power_' || CASE WHEN power IN ('plant', 'station', 'generator', 'sub_station', 'substation') THEN power ELSE NULL END, - 'landuse_' || CASE WHEN landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', - 'residential', 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', - 'greenhouse_horticulture', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', - 'construction', 'military', 'plant_nursery') THEN landuse ELSE NULL END, - 'man_made_' || CASE WHEN man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'obelisk') THEN man_made ELSE NULL END, - 'natural_' || CASE WHEN "natural" IN ('wood', 'peak', 'volcano', 'saddle', 'cave_entrance', 'water', 'mud', 'wetland', 'marsh', 'bay', 'spring', - 'scree', 'shingle', 'bare_rock', 'sand', 'heath', 'grassland', 'scrub', 'beach', 'glacier', 'tree') - THEN "natural" ELSE NULL END, - 'place_' || CASE WHEN place IN ('island', 'islet') THEN place ELSE NULL END, - 'military_' || CASE WHEN military IN ('danger_area') THEN military ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('memorial', 'monument', 'archaeological_site') THEN historic ELSE NULL END, - 'highway_' || CASE WHEN highway IN ('services', 'rest_area', 'bus_stop', 'elevator', 'ford') THEN highway ELSE NULL END, - 'boundary_' || CASE WHEN boundary IN ('national_park') THEN boundary ELSE NULL END, - 'waterway_' || CASE WHEN waterway IN ('dam', 'weir') THEN waterway ELSE NULL END, - 'tourism_' || CASE WHEN tourism IN ('viewpoint', 'attraction') THEN tourism ELSE NULL END, - 'man_made_' || CASE WHEN man_made IN ('cross') THEN man_made ELSE NULL END, - 'historic_' || CASE WHEN historic IN ('wayside_cross') THEN historic ELSE NULL END - ) AS feature, - access, - name, - CASE - WHEN "natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter' THEN - CASE - WHEN ele ~ '^-?\d{1,4}(\.\d+)?$' THEN ele::NUMERIC - ELSE NULL - END - ELSE NULL - END AS elevation, - "natural", - operator, - ref, - NULL AS way_area, - CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building - FROM planet_osm_point - -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering - WHERE (aeroway IN ('gate', 'apron', 'helipad', 'aerodrome') - OR tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 'wilderness_hut', 'guest_house', 'camp_site', 'caravan_site', 'theme_park', - 'museum', 'viewpoint', 'attraction', 'zoo', 'information', 'picnic_site') - OR amenity IS NOT NULL -- skip checking a huge list and use a null check - OR shop IS NOT NULL - OR leisure IS NOT NULL - OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', - 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', - 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military', 'plant_nursery') - OR man_made IN ('lighthouse', 'windmill', 'mast', 'water_tower', 'cross', 'obelisk') - OR "natural" IS NOT NULL - OR place IN ('island', 'islet') - OR military IN ('danger_area') - OR historic IN ('memorial', 'monument', 'archaeological_site', 'wayside_cross') - OR highway IN ('bus_stop', 'services', 'rest_area', 'elevator', 'ford') - OR power IN ('plant', 'station', 'generator', 'sub_station', 'substation') - OR boundary IN ('national_park') - OR waterway IN ('dam', 'weir')) - AND (name IS NOT NULL - OR (ele IS NOT NULL AND ("natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter')) - OR (ref IS NOT NULL AND aeroway IN ('gate')) - ) - ) AS p - ORDER BY score DESC NULLS LAST + NULL AS way_area, + CASE WHEN building = 'no' OR building IS NULL THEN 'no' ELSE 'yes' END AS is_building + FROM planet_osm_point + -- The upcoming where clause is needed for performance only, as the CASE statements would end up doing the equivalent filtering + WHERE (aeroway IN ('gate', 'apron') + OR tourism IN ('artwork', 'camp_site', 'caravan_site', 'theme_park', 'attraction', 'zoo', 'picnic_site') + OR amenity IS NOT NULL -- skip checking a huge list and use a null check + OR leisure IS NOT NULL + OR landuse IN ('reservoir', 'basin', 'recreation_ground', 'village_green', 'quarry', 'vineyard', 'orchard', 'cemetery', 'residential', + 'garages', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farmland', 'greenhouse_horticulture', + 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'construction', 'military', 'plant_nursery') + OR place IN ('island', 'islet') + OR military IN ('danger_area') + OR highway IN ('services', 'rest_area') + OR power IN ('plant', 'station', 'generator', 'sub_station', 'substation') + OR boundary IN ('national_park') + OR waterway IN ('dam', 'weir')) + AND (name IS NOT NULL + OR (ele IS NOT NULL AND ("natural" IN ('peak', 'volcano', 'saddle') OR tourism = 'alpine_hut' OR amenity = 'shelter')) + OR (ref IS NOT NULL AND aeroway IN ('gate')) + ) ) AS text properties: minzoom: 10 diff --git a/symbols/aerodrome.12.svg b/symbols/aerodrome.12.svg index 3eb6309181..8ccca1cae1 100644 --- a/symbols/aerodrome.12.svg +++ b/symbols/aerodrome.12.svg @@ -1,5 +1,5 @@ - + diff --git a/symbols/archaeological_site.svg b/symbols/archaeological_site.svg index 19fc272833..3a6d2858c1 100644 --- a/symbols/archaeological_site.svg +++ b/symbols/archaeological_site.svg @@ -10,5 +10,5 @@