From e5acdb08d6a5d251ada74374a0bbfdda115b4c20 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 17 Apr 2014 14:15:25 +0100 Subject: Imported Upstream version 2.13.0 --- .gitignore | 4 + CARTOGRAPHY.md | 37 + LICENSE.txt | 15 + README.md | 153 ++ TODO.md | 28 + addressing.mss | 49 + admin.mss | 117 ++ aerialways.mss | 20 + amenity-points.mss | 1148 +++++++++++++ amenity-symbols.mss | 112 ++ buildings.mss | 52 + citywalls.mss | 24 + ferry-routes.mss | 11 + get-shapefiles.sh | 65 + landcover.mss | 436 +++++ openstreetmap-carto.style | 226 +++ placenames.mss | 142 ++ power.mss | 34 + project.mml | 1757 +++++++++++++++++++ roads.mss | 2449 +++++++++++++++++++++++++++ shapefiles.mss | 37 + stations.mss | 54 + style.mss | 12 + symbols/aerodrome.p.16.png | Bin 0 -> 377 bytes symbols/aerodrome.png | Bin 0 -> 888 bytes symbols/aiga_parking1.png | Bin 0 -> 1542 bytes symbols/allotments.png | Bin 0 -> 911 bytes symbols/alpinehut.p.16.png | Bin 0 -> 565 bytes symbols/amenity_court.p.20.png | Bin 0 -> 802 bytes symbols/amenity_prison.p.20.png | Bin 0 -> 417 bytes symbols/arrow.png | Bin 0 -> 320 bytes symbols/arrow_back.png | Bin 0 -> 353 bytes symbols/atm.png | Bin 0 -> 222 bytes symbols/atm2.p.16.png | Bin 0 -> 437 bytes symbols/bandb.p.20.png | Bin 0 -> 398 bytes symbols/bank2.p.16.png | Bin 0 -> 410 bytes symbols/bar.p.20.png | Bin 0 -> 459 bytes symbols/beach.png | Bin 0 -> 162 bytes symbols/biergarten.p.16.png | Bin 0 -> 501 bytes symbols/bollard.png | Bin 0 -> 104 bytes symbols/buddhist.png | Bin 0 -> 406 bytes symbols/bus_station.n.16.png | Bin 0 -> 552 bytes symbols/bus_stop.p.12.png | Bin 0 -> 353 bytes symbols/bus_stop.png | Bin 0 -> 904 bytes symbols/bus_stop_small.png | Bin 0 -> 95 bytes symbols/cable_car.png | Bin 0 -> 229 bytes symbols/cafe.p.16.png | Bin 0 -> 361 bytes symbols/camping.n.16.png | Bin 0 -> 517 bytes symbols/car_share.p.16.png | Bin 0 -> 489 bytes symbols/caravan_park.p.24.png | Bin 0 -> 486 bytes symbols/cemetery_jewish.18.png | Bin 0 -> 400 bytes symbols/chair_lift.png | Bin 0 -> 230 bytes symbols/chalet.p.16.png | Bin 0 -> 440 bytes symbols/christian3.p.14.png | Bin 0 -> 252 bytes symbols/cinema.p.24.png | Bin 0 -> 791 bytes symbols/cliff.png | Bin 0 -> 26214 bytes symbols/cliff2.png | Bin 0 -> 26214 bytes symbols/communications.p.20.png | Bin 0 -> 445 bytes symbols/danger.png | Bin 0 -> 146 bytes symbols/department_store.p.16.png | Bin 0 -> 993 bytes symbols/embassy.png | Bin 0 -> 2893 bytes symbols/fast_food.png | Bin 0 -> 3091 bytes symbols/firestation.p.16.png | Bin 0 -> 479 bytes symbols/florist.p.16.png | Bin 0 -> 422 bytes symbols/food_bar.p.16.png | Bin 0 -> 376 bytes symbols/food_drinkingtap.p.20.png | Bin 0 -> 386 bytes symbols/forest.png | Bin 0 -> 190 bytes symbols/fuel.p.16.png | Bin 0 -> 306 bytes symbols/gate.png | Bin 0 -> 106 bytes symbols/gate2.png | Bin 0 -> 111 bytes symbols/glacier.png | Bin 0 -> 122 bytes symbols/glacier2.png | Bin 0 -> 199 bytes symbols/grave_yard.png | Bin 0 -> 291 bytes symbols/grave_yard_generic.png | Bin 0 -> 1013 bytes symbols/guest_house.p.16.png | Bin 0 -> 503 bytes symbols/halt.png | Bin 0 -> 94 bytes symbols/helipad.p.16.png | Bin 0 -> 519 bytes symbols/hindu.png | Bin 0 -> 464 bytes symbols/hospital.p.16.png | Bin 0 -> 557 bytes symbols/hospital.png | Bin 0 -> 491 bytes symbols/hostel.p.20.png | Bin 0 -> 539 bytes symbols/hotel2.p.20.png | Bin 0 -> 368 bytes symbols/information.p.16.png | Bin 0 -> 294 bytes symbols/islamic3.p.16.png | Bin 0 -> 387 bytes symbols/jewish3.p.16.png | Bin 0 -> 397 bytes symbols/landfill.png | Bin 0 -> 122 bytes symbols/level_crossing.png | Bin 0 -> 124 bytes symbols/level_crossing2.png | Bin 0 -> 154 bytes symbols/library.p.20.png | Bin 0 -> 715 bytes symbols/liftgate.png | Bin 0 -> 166 bytes symbols/lighthouse.p.20.png | Bin 0 -> 487 bytes symbols/lock_gate.png | Bin 0 -> 172 bytes symbols/london-tube-24.png | Bin 0 -> 621 bytes symbols/marsh.png | Bin 0 -> 621 bytes symbols/memorial.png | Bin 0 -> 3055 bytes symbols/military_red_hatch.png | Bin 0 -> 132 bytes symbols/mini_round.png | Bin 0 -> 26852 bytes symbols/mosque.png | Bin 0 -> 1023 bytes symbols/mot_shield1.png | Bin 0 -> 412 bytes symbols/mot_shield2.png | Bin 0 -> 439 bytes symbols/mot_shield3.png | Bin 0 -> 441 bytes symbols/mot_shield4.png | Bin 0 -> 445 bytes symbols/mot_shield5.png | Bin 0 -> 446 bytes symbols/mot_shield6.png | Bin 0 -> 447 bytes symbols/mot_shield7.png | Bin 0 -> 447 bytes symbols/mot_shield8.png | Bin 0 -> 450 bytes symbols/motel.p.20.png | Bin 0 -> 657 bytes symbols/motorway_shield1.png | Bin 0 -> 176 bytes symbols/motorway_shield2.png | Bin 0 -> 256 bytes symbols/motorway_shield3.png | Bin 0 -> 251 bytes symbols/motorway_shield4.png | Bin 0 -> 239 bytes symbols/motorway_shield5.png | Bin 0 -> 205 bytes symbols/motorway_shield6.png | Bin 0 -> 207 bytes symbols/mud.png | Bin 0 -> 104 bytes symbols/museum.p.16.png | Bin 0 -> 311 bytes symbols/nature_reserve.png | Bin 0 -> 141 bytes symbols/nature_reserve2.png | Bin 0 -> 170 bytes symbols/nature_reserve2T.png | Bin 0 -> 246 bytes symbols/nature_reserve5.png | Bin 0 -> 341 bytes symbols/nature_reserve6.png | Bin 0 -> 365 bytes symbols/nature_reserveT.png | Bin 0 -> 209 bytes symbols/orchard.png | Bin 0 -> 110 bytes symbols/parking.p.16.png | Bin 0 -> 312 bytes symbols/parking.png | Bin 0 -> 409 bytes symbols/parking_private.p.16.png | Bin 0 -> 377 bytes symbols/peak.png | Bin 0 -> 119 bytes symbols/pharmacy.p.16.png | Bin 0 -> 341 bytes symbols/picnic.p.16.png | Bin 0 -> 409 bytes symbols/pint.png | Bin 0 -> 486 bytes symbols/place_of_worship.png | Bin 0 -> 209 bytes symbols/place_of_worship3.p.16.png | Bin 0 -> 190 bytes symbols/place_of_worship3.png | Bin 0 -> 103 bytes symbols/playground.p.20.png | Bin 0 -> 575 bytes symbols/poi_cave.p.16.png | Bin 0 -> 270 bytes symbols/police.p.16.png | Bin 0 -> 657 bytes symbols/post_box.p.16.png | Bin 0 -> 367 bytes symbols/post_box.png | Bin 0 -> 337 bytes symbols/post_office.p.16.png | Bin 0 -> 494 bytes symbols/post_office.png | Bin 0 -> 413 bytes symbols/postoffice.png | Bin 0 -> 297 bytes symbols/power_line.png | Bin 0 -> 131 bytes symbols/power_pole.png | Bin 0 -> 94 bytes symbols/power_tower.png | Bin 0 -> 115 bytes symbols/power_tower_3x3.png | Bin 0 -> 933 bytes symbols/power_tower_5x5.png | Bin 0 -> 947 bytes symbols/power_wind.png | Bin 0 -> 638 bytes symbols/pri_shield1.png | Bin 0 -> 422 bytes symbols/pri_shield2.png | Bin 0 -> 431 bytes symbols/pri_shield3.png | Bin 0 -> 433 bytes symbols/pri_shield4.png | Bin 0 -> 437 bytes symbols/pri_shield5.png | Bin 0 -> 439 bytes symbols/pri_shield6.png | Bin 0 -> 440 bytes symbols/pri_shield7.png | Bin 0 -> 440 bytes symbols/pri_shield8.png | Bin 0 -> 442 bytes symbols/primary_shield1.png | Bin 0 -> 175 bytes symbols/primary_shield2.png | Bin 0 -> 181 bytes symbols/primary_shield3.png | Bin 0 -> 181 bytes symbols/primary_shield4.png | Bin 0 -> 197 bytes symbols/primary_shield5.png | Bin 0 -> 197 bytes symbols/primary_shield6.png | Bin 0 -> 199 bytes symbols/primary_shield7.png | Bin 0 -> 199 bytes symbols/primary_shield8.png | Bin 0 -> 207 bytes symbols/pub.p.16.png | Bin 0 -> 433 bytes symbols/pub.png | Bin 0 -> 307 bytes symbols/quarry.png | Bin 0 -> 131 bytes symbols/quarry2.png | Bin 0 -> 139 bytes symbols/recycle.png | Bin 0 -> 1118 bytes symbols/recycling.p.16.png | Bin 0 -> 562 bytes symbols/recycling.png | Bin 0 -> 645 bytes symbols/rental_bicycle.p.20.png | Bin 0 -> 802 bytes symbols/restaurant.p.16.png | Bin 0 -> 502 bytes symbols/school.png | Bin 0 -> 3136 bytes symbols/scrub.png | Bin 0 -> 166 bytes symbols/sec_shield1.png | Bin 0 -> 422 bytes symbols/sec_shield2.png | Bin 0 -> 431 bytes symbols/sec_shield3.png | Bin 0 -> 433 bytes symbols/sec_shield4.png | Bin 0 -> 437 bytes symbols/sec_shield5.png | Bin 0 -> 439 bytes symbols/sec_shield6.png | Bin 0 -> 440 bytes symbols/sec_shield7.png | Bin 0 -> 440 bytes symbols/sec_shield8.png | Bin 0 -> 442 bytes symbols/secondary_shield1.png | Bin 0 -> 168 bytes symbols/secondary_shield2.png | Bin 0 -> 174 bytes symbols/secondary_shield3.png | Bin 0 -> 176 bytes symbols/secondary_shield4.png | Bin 0 -> 191 bytes symbols/secondary_shield5.png | Bin 0 -> 194 bytes symbols/secondary_shield6.png | Bin 0 -> 196 bytes symbols/secondary_shield7.png | Bin 0 -> 195 bytes symbols/secondary_shield8.png | Bin 0 -> 202 bytes symbols/shelter2.p.16.png | Bin 0 -> 571 bytes symbols/shinto.png | Bin 0 -> 413 bytes symbols/shop_bakery.p.16.png | Bin 0 -> 441 bytes symbols/shop_butcher.png | Bin 0 -> 780 bytes symbols/shop_clothes.p.16.png | Bin 0 -> 312 bytes symbols/shop_convenience.p.16.png | Bin 0 -> 373 bytes symbols/shop_diy.p.16.png | Bin 0 -> 383 bytes symbols/shop_hairdresser.p.16.png | Bin 0 -> 472 bytes symbols/shop_supermarket.p.16.png | Bin 0 -> 425 bytes symbols/shopping_bicycle.p.16.png | Bin 0 -> 522 bytes symbols/shopping_car.p.16.png | Bin 0 -> 438 bytes symbols/shopping_car_repair.p.16.png | Bin 0 -> 457 bytes symbols/sikh.png | Bin 0 -> 1297 bytes symbols/sikh3.p.16.png | Bin 0 -> 400 bytes symbols/sosphone.png | Bin 0 -> 508 bytes symbols/spring.png | Bin 0 -> 108 bytes symbols/station.png | Bin 0 -> 95 bytes symbols/station_disused.png | Bin 0 -> 95 bytes symbols/station_small.png | Bin 0 -> 95 bytes symbols/synagogue.png | Bin 0 -> 376 bytes symbols/taoist.png | Bin 0 -> 536 bytes symbols/telephone.p.16.png | Bin 0 -> 444 bytes symbols/ter_shield1.png | Bin 0 -> 422 bytes symbols/ter_shield2.png | Bin 0 -> 431 bytes symbols/ter_shield3.png | Bin 0 -> 433 bytes symbols/ter_shield4.png | Bin 0 -> 437 bytes symbols/ter_shield5.png | Bin 0 -> 439 bytes symbols/ter_shield6.png | Bin 0 -> 440 bytes symbols/ter_shield7.png | Bin 0 -> 440 bytes symbols/ter_shield8.png | Bin 0 -> 442 bytes symbols/tertiary_shield1.png | Bin 0 -> 176 bytes symbols/tertiary_shield2.png | Bin 0 -> 182 bytes symbols/tertiary_shield3.png | Bin 0 -> 184 bytes symbols/tertiary_shield4.png | Bin 0 -> 204 bytes symbols/tertiary_shield5.png | Bin 0 -> 204 bytes symbols/tertiary_shield6.png | Bin 0 -> 206 bytes symbols/tertiary_shield7.png | Bin 0 -> 206 bytes symbols/tertiary_shield8.png | Bin 0 -> 214 bytes symbols/theatre.p.20.png | Bin 0 -> 785 bytes symbols/toilets.p.20.png | Bin 0 -> 586 bytes symbols/tourist_archaeological2.glow.24.png | Bin 0 -> 1134 bytes symbols/tourist_memorial.p.20.png | Bin 0 -> 533 bytes symbols/tower.png | Bin 0 -> 327 bytes symbols/tower_water.p.20.png | Bin 0 -> 477 bytes symbols/traffic_light.png | Bin 0 -> 1169 bytes symbols/transport_ford.p.16.png | Bin 0 -> 490 bytes symbols/transport_slipway.p.20.png | Bin 0 -> 604 bytes symbols/tree.png | Bin 0 -> 102 bytes symbols/tree2.png | Bin 0 -> 120 bytes symbols/tru_shield1.png | Bin 0 -> 422 bytes symbols/tru_shield2.png | Bin 0 -> 431 bytes symbols/tru_shield3.png | Bin 0 -> 433 bytes symbols/tru_shield4.png | Bin 0 -> 437 bytes symbols/tru_shield5.png | Bin 0 -> 441 bytes symbols/tru_shield6.png | Bin 0 -> 440 bytes symbols/tru_shield7.png | Bin 0 -> 440 bytes symbols/tru_shield8.png | Bin 0 -> 442 bytes symbols/trunk_shield1.png | Bin 0 -> 175 bytes symbols/trunk_shield2.png | Bin 0 -> 181 bytes symbols/trunk_shield3.png | Bin 0 -> 184 bytes symbols/trunk_shield4.png | Bin 0 -> 202 bytes symbols/trunk_shield5.png | Bin 0 -> 202 bytes symbols/trunk_shield6.png | Bin 0 -> 205 bytes symbols/trunk_shield7.png | Bin 0 -> 204 bytes symbols/trunk_shield8.png | Bin 0 -> 212 bytes symbols/view_point.p.16.png | Bin 0 -> 636 bytes symbols/vineyard.png | Bin 0 -> 149 bytes symbols/volcano.png | Bin 0 -> 264 bytes symbols/walking.n.12.png | Bin 0 -> 372 bytes symbols/windmill.png | Bin 0 -> 186 bytes symbols/zoo.png | Bin 0 -> 129 bytes water-features.mss | 72 + water.mss | 313 ++++ 262 files changed, 7367 insertions(+) create mode 100644 .gitignore create mode 100644 CARTOGRAPHY.md create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 TODO.md create mode 100644 addressing.mss create mode 100644 admin.mss create mode 100644 aerialways.mss create mode 100644 amenity-points.mss create mode 100644 amenity-symbols.mss create mode 100644 buildings.mss create mode 100644 citywalls.mss create mode 100644 ferry-routes.mss create mode 100755 get-shapefiles.sh create mode 100644 landcover.mss create mode 100644 openstreetmap-carto.style create mode 100644 placenames.mss create mode 100644 power.mss create mode 100644 project.mml create mode 100644 roads.mss create mode 100644 shapefiles.mss create mode 100644 stations.mss create mode 100644 style.mss create mode 100644 symbols/aerodrome.p.16.png create mode 100644 symbols/aerodrome.png create mode 100644 symbols/aiga_parking1.png create mode 100644 symbols/allotments.png create mode 100644 symbols/alpinehut.p.16.png create mode 100644 symbols/amenity_court.p.20.png create mode 100644 symbols/amenity_prison.p.20.png create mode 100644 symbols/arrow.png create mode 100644 symbols/arrow_back.png create mode 100644 symbols/atm.png create mode 100644 symbols/atm2.p.16.png create mode 100644 symbols/bandb.p.20.png create mode 100644 symbols/bank2.p.16.png create mode 100644 symbols/bar.p.20.png create mode 100644 symbols/beach.png create mode 100644 symbols/biergarten.p.16.png create mode 100644 symbols/bollard.png create mode 100644 symbols/buddhist.png create mode 100644 symbols/bus_station.n.16.png create mode 100644 symbols/bus_stop.p.12.png create mode 100644 symbols/bus_stop.png create mode 100644 symbols/bus_stop_small.png create mode 100644 symbols/cable_car.png create mode 100644 symbols/cafe.p.16.png create mode 100644 symbols/camping.n.16.png create mode 100644 symbols/car_share.p.16.png create mode 100644 symbols/caravan_park.p.24.png create mode 100644 symbols/cemetery_jewish.18.png create mode 100644 symbols/chair_lift.png create mode 100644 symbols/chalet.p.16.png create mode 100644 symbols/christian3.p.14.png create mode 100644 symbols/cinema.p.24.png create mode 100644 symbols/cliff.png create mode 100644 symbols/cliff2.png create mode 100644 symbols/communications.p.20.png create mode 100644 symbols/danger.png create mode 100644 symbols/department_store.p.16.png create mode 100644 symbols/embassy.png create mode 100644 symbols/fast_food.png create mode 100644 symbols/firestation.p.16.png create mode 100644 symbols/florist.p.16.png create mode 100644 symbols/food_bar.p.16.png create mode 100644 symbols/food_drinkingtap.p.20.png create mode 100644 symbols/forest.png create mode 100644 symbols/fuel.p.16.png create mode 100644 symbols/gate.png create mode 100644 symbols/gate2.png create mode 100644 symbols/glacier.png create mode 100644 symbols/glacier2.png create mode 100644 symbols/grave_yard.png create mode 100644 symbols/grave_yard_generic.png create mode 100644 symbols/guest_house.p.16.png create mode 100644 symbols/halt.png create mode 100644 symbols/helipad.p.16.png create mode 100644 symbols/hindu.png create mode 100644 symbols/hospital.p.16.png create mode 100644 symbols/hospital.png create mode 100644 symbols/hostel.p.20.png create mode 100644 symbols/hotel2.p.20.png create mode 100644 symbols/information.p.16.png create mode 100644 symbols/islamic3.p.16.png create mode 100644 symbols/jewish3.p.16.png create mode 100644 symbols/landfill.png create mode 100644 symbols/level_crossing.png create mode 100644 symbols/level_crossing2.png create mode 100644 symbols/library.p.20.png create mode 100644 symbols/liftgate.png create mode 100644 symbols/lighthouse.p.20.png create mode 100644 symbols/lock_gate.png create mode 100644 symbols/london-tube-24.png create mode 100644 symbols/marsh.png create mode 100644 symbols/memorial.png create mode 100644 symbols/military_red_hatch.png create mode 100644 symbols/mini_round.png create mode 100644 symbols/mosque.png create mode 100644 symbols/mot_shield1.png create mode 100644 symbols/mot_shield2.png create mode 100644 symbols/mot_shield3.png create mode 100644 symbols/mot_shield4.png create mode 100644 symbols/mot_shield5.png create mode 100644 symbols/mot_shield6.png create mode 100644 symbols/mot_shield7.png create mode 100644 symbols/mot_shield8.png create mode 100644 symbols/motel.p.20.png create mode 100644 symbols/motorway_shield1.png create mode 100644 symbols/motorway_shield2.png create mode 100644 symbols/motorway_shield3.png create mode 100644 symbols/motorway_shield4.png create mode 100644 symbols/motorway_shield5.png create mode 100644 symbols/motorway_shield6.png create mode 100644 symbols/mud.png create mode 100644 symbols/museum.p.16.png create mode 100644 symbols/nature_reserve.png create mode 100644 symbols/nature_reserve2.png create mode 100644 symbols/nature_reserve2T.png create mode 100644 symbols/nature_reserve5.png create mode 100644 symbols/nature_reserve6.png create mode 100644 symbols/nature_reserveT.png create mode 100644 symbols/orchard.png create mode 100644 symbols/parking.p.16.png create mode 100644 symbols/parking.png create mode 100644 symbols/parking_private.p.16.png create mode 100644 symbols/peak.png create mode 100644 symbols/pharmacy.p.16.png create mode 100644 symbols/picnic.p.16.png create mode 100644 symbols/pint.png create mode 100644 symbols/place_of_worship.png create mode 100644 symbols/place_of_worship3.p.16.png create mode 100644 symbols/place_of_worship3.png create mode 100644 symbols/playground.p.20.png create mode 100644 symbols/poi_cave.p.16.png create mode 100644 symbols/police.p.16.png create mode 100644 symbols/post_box.p.16.png create mode 100644 symbols/post_box.png create mode 100644 symbols/post_office.p.16.png create mode 100644 symbols/post_office.png create mode 100644 symbols/postoffice.png create mode 100644 symbols/power_line.png create mode 100644 symbols/power_pole.png create mode 100644 symbols/power_tower.png create mode 100644 symbols/power_tower_3x3.png create mode 100644 symbols/power_tower_5x5.png create mode 100644 symbols/power_wind.png create mode 100644 symbols/pri_shield1.png create mode 100644 symbols/pri_shield2.png create mode 100644 symbols/pri_shield3.png create mode 100644 symbols/pri_shield4.png create mode 100644 symbols/pri_shield5.png create mode 100644 symbols/pri_shield6.png create mode 100644 symbols/pri_shield7.png create mode 100644 symbols/pri_shield8.png create mode 100644 symbols/primary_shield1.png create mode 100644 symbols/primary_shield2.png create mode 100644 symbols/primary_shield3.png create mode 100644 symbols/primary_shield4.png create mode 100644 symbols/primary_shield5.png create mode 100644 symbols/primary_shield6.png create mode 100644 symbols/primary_shield7.png create mode 100644 symbols/primary_shield8.png create mode 100644 symbols/pub.p.16.png create mode 100644 symbols/pub.png create mode 100644 symbols/quarry.png create mode 100644 symbols/quarry2.png create mode 100644 symbols/recycle.png create mode 100644 symbols/recycling.p.16.png create mode 100644 symbols/recycling.png create mode 100644 symbols/rental_bicycle.p.20.png create mode 100644 symbols/restaurant.p.16.png create mode 100644 symbols/school.png create mode 100644 symbols/scrub.png create mode 100644 symbols/sec_shield1.png create mode 100644 symbols/sec_shield2.png create mode 100644 symbols/sec_shield3.png create mode 100644 symbols/sec_shield4.png create mode 100644 symbols/sec_shield5.png create mode 100644 symbols/sec_shield6.png create mode 100644 symbols/sec_shield7.png create mode 100644 symbols/sec_shield8.png create mode 100644 symbols/secondary_shield1.png create mode 100644 symbols/secondary_shield2.png create mode 100644 symbols/secondary_shield3.png create mode 100644 symbols/secondary_shield4.png create mode 100644 symbols/secondary_shield5.png create mode 100644 symbols/secondary_shield6.png create mode 100644 symbols/secondary_shield7.png create mode 100644 symbols/secondary_shield8.png create mode 100644 symbols/shelter2.p.16.png create mode 100644 symbols/shinto.png create mode 100644 symbols/shop_bakery.p.16.png create mode 100644 symbols/shop_butcher.png create mode 100644 symbols/shop_clothes.p.16.png create mode 100644 symbols/shop_convenience.p.16.png create mode 100644 symbols/shop_diy.p.16.png create mode 100644 symbols/shop_hairdresser.p.16.png create mode 100644 symbols/shop_supermarket.p.16.png create mode 100644 symbols/shopping_bicycle.p.16.png create mode 100644 symbols/shopping_car.p.16.png create mode 100644 symbols/shopping_car_repair.p.16.png create mode 100644 symbols/sikh.png create mode 100644 symbols/sikh3.p.16.png create mode 100644 symbols/sosphone.png create mode 100644 symbols/spring.png create mode 100644 symbols/station.png create mode 100644 symbols/station_disused.png create mode 100644 symbols/station_small.png create mode 100644 symbols/synagogue.png create mode 100644 symbols/taoist.png create mode 100644 symbols/telephone.p.16.png create mode 100644 symbols/ter_shield1.png create mode 100644 symbols/ter_shield2.png create mode 100644 symbols/ter_shield3.png create mode 100644 symbols/ter_shield4.png create mode 100644 symbols/ter_shield5.png create mode 100644 symbols/ter_shield6.png create mode 100644 symbols/ter_shield7.png create mode 100644 symbols/ter_shield8.png create mode 100644 symbols/tertiary_shield1.png create mode 100644 symbols/tertiary_shield2.png create mode 100644 symbols/tertiary_shield3.png create mode 100644 symbols/tertiary_shield4.png create mode 100644 symbols/tertiary_shield5.png create mode 100644 symbols/tertiary_shield6.png create mode 100644 symbols/tertiary_shield7.png create mode 100644 symbols/tertiary_shield8.png create mode 100644 symbols/theatre.p.20.png create mode 100644 symbols/toilets.p.20.png create mode 100644 symbols/tourist_archaeological2.glow.24.png create mode 100644 symbols/tourist_memorial.p.20.png create mode 100644 symbols/tower.png create mode 100644 symbols/tower_water.p.20.png create mode 100644 symbols/traffic_light.png create mode 100644 symbols/transport_ford.p.16.png create mode 100644 symbols/transport_slipway.p.20.png create mode 100644 symbols/tree.png create mode 100644 symbols/tree2.png create mode 100644 symbols/tru_shield1.png create mode 100644 symbols/tru_shield2.png create mode 100644 symbols/tru_shield3.png create mode 100644 symbols/tru_shield4.png create mode 100644 symbols/tru_shield5.png create mode 100644 symbols/tru_shield6.png create mode 100644 symbols/tru_shield7.png create mode 100644 symbols/tru_shield8.png create mode 100644 symbols/trunk_shield1.png create mode 100644 symbols/trunk_shield2.png create mode 100644 symbols/trunk_shield3.png create mode 100644 symbols/trunk_shield4.png create mode 100644 symbols/trunk_shield5.png create mode 100644 symbols/trunk_shield6.png create mode 100644 symbols/trunk_shield7.png create mode 100644 symbols/trunk_shield8.png create mode 100644 symbols/view_point.p.16.png create mode 100644 symbols/vineyard.png create mode 100644 symbols/volcano.png create mode 100644 symbols/walking.n.12.png create mode 100644 symbols/windmill.png create mode 100644 symbols/zoo.png create mode 100644 water-features.mss create mode 100644 water.mss diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..59f0845 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.thumb.png +layers/ +data/ +*.xml diff --git a/CARTOGRAPHY.md b/CARTOGRAPHY.md new file mode 100644 index 0000000..8b2b9a0 --- /dev/null +++ b/CARTOGRAPHY.md @@ -0,0 +1,37 @@ +# Cartography + +This is a style that serves multiple purposes, so here are some guidelines when considering cartographic changes. + +## Purposes + +There are multiple primary purposes of the map style, which pull in different directions + +* It's the primary feedback mechanism for mappers to validate their edits - so detail is useful +* It's a major part of the impression visitors to osm.org receive - so clear design is useful +* It's an examplar stylesheet for rendering OSM data - so easy customisation is useful + +It must always be borne in mind that a map style cannot show every detail of the OSM data, and in many cases it is more appropriate to show the detail in other, more specialist styles. + +## Colours + +Firstly, this is a map, not merely a colourful 2-dimensional visualisation of the database. Colours should be chosen based on their effectiveness and to make things look nice, not chosen for distinctiveness. + +The colour palette should be moving towards pastel/light/desaturated for background layers, midtones for streets and save highlights/bolds/saturated for points of interest. If colourspace can be left unused, that enables overlays for third parties. + +Colour definitions should, where useful, be put into variables at the top of the file, to enable easier customisation. + +## Data manipulation + +OpenStreetMap data has to be manipulated for rendering, but since this style is intended for use by mappers to check their work, it should minimise any distortions. For example, line-smoothing improves the look of railways and rivers, but introduces confusion for mappers. Post processing of geometries can improve the cartographic results, but breaks the cause-and-effect between editing the data and seeing the results. + +For similar reasons, use of external non-OSM data should be avoided. + +## Legibility + +I mean this not only in terms of font size, but in the ability of users to be able to "read" the map style. For example, a user might not be familiar with our exact road colours, but should be able to understand their relative importance via intensity of colour, width or other attributes. Important features should be more easily spotted and understood than less important information. It should be possible to gain an understanding of the majority of the map without using a legend. + +## The Mapper Feedback Loop + +If you thought that mappers were happy just to press "Save" on their editor, you'd be wrong. A key part of their feedback loop - to reassure them their work has been saved, and also to check that they have mapped 'correctly' - is waiting to see the results of their mapping on the main map layer on www.osm.org + +While this desire is in obvious conflict with the above comments on level of detail, it has a second impact on the map style. We need to, wherever possible, avoid accidentally encouraging mistakes - that is, avoiding the situation where a clearly misspelled or misused tag leads to the originally expected result. So `highway=mtorway` shouldn't show up as if it was `highway=motorway`, and so on. This has been a problem with "catch-all" rules in queries and filters, such as `where leisure is not null` or `[amenity != ""]`. Avoid these situations. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..86cca83 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,15 @@ +OpenStreetMap Carto: A global map style for OpenStreetMap maps. + +Created by Andy Allan and contributors. +Based on original cartography by Steve Chilton and others. + +This software and associated documentation files (the "Software") is +released under the CC0 Public Domain Dedication, version 1.0, as +published by Creative Commons. To the extent possible under law, the +author(s) have dedicated all copyright and related and neighboring +rights to the Software to the public domain worldwide. The Software is +distributed WITHOUT ANY WARRANTY. + +If you did not receive a copy of the CC0 Public Domain Dedication +along with the Software, see + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec1f1cc --- /dev/null +++ b/README.md @@ -0,0 +1,153 @@ +# OpenStreetMap Carto + +An implemention of the standard OpenStreetMap mapnik style, in CartoCSS. + +These stylesheets can be used in your own cartography projects, and are designed to be easily +customised. They work with [TileMill](http://www.mapbox.com/tilemill/) and also with the command-line [CartoCSS](https://github.com/mapbox/carto) processor. + +Since August 2013 these stylesheets are used on the OSMF tileservers (tile.openstreetmap.org), and +are updated from each point release. They supersede the previous [XML-based stylesheets](https://trac.openstreetmap.org/browser/subversion/applications/rendering/mapnik) + +# Setup + +You need OpenStreetMap data loaded into a PostGIS database (see below for [dependencies](https://github.com/gravitystorm/openstreetmap-carto#dependencies)). These stylesheets currently work only with the osm2pgsql defaults (i.e. database name is 'gis', table names are 'planet_osm_point' etc). + +It's probably easiest to grab an PBF of OSM data from [metro.teczno.com](http://metro.teczno.com/) or [geofabrik](http://download.geofabrik.de/). Once you've set up your PostGIS database, import with osm2pgsql: + +``` +osm2pgsql -d gis ~/path/to/data.osm.pbf --style openstreetmap-carto.style +``` + +Additionally you need some shapefiles. + +## Scripted download + +To download the shapefiles you can run the following script from this directory. No further steps should be needed as the data has been processed and placed in the requisite directories. + +``` +sh get-shapefiles.sh +``` + +## Manual download + +You can also download them manually at the following paths: + +* `simplified-land-polygons.shp` [download](http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip) +* `land-polygon.shp` [download](http://data.openstreetmapdata.com/land-polygons-split-3857.zip) +* `builtup_area.shp` [download](http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz) +* `ne_110m_admin_0_boundary_lines_land.shp` [download](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip) +* `ne_10m_populated_places_fixed.shp` [download](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip) (and see below) + +Put these shapefiles at path/to/opentreetmap-carto/data + +### Populated places shapefile + +The Natural Earth 2.0 populated places shapefile contains data that triggers a bug in mapnik. As +a workaround we run the shapefile through ogr2ogr to clean up the data. + +``` +ogr2ogr ne_10m_populated_places_fixed.shp ne_10m_populated_places.shp +``` + +See https://github.com/mapnik/mapnik/issues/1605 for more details. + +## Fonts +The stylesheet depends on a number of openly licensed fonts for support of all the languages found on the map. The package which supplies these fonts on Ubuntu is indicated. + +If a font is missing, it will skip to the next available font which contains those characters. If you are not concerned with a particular language, you do not need its fonts. DejaVu Sans and Unifont are the two required fonts, and included on most systems. + +### Global +* DejaVu Sans, for most languages (``ttf-dejavu``) +* Droid Sans Fallback, as a reasonable fallback (``fonts-droid``) +* Unifont, as a last resort fallback (``ttf-unifont``) + +### Southeast Asia +* Arundina Sans, for Thai (``fonts-sipa-arundina``) +* Padauk, for Burmese (``fonts-sil-padauk``) +* Khmer OS Metal Chrieng Regular, for Khmer (``fonts-khmeros``) + +## Dependencies + +* [TileMill](http://mapbox.com/tilemill) - This is a TileMill project you can copy (or symlink) directly into your Mapbox/project directory + +If you aren't using TileMill, you can compile the CartoCSS stylesheets into Mapnik XML using the command-line `carto` command. + +* [carto](https://github.com/mapbox/carto) >= 0.9.3 (we're using instances with cascading rules) +* [mapnik](https://github.com/mapnik/mapnik/wiki/Mapnik-Installation) >= 2.1.0 + +--- + +* [osm2pgsql](http://wiki.openstreetmap.org/wiki/Osm2pgsql) to import your data into a PostGIS database +* [PostgreSQL](http://www.postgresql.org/) +* [PostGIS](http://postgis.org/) +* [ogr2ogr](http://www.gdal.org/) command line GDAL utility for processing vector data. here we use it to work around a encoding bug in the Nautral Earth data. +* curl, unzip for downloading and decompressing files +* shapeindex (a companion utility to Mapnik found in the mapnik-utils package) for indexing downloaded shapefiles + +# Roadmap + +## Initial Release (v1.0.0, December 2012) + +This was a full re-implementation of the original OSM style, with only a few bugs discovered later. There's been +no interest in creating further point releases in the v1.x series. + +## Easier to wrangle (v2.x) + +There are a number of refactorings that can be made to the style, either to fix glitches +with the current style, or to leverage new features in carto / mapnik to simplify the stylesheets +with only small changes to the output. It's also appropriate to pull out some of the 'old-skool' +tagging methods that are now rarely used. + +Care is being taken to not get too clever with variables and expressions. While these often make +it easier to customise, experience has shown that over-cleverness (e.g. [interpolated entities][cleverness]) +can discourage contributions. + +The end goal will be a style that hews close to the current look of the standard style, but is +much more suitable for further development, and/or forking for third-parties to customise. + +## Tackle the backlog (v3.x) + +There are over [400 open requests][trac] on trac, some that have been open for years. These need +reviewing and dividing into obvious fixes, or additional new features that need some cartographic +judgement. The work done already in v1.0 and v2.0 will make it much easier to process these. + +# CartoCSS Style Guidelines + +* Always specify zoom levels as either >= or < . Don't use = or =< or > +* Open curly braces on the same line, and close on an empty line. +* One space before and after = etc +* Two space indents. No tabs. +* space after : but not before +* Dashes, not underscores, in layer names +* Name SQL subqueries after the layer name (but use underscores) +* Avoid restating defaults, e.g. don't add `point-allow-overlap = false` +* Avoid repeating the layer name for layers with mutiple attachments, i.e., prefer + +``` +#layer { + ::outline { + line-width: 6; + line-color: black; + } + ::inline { + line-width: 2; + line-color: white; + } +} +``` +instead of + +``` +#layer::outline { + line-width: 6; + line-color: black; +} +#layer::inline { + line-width: 2; + line-color: white; +} +``` +* Order the selectors in a style-sheet in rough order of importance (i.e., highway=primary, then highway=secondary) and beyond that, add layers that are rendered later (i.e., higher) lower in the file. + +[trac]: https://trac.openstreetmap.org/query?component=mapnik&status=!closed&order=changetime&desc=1&max=500 +[cleverness]: https://github.com/openstreetmap/mapnik-stylesheets/blob/master/inc/settings.xml.inc.template#L16 diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..c496e12 --- /dev/null +++ b/TODO.md @@ -0,0 +1,28 @@ +# TODO + +## Roads + +turning circles for living streets +turning circles for service +widths for living streets +highway area casing - should be wider +highway area casing and fills should be variables +tunnel casing widths +tunnel fill widths +motorway links are narrower than motorways (fair enough) but nothing else is (fix) +service casing and fill widths +pedestrian widths +residential 10-13 width +highway = road widths +bridge casing widths +paths etc widths +paths etc colours +railway colours +paths etc tunnels +track colours, width and dasharray +track tunnels +bridge casing +bridge colour +lowzoom widths +tram width and colour +guideways width and colour diff --git a/addressing.mss b/addressing.mss new file mode 100644 index 0000000..a01a46b --- /dev/null +++ b/addressing.mss @@ -0,0 +1,49 @@ +#interpolation { + [zoom >= 17] { + line-color: #888; + line-width: 1; + line-dasharray: 2,4; + } +} + +#housenumbers { + [zoom >= 17] { + text-name: "[addr:housenumber]"; + text-placement: interior; + text-min-distance: 1; + text-wrap-width: 0; + text-face-name: @book-fonts; + text-fill: #444; + text-size: 9; + } +} + +#housenames { + [zoom >= 17] { + text-name: "[addr:housename]"; + text-placement: interior; + text-wrap-width: 20; + text-face-name: @book-fonts; + text-size: 8; + text-fill: #444; + [zoom >= 18] { + text-size: 9; + } + } +} + +#building-text { + [way_area >= 150000][zoom >= 14], + [way_area >= 80000][zoom >= 15], + [way_area >= 20000][zoom >= 16], + [zoom >= 17] { + text-name: "[name]"; + text-size: 11; + text-fill: #444; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-halo-fill: rgba(255,255,255,0.5); + text-placement: interior; + } +} diff --git a/admin.mss b/admin.mss new file mode 100644 index 0000000..dd7bdb9 --- /dev/null +++ b/admin.mss @@ -0,0 +1,117 @@ +@admin-boundaries: #ac46ac; + +#admin-01234 { + [admin_level = '2'], + [admin_level = '3'] { + [zoom >= 4] { + line-color: @admin-boundaries; + line-width: 0.6; + } + [zoom >= 7] { + line-width: 2; + } + [zoom >= 10] { + [admin_level = '2'] { + line-width: 6; + } + [admin_level = '3'] { + line-width: 5; + line-dasharray: 4,2; + line-clip: false; + } + } + } + [admin_level = '4'] { + [zoom >= 4] { + line-color: @admin-boundaries; + line-width: 0.6; + line-dasharray: 4,3; + line-clip: false; + } + [zoom >= 7] { + line-width: 1; + } + [zoom >= 11] { + line-width: 3; + } + } + opacity: 0.4; +} + +#admin-5678 { + [admin_level = '5'][zoom >= 11] { + line-color: @admin-boundaries; + line-width: 2; + line-dasharray: 6,3,2,3,2,3; + line-clip: false; + } + [admin_level = '6'][zoom >= 11] { + line-color: @admin-boundaries; + line-width: 2; + line-dasharray: 6,3,2,3; + line-clip: false; + } + [admin_level = '7'], + [admin_level = '8'] { + [zoom >= 12] { + line-color: @admin-boundaries; + line-width: 1.5; + line-dasharray: 5,2; + line-clip: false; + } + } + opacity: 0.5; +} + +#admin-other { + [admin_level = '9'], + [admin_level = '10'] { + [zoom >= 13] { + line-color: @admin-boundaries; + line-width: 2; + line-dasharray: 2,3; + line-clip: false; + } + } + opacity: 0.5; +} + +#admin-text[zoom >= 16] { + text-name: "[name]"; + text-face-name: @book-fonts; + text-fill: @admin-boundaries; + text-placement: line; + text-halo-radius: 1.0; + text-placement: line; + text-dy: -10; +} + +#national-park-boundaries { + [zoom >= 7] { + ::fill [zoom < 13] { + opacity: 0.05; + polygon-fill: green; + } + ::line { + opacity: 0.15; + line-color: green; + line-width: 1.5; + line-dasharray: 4,2; + [zoom >= 10] { + line-width: 3; + line-dasharray: 6,2; + line-join: bevel; + } + } + } + [way_area > 200000000][zoom >= 8][zoom < 12], + [zoom >= 11][zoom < 12] { + text-name: "[name]"; + text-size: 8; + text-fill: #9c9; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-wrap-width: 14; + [zoom >= 11] { text-size: 11; } + } +} diff --git a/aerialways.mss b/aerialways.mss new file mode 100644 index 0000000..6fef77f --- /dev/null +++ b/aerialways.mss @@ -0,0 +1,20 @@ +#aerialways { + [aerialway = 'cable_car'], + [aerialway = 'gondola'], + [aerialway = 'goods'] { + [zoom >= 12] { + line-pattern-file: url('symbols/cable_car.png'); + } + } + + [aerialway = 'chair_lift'], + [aerialway = 'drag_lift'], + [aerialway = 't-bar'], + [aerialway = 'j-bar'], + [aerialway = 'platter'], + [aerialway = 'rope_tow'] { + [zoom >= 12] { + line-pattern-file: url('symbols/chair_lift.png'); + } + } +} diff --git a/amenity-points.mss b/amenity-points.mss new file mode 100644 index 0000000..42640f7 --- /dev/null +++ b/amenity-points.mss @@ -0,0 +1,1148 @@ +@marina-text: #576ddf; // also swimming_pool +@military-text: #99001a; +@park-text: #2c4b2c; + +.points { + [tourism = 'alpine_hut'][zoom >= 13]::tourism { + point-file: url('symbols/alpinehut.p.16.png'); + point-placement: interior; + } + + [amenity = 'shelter'][zoom >= 16]::amenity { + point-file: url('symbols/shelter2.p.16.png'); + point-placement: interior; + } + + [amenity = 'atm'][zoom >=17]::amenity { + point-file: url('symbols/atm2.p.16.png'); + point-placement: interior; + } + + [amenity = 'bank'][zoom >= 17]::amenity { + point-file: url('symbols/bank2.p.16.png'); + point-placement: interior; + } + + [amenity = 'bar'][zoom >=17]::amenity { + point-file: url('symbols/bar.p.20.png'); + point-placement: interior; + } + + [amenity = 'bicycle_rental'][zoom >= 17]::amenity { + point-file: url('symbols/rental_bicycle.p.20.png'); + point-placement: interior; + } + + [amenity = 'bus_stop']::amenity, + [highway = 'bus_stop']::highway { + [zoom >= 16] { + point-file: url('symbols/bus_stop_small.png'); + point-placement: interior; + } + [zoom >= 17] { + point-file: url('symbols/bus_stop.p.12.png'); + } + } + + [amenity = 'bus_station'][zoom >= 16]::amenity { + point-file: url('symbols/bus_station.n.16.png'); + point-placement: interior; + } + + [highway = 'traffic_signals'][zoom >= 17]::highway { + point-file: url('symbols/traffic_light.png'); + point-placement: interior; + } + + [amenity = 'cafe'][zoom >=17]::amenity { + point-file: url('symbols/cafe.p.16.png'); + point-placement: interior; + } + + [tourism = 'camp_site'][zoom >= 16]::tourism { + point-file: url('symbols/camping.n.16.png'); + point-placement: interior; + } + + [highway = 'ford'][zoom >= 16]::highway { + point-file: url('symbols/transport_ford.p.16.png'); + point-placement: interior; + } + + [tourism = 'caravan_site'][zoom >= 16]::tourism { + point-file: url('symbols/caravan_park.p.24.png'); + point-placement: interior; + } + + [amenity = 'car_sharing'][zoom >= 16]::amenity { + point-file: url('symbols/car_share.p.16.png'); + point-placement: interior; + } + + [tourism = 'chalet'][zoom >= 17]::tourism { + point-file: url('symbols/chalet.p.16.png'); + point-placement: interior; + } + + [amenity = 'cinema'][zoom >= 17]::amenity { + point-file: url('symbols/cinema.p.24.png'); + point-placement: interior; + } + + [amenity = 'fire_station'][zoom >= 17]::amenity { + point-file: url('symbols/firestation.p.16.png'); + point-placement: interior; + } + + [amenity = 'fuel'][zoom >= 17]::amenity { + point-file: url('symbols/fuel.p.16.png'); + point-placement: interior; + } + + [tourism = 'guest_house'][zoom >= 17]::tourism { + point-file: url('symbols/guest_house.p.16.png'); + point-placement: interior; + } + + [tourism = 'bed_and_breakfast'][zoom >= 17]::tourism { + point-file: url('symbols/bandb.p.20.png'); + point-placement: interior; + } + + [amenity = 'hospital'][zoom >= 15]::amenity { + point-file: url('symbols/hospital.p.16.png'); + point-placement: interior; + } + + [tourism = 'hostel'][zoom >= 17]::tourism { + point-file: url('symbols/hostel.p.20.png'); + point-placement: interior; + } + + [tourism = 'hotel'][zoom >= 17]::tourism { + point-file: url('symbols/hotel2.p.20.png'); + point-placement: interior; + } + + [tourism = 'motel'][zoom >= 17]::tourism { + point-file: url('symbols/motel.p.20.png'); + point-placement: interior; + } + + [tourism = 'information'][zoom >= 16]::tourism { + point-file: url('symbols/information.p.16.png'); + point-placement: interior; + } + + [amenity = 'embassy'][zoom >= 17]::amenity { + point-file: url('symbols/embassy.png'); + point-placement: interior; + } + + [amenity = 'library'][zoom >= 17]::amenity { + point-file: url('symbols/library.p.20.png'); + point-placement: interior; + } + + [amenity = 'courthouse'][zoom > 17]::amenity { + point-file: url('symbols/amenity_court.p.20.png'); + point-placement: interior; + } + + [waterway = 'lock']::waterway, + [lock = 'yes']::lock { + [zoom >= 15] { + point-file: url('symbols/lock_gate.png'); + point-placement: interior; + } + } + + [man_made = 'mast'][zoom >= 17]::man_made { + point-file: url('symbols/communications.p.20.png'); + point-placement: interior; + } + + [tourism = 'museum'][zoom >= 17]::tourism { + point-file: url('symbols/museum.p.16.png'); + point-placement: interior; + } + + [amenity = 'parking'][zoom >= 15]::amenity { + point-file: url('symbols/parking.p.16.png'); + point-placement: interior; + [access != ''][access != 'public'][access != 'yes'] { + point-file: url('symbols/parking_private.p.16.png'); + } + } + + [amenity = 'pharmacy'][zoom >= 17]::amenity { + point-file: url('symbols/pharmacy.p.16.png'); + point-placement: interior; + } + + [amenity = 'place_of_worship'][zoom >= 16]::amenity { + point-file: url('symbols/place_of_worship3.p.16.png'); + point-placement: interior; + [religion = 'christian'] { + point-file: url('symbols/christian3.p.14.png'); + } + [religion = 'muslim'] { + point-file: url('symbols/islamic3.p.16.png'); + } + [religion = 'sikh'] { + point-file: url('symbols/sikh3.p.16.png'); + } + [religion = 'jewish'] { + point-file: url('symbols/jewish3.p.16.png'); + } + [religion = 'hindu'] { + point-file: url('symbols/hindu.png'); + } + [religion = 'buddhist'] { + point-file: url('symbols/buddhist.png'); + } + [religion = 'shinto'] { + point-file: url('symbols/shinto.png'); + } + [religion = 'taoist'] { + point-file: url('symbols/taoist.png'); + } + } + + [amenity = 'police'][zoom >= 17]::amenity { + point-file: url('symbols/police.p.16.png'); + point-placement: interior; + } + + [amenity = 'post_box'][zoom >= 17]::amenity { + point-file: url('symbols/post_box.p.16.png'); + point-placement: interior; + } + + [amenity = 'post_office'][zoom >= 17]::amenity { + point-file: url('symbols/post_office.p.16.png'); + point-placement: interior; + } + + [amenity = 'pub'][zoom >= 16]::amenity { + point-file: url('symbols/pub.p.16.png'); + point-placement: interior; + } + + [amenity = 'biergarten'][zoom >= 16]::amenity { + point-file: url('symbols/biergarten.p.16.png'); + point-placement: interior; + } + + [amenity = 'recycling'][zoom >= 16]::amenity { + point-file: url('symbols/recycling.p.16.png'); + point-placement: interior; + } + + [amenity = 'restaurant'][zoom >= 17]::amenity { + point-file: url('symbols/restaurant.p.16.png'); + point-placement: interior; + } + + [amenity = 'fast_food'][zoom >= 17]::amenity { + point-file: url('symbols/fast_food.png'); + point-placement: interior; + } + + [amenity = 'telephone'][zoom >= 17]::amenity { + point-file: url('symbols/telephone.p.16.png'); + point-placement: interior; + } + + [amenity = 'emergency_phone'][zoom >= 17]::amenity { + point-file: url('symbols/sosphone.png'); + point-placement: interior; + } + + [amenity = 'theatre'][zoom >= 17]::amenity { + point-file: url('symbols/theatre.p.20.png'); + point-placement: interior; + } + + [amenity = 'toilets'][zoom >= 17]::amenity { + point-file: url('symbols/toilets.p.20.png'); + point-placement: interior; + } + + [amenity = 'drinking_water'][zoom >= 17]::amenity { + point-file: url('symbols/food_drinkingtap.p.20.png'); + point-placement: interior; + } + + [amenity = 'prison'][zoom >= 17]::amenity { + point-file: url('symbols/amenity_prison.p.20.png'); + point-placement: interior; + } + + [tourism = 'viewpoint'][zoom >= 16]::tourism { + point-file: url('symbols/view_point.p.16.png'); + point-placement: interior; + } + + [man_made = 'water_tower'][zoom >= 17]::man_made { + point-file: url('symbols/tower_water.p.20.png'); + point-placement: interior; + } + + [historic = 'memorial'][zoom >= 17]::historic { + point-file: url('symbols/tourist_memorial.p.20.png'); + point-placement: interior; + } + + [historic = 'archaeological_site'][zoom >= 16]::historic { + point-file: url('symbols/tourist_archaeological2.glow.24.png'); + point-placement: interior; + } + + [shop = 'supermarket'][zoom >= 16]::shop { + point-file: url('symbols/shop_supermarket.p.16.png'); + point-placement: interior; + } + + [shop = 'bakery'][zoom >= 17]::shop { + point-file: url('symbols/shop_bakery.p.16.png'); + point-placement: interior; + } + + [shop = 'butcher'][zoom >= 17]::shop { + point-file: url('symbols/shop_butcher.png'); + point-placement: interior; + } + + [shop = 'clothes']::shop, + [shop = 'fashion']::shop { + [zoom >= 17] { + point-file: url('symbols/shop_clothes.p.16.png'); + point-placement: interior; + } + } + + [shop = 'convenience'][zoom >= 17]::shop { + point-file: url('symbols/shop_convenience.p.16.png'); + point-placement: interior; + } + + [shop = 'department_store'][zoom >= 16]::shop { + point-file: url('symbols/department_store.p.16.png'); + point-placement: interior; + } + + [shop = 'doityourself'][zoom >= 17]::shop { + point-file: url('symbols/shop_diy.p.16.png'); + point-placement: interior; + } + + [shop = 'florist'][zoom >= 17]::shop { + point-file: url('symbols/florist.p.16.png'); + point-placement: interior; + } + + [shop = 'hairdresser'][zoom >= 17]::shop { + point-file: url('symbols/shop_hairdresser.p.16.png'); + point-placement: interior; + } + + [shop = 'car'][zoom >= 17]::shop { + point-file: url('symbols/shopping_car.p.16.png'); + point-placement: interior; + } + + [shop = 'car_repair'][zoom >= 17]::shop { + point-file: url('symbols/shopping_car_repair.p.16.png'); + point-placement: interior; + } + + [shop = 'bicycle'][zoom >= 17]::shop { + point-file: url('symbols/shopping_bicycle.p.16.png'); + point-placement: interior; + } + + [leisure = 'playground'][zoom >= 17]::leisure { + point-file: url('symbols/playground.p.20.png'); + point-placement: interior; + } + + [tourism = 'picnic_site'][zoom >= 16]::tourism { + point-file: url('symbols/picnic.p.16.png'); + point-placement: interior; + } + + [leisure = 'picnic_table'][zoom >= 17]::leisure { + point-file: url('symbols/picnic.p.16.png'); + point-placement: interior; + } + + [leisure = 'slipway'][zoom >= 17]::leisure { + point-file: url('symbols/transport_slipway.p.20.png'); + point-placement: interior; + } +} + + +.text { + [place = 'island'][zoom >= 12]::place { + text-name: "[name]"; + text-fill: #000; + text-size: 9; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [amenity = 'pub']::amenity, + [amenity = 'restaurant']::amenity, + [amenity = 'cafe']::amenity, + [amenity = 'fast_food']::amenity, + [amenity = 'biergarten']::amenity { + [zoom >= 17] { + text-name: "[name]"; + text-fill: #734a08; + text-size: 10; + text-dy: 9; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-wrap-width: 34; + text-placement: interior; + } + } + + [amenity = 'bar'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 11; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [amenity = 'library']::amenity, + [amenity = 'theatre']::amenity, + [amenity = 'courthouse']::amenity { + [zoom >= 17] { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 12; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-placement: interior; + } + } + + [amenity = 'cinema'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 14; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [amenity = 'parking'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 9; + text-fill: #0066ff; + text-dy: 9; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 34; + text-placement: interior; + [access != ''][access != 'public'][access != 'yes'] { + text-fill: #66ccaf; + } + } + + [amenity = 'police'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 10; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 30; + text-placement: interior; + } + + [amenity = 'fire_station'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 9; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 30; + text-placement: interior; + } + + [amenity = 'place_of_worship'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #000033; + text-dy: 12; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 30; + text-placement: interior; + } + + [natural = 'wood'][zoom >= 15]::natural { + text-name: "[name]"; + text-size: 10; + text-fill: darken(@wood, 50%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } + + [natural = 'peak']::natural, + [natural = 'volcano']::natural { + [zoom >= 13] { + text-name: "[name]"; + text-size: 10; + text-fill: brown; + text-dy: 7; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + ele/text-name: "[ele]"; + ele/text-size: 9; + ele/text-fill: brown; + ele/text-dy: 6; + ele/text-face-name: @oblique-fonts; + ele/text-halo-radius: 1; + ele/text-placement: interior; + [name != ''] { + ele/text-dy: 19; + } + } + } + + [natural = 'cave_entrance'][zoom >= 15]::natural { + text-name: "[name]"; + text-size: 10; + text-fill: brown; + text-dy: 9; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + + [historic = 'memorial'][zoom >= 17]::historic { + text-name: "[name]"; + text-size: 9; + text-fill: brown; + text-dy: 13; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + + [historic = 'archaeological_site'][zoom >= 17]::historic { + text-name: "[name]"; + text-size: 9; + text-fill: brown; + text-dy: 15; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + + [natural = 'water']::natural, + [natural = 'lake']::natural, + [landuse = 'reservoir']::landuse, + [landuse = 'basin']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 12; + text-fill: @water-text; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + } + + [leisure = 'swimming_pool']::leisure { + [zoom >= 17] { + text-name: "[name]"; + text-size: 9; + text-fill: @marina-text; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } + } + + [leisure = 'sports_centre']::leisure, + [leisure = 'stadium']::leisure, + [leisure = 'track']::leisure, + [leisure = 'pitch']::leisure { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@stadium, 30%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } + } + + [leisure = 'playground']::leisure, + [leisure = 'park']::leisure, + [leisure = 'recreation_ground']::leisure, + [landuse = 'recreation_ground']::landuse, + [landuse = 'conservation']::landuse, + [landuse = 'village_green']::landuse, + [leisure = 'common']::leisure, + [leisure = 'garden']::leisure, + [leisure = 'golf_course']::leisure, + [leisure = 'nature_reserve']::leisure { + [way_area >= 150000][zoom >= 14], + [way_area >= 80000][zoom >= 15], + [way_area >= 20000][zoom >= 16], + [zoom >= 17] { + text-name: "[name]"; + text-size: 11; + text-fill: @park-text; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.6); + text-wrap-width: 30; + text-placement: interior; + } + } + + [landuse = 'quarry']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: #000; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'vineyard']::landuse, + [landuse = 'orchard']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@vineyard, 50%); + text-face-name: @book-fonts; + // extra halo needed to overpower the cemetery polygon pattern + text-halo-radius: 1.5; + text-wrap-width: 10; + } + } + + [landuse = 'cemetery']::landuse, + [landuse = 'grave_yard']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@cemetery, 50%); + text-face-name: @book-fonts; + // extra halo needed to overpower the cemetery polygon pattern + text-halo-radius: 1.5; + text-wrap-width: 10; + } + } + + [landuse = 'residential']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: #000; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'garages']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@garages, 50%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'field']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@field, 50%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'meadow']::landuse, + [landuse = 'grass']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@grass, 65%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'allotments']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@allotments, 60%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'forest']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@forest, 50%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'farm']::landuse, + [landuse = 'farmland']::landuse, + [landuse = 'farmyard']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@farm, 70%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'retail']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@retail, 60%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'industrial']::landuse, + [landuse = 'railway']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@industrial, 60%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'commercial']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@commercial, 60%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [landuse = 'brownfield']::landuse, + [landuse = 'landfill']::landuse, + [landuse = 'greenfield']::landuse, + [landuse = 'construction']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: darken(@construction, 50%); + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + } + } + + [natural = 'bay'][zoom >= 14]::natural { + text-name: "[name]"; + text-size: 10; + text-fill: #6699cc; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + + [natural = 'spring'][zoom >= 16]::natural { + text-name: "[name]"; + text-size: 10; + text-fill: #6699cc; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + text-dy: 6; + } + + [tourism = 'alpine_hut'][zoom >= 15]::tourism { + text-name: "[name]"; + text-size: 9; + text-fill: #6699cc; + text-dy: 10; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + [zoom >= 16] { + ele/text-name: "[ele]"; + ele/text-size: 8; + ele/text-fill: #6699cc; + ele/text-dy: 22; + ele/text-face-name: @oblique-fonts; + ele/text-halo-radius: 1; + ele/text-placement: interior; + } + } + + [amenity = 'shelter'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 9; + text-fill: #6699cc; + text-dy: 10; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + ele/text-name: "[ele]"; + ele/text-size: 8; + ele/text-fill: #6699cc; + ele/text-dy: 22; + ele/text-face-name: @oblique-fonts; + ele/text-halo-radius: 1; + ele/text-placement: interior; + } + + [amenity = 'bank'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 9; + text-fill: black; + text-dy: 9; + text-halo-radius: 1; + text-placement: interior; + text-face-name: @book-fonts; + } + + [tourism = 'hotel']::tourism, + [tourism = 'motel']::tourism, + [tourism = 'hostel']::tourism, + [tourism = 'chalet']::tourism { + [zoom >= 17] { + text-name: "[name]"; + text-size: 10; + text-fill: #0066ff; + text-dy: 11; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + } + + [amenity = 'embassy'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 9; + text-fill: #0066ff; + text-dy: 8; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [tourism = 'guest_house'][zoom >= 17]::tourism { + text-name: "[name]"; + text-size: 8; + text-fill: #0066ff; + text-dy: 10; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [tourism = 'bed_and_breakfast'][zoom >= 17]::tourism { + text-name: "[name]"; + text-size: 8; + text-fill: #0066ff; + text-dy: 8; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [amenity = 'fuel']::amenity, + [amenity = 'bus_station']::amenity { + [zoom >= 17] { + text-name: "[name]"; + text-size: 9; + text-fill: #0066ff; + text-dy: 9; + text-face-name: @book-fonts; + text-halo-radius: 1; + } + } + + [tourism = 'camp_site'][zoom >= 17]::tourism { + text-name: "[name]"; + text-size: 10; + text-fill: #0066ff; + text-dy: 15; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 70; + } + + [tourism = 'caravan_site'][zoom >= 17]::tourism { + text-name: "[name]"; + text-size: 10; + text-fill: #0066ff; + text-dy: 19; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 70; + } + + [waterway = 'lock'][zoom >= 15]::waterway { + text-name: "[name]"; + text-size: 9; + text-dy: 10; + text-fill: #0066ff; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 70; + } + + [leisure = 'marina'][zoom >= 15]::leisure { + text-name: "[name]"; + text-size: 8; + text-fill: @marina-text; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 30; + text-placement: interior; + [zoom >= 17] { + text-size: 10; + } + } + + [tourism = 'theme_park'][zoom >= 14]::tourism { + text-name: "[name]"; + text-size: 8; + text-fill: #734a08; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 30; + text-placement: interior; + [zoom >= 16] { + text-size: 10; + } + } + + [tourism = 'museum'][zoom >= 17]::tourism { + text-name: "[name]"; + text-size: 10; + text-dy: 10; + text-fill: #734a08; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [amenity = 'prison'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 10; + text-fill: #734a08; + text-dy: 16; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [tourism = 'attraction'][zoom >= 16]::tourism { + text-name: "[name]"; + text-size: 10; + text-fill: #660033; + text-face-name: @book-fonts; + text-halo-radius: 2; + text-wrap-width: 10; + text-placement: interior; + } + + [amenity = 'university'][zoom >= 15]::amenity { + text-name: "[name]"; + text-size: 9; + text-fill: #000033; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-wrap-width: 16; + text-placement: interior; + } + + [amenity = 'school']::amenity, + [amenity = 'college']::amenity { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: #000033; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 14; + text-placement: interior; + } + } + + [amenity = 'kindergarten'][zoom >= 16]::amenity { + text-name: "[name]"; + text-size: 8; + text-fill: #000033; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 14; + text-placement: interior; + } + + [man_made = 'lighthouse'][zoom >= 15]::man_made { + text-name: "[name]"; + text-size: 9; + text-fill: #000033; + text-dy: 16; + text-face-name: @book-fonts; + text-halo-radius: 2; + text-wrap-width: 12; + text-placement: interior; + } + + [man_made = 'windmill'][zoom >= 17]::man_made { + text-name: "[name]"; + text-size: 9; + text-fill: #734a08; + text-dy: 12; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + + [amenity = 'hospital'][zoom >= 16]::amenity { + text-name: "[name]"; + text-fill: #da0092; + text-size: 8; + text-dy: 10; + text-face-name: @book-fonts; + text-halo-radius: 2; + text-wrap-width: 24; + text-placement: interior; + } + + [amenity = 'pharmacy'][zoom >= 17]::amenity { + text-name: "[name]"; + text-size: 8; + text-dy: 10; + text-fill: #da0092; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 12; + text-placement: interior; + } + + [shop = 'bakery']::shop, + [shop = 'clothes']::shop, + [shop = 'fashion']::shop, + [shop = 'convenience']::shop, + [shop = 'doityourself']::shop, + [shop = 'hairdresser']::shop, + [shop = 'butcher']::shop, + [shop = 'car']::shop, + [shop = 'car_repair']::shop, + [shop = 'bicycle']::shop, + [shop = 'florist']::shop { + [zoom >= 17] { + text-name: "[name]"; + text-size: 8; + text-dy: 10; + text-fill: #939; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 12; + text-placement: interior; + } + } + + [shop = 'supermarket']::shop, + [shop = 'department_store']::shop { + [zoom >= 16] { + text-name: "[name]"; + text-size: 9; + text-dy: 9; + text-fill: #939; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 20; + text-placement: interior; + } + } + + [military = 'danger_area'][zoom >= 12]::military { + text-name: "[name]"; + text-size: 9; + text-fill: @military-text; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } + + [landuse = 'military']::landuse { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: @military-text; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } + } + + [aeroway = 'gate'][zoom >= 17]::aeroway { + text-name: "[ref]"; + text-size: 10; + text-fill: #aa66cc; + text-face-name: @book-fonts; + text-halo-radius: 1; + text-wrap-width: 10; + text-placement: interior; + } +} diff --git a/amenity-symbols.mss b/amenity-symbols.mss new file mode 100644 index 0000000..f1699da --- /dev/null +++ b/amenity-symbols.mss @@ -0,0 +1,112 @@ +.symbols { + [aeroway = 'helipad'][zoom >= 16]::aeroway { + point-file: url('symbols/helipad.p.16.png'); + text-name: "[name]"; + text-size: 8; + text-fill: #6692da; + text-dy: -10; + text-face-name: @bold-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [aeroway = 'aerodrome'][zoom >= 10][zoom < 13]::aeroway { + [zoom < 11] { + point-file: url('symbols/aerodrome.p.16.png'); + text-dy: -12; + } + text-name: "[name]"; + text-size: 8; + text-fill: #6692da; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + text-placement: interior; + } + + [railway = 'level_crossing'][zoom >= 14]::railway { + point-file: url('symbols/level_crossing.png'); + point-placement: interior; + [zoom >= 16] { + point-file: url('symbols/level_crossing2.png'); + } + } + + [man_made = 'lighthouse'][zoom >= 15]::man_made { + point-file: url('symbols/lighthouse.p.20.png'); + point-placement: interior; + } + + [natural = 'peak'][zoom >= 11]::natural { + point-file: url('symbols/peak.png'); + point-placement: interior; + } + + [natural = 'volcano'][zoom >= 11]::natural { + point-file: url('symbols/volcano.png'); + point-placement: interior; + } + + [natural = 'cave_entrance'][zoom >= 15]::natural { + point-file: url('symbols/poi_cave.p.16.png'); + point-placement: interior; + } + + [natural = 'spring'][zoom >= 14]::natural { + point-file: url('symbols/spring.png'); + point-placement: interior; + } + + [natural = 'tree'][zoom >= 16]::natural { + point-file: url('symbols/tree.png'); + point-ignore-placement: true; + point-placement: interior; + [zoom >= 17] { + point-file: url('symbols/tree2.png'); + } + } + + [power = 'generator']['generator:source' = 'wind']::power, + [power = 'generator'][power_source = 'wind']::power, + [man_made = 'power_wind'] { + [zoom >= 15] { + point-file: url('symbols/power_wind.png'); + point-placement: interior; + } + } + + [man_made = 'windmill'][zoom >= 16]::man_made { + point-file: url('symbols/windmill.png'); + point-placement: interior; + } + + [man_made = 'mast'][zoom >= 17]::man_made { + point-file: url('symbols/communications.p.20.png'); + point-placement: interior; + } + + [highway = 'mini_roundabout'][zoom >= 15]::highway { + point-file: url('symbols/mini_round.png'); + point-placement: interior; + } + + [highway = 'gate']::highway, + [barrier = 'gate']::barrier { + [zoom >= 15] { + point-file: url('symbols/gate2.png'); + point-placement: interior; + } + } + + [barrier = 'lift_gate'][zoom >= 16]::barrier { + point-file: url('symbols/liftgate.png'); + point-placement: interior; + } + + [barrier = 'bollard'], + [barrier = 'block'] { + [zoom >= 16] { + point-file: url('symbols/bollard.png'); + point-placement: interior; + } + } +} diff --git a/buildings.mss b/buildings.mss new file mode 100644 index 0000000..9e988c4 --- /dev/null +++ b/buildings.mss @@ -0,0 +1,52 @@ +#buildings-lz { + [zoom >= 10] { + [railway = 'station']::railway, + [building = 'station'] { + polygon-fill: #d4aaaa; + polygon-clip: false; + } + + [building = 'supermarket'] { + polygon-fill: pink; + polygon-opacity: 0.5; + polygon-clip: false; + } + + [amenity = 'place_of_worship']::amenity { + polygon-opacity: 0.5; + polygon-fill: #777; + polygon-clip: false; + [zoom >= 15] { + polygon-opacity: 0.9; + polygon-fill: #aaa; + line-width: 0.3; + line-color: #111; + } + } + } +} + +#buildings { + [building = 'INT-light'][zoom >= 12] { + polygon-fill: #bca9a9; + polygon-opacity: 0.7; + polygon-clip: false; + } + [building != 'INT-light'][building != ''][zoom >= 12] { + polygon-fill: #bca9a9; + polygon-opacity: 0.9; + polygon-clip: false; + [zoom >= 16] { + line-color: #330066; + line-width: 0.2; + } + } + [aeroway = 'terminal'][zoom >= 12]::aeroway { + polygon-fill: #cc99ff; + polygon-clip: false; + [zoom >= 14] { + line-color: #330066; + line-width: 0.2; + } + } +} diff --git a/citywalls.mss b/citywalls.mss new file mode 100644 index 0000000..02ae59d --- /dev/null +++ b/citywalls.mss @@ -0,0 +1,24 @@ +#citywalls { + [zoom >= 14] { + line-color: grey; + line-width: 4; + line-opacity: 0.8; + [zoom >= 15] { + line-width: 6; + } + [zoom >= 16] { + line-width: 9; + } + } +} + +.castlewalls { + [zoom >= 14] { + line-color: #999; + line-width: 1; + } + [zoom >= 16] { + line-color: #888; + line-width: 2; + } +} diff --git a/ferry-routes.mss b/ferry-routes.mss new file mode 100644 index 0000000..57145df --- /dev/null +++ b/ferry-routes.mss @@ -0,0 +1,11 @@ +#ferry-routes { + [zoom >= 7] { + line-color: #66f; + line-width: 0.4; + line-dasharray: 4,4; + [zoom >= 11] { + line-width: 0.8; + line-dasharray: 6,6; + } + } +} diff --git a/get-shapefiles.sh b/get-shapefiles.sh new file mode 100755 index 0000000..e21945f --- /dev/null +++ b/get-shapefiles.sh @@ -0,0 +1,65 @@ +#!/bin/bash +set -e -u + +UNZIP_OPTS=-qqu + +# create and populate data dir + +mkdir -p data/ +mkdir -p data/world_boundaries +mkdir -p data/simplified-land-polygons-complete-3857 +mkdir -p data/ne_110m_admin_0_boundary_lines_land +mkdir -p data/ne_10m_populated_places +mkdir -p data/land-polygons-split-3857 + +# world_boundaries +echo "dowloading world_boundaries..." +curl -z "data/world_boundaries-spherical.tgz" -L -o "data/world_boundaries-spherical.tgz" "http://planet.openstreetmap.org/historical-shapefiles/world_boundaries-spherical.tgz" +echo "expanding world_boundaries..." +tar -xzf data/world_boundaries-spherical.tgz -C data/ + +# simplified-land-polygons-complete-3857 +echo "downloading simplified-land-polygons-complete-3857..." +curl -z "data/simplified-land-polygons-complete-3857.zip" -L -o "data/simplified-land-polygons-complete-3857.zip" "http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip" +echo "simplified-land-polygons-complete-3857..." +unzip $UNZIP_OPTS data/simplified-land-polygons-complete-3857.zip simplified-land-polygons-complete-3857/simplified_land_polygons.{shp,shx,prj,dbf,cpg} -d data/ + +# ne_110m_admin_0_boundary_lines_land +echo "dowloading ne_110m_admin_0_boundary_lines_land..." +curl -z data/ne_110m_admin_0_boundary_lines_land.zip -L -o data/ne_110m_admin_0_boundary_lines_land.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_boundary_lines_land.zip +echo "expanding ne_110m_admin_0_boundary_lines_land..." +unzip $UNZIP_OPTS data/ne_110m_admin_0_boundary_lines_land.zip -d data/ne_110m_admin_0_boundary_lines_land/ + +# ne_10m_populated_places +echo "dowloading ne_10m_populated_places..." +curl -z data/ne_10m_populated_places.zip -L -o data/ne_10m_populated_places.zip http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip +echo "expanding ne_10m_populated_places..." +unzip $UNZIP_OPTS data/ne_10m_populated_places.zip -d data/ne_10m_populated_places/ + +# land-polygons-split-3857 +echo "dowloading land-polygons-split-3857..." +curl -z "data/land-polygons-split-3857.zip" -L -o "data/land-polygons-split-3857.zip" "http://data.openstreetmapdata.com/land-polygons-split-3857.zip" +echo "expanding land-polygons-split-3857..." +unzip $UNZIP_OPTS data/land-polygons-split-3857.zip -d data/ + + +#process populated places +echo "processing ne_10m_populated_places..." +rm -f data/ne_10m_populated_places/ne_10m_populated_places_fixed.* +ogr2ogr --config SHAPE_ENCODING UTF8 data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp data/ne_10m_populated_places/ne_10m_populated_places.shp + +#index +echo "indexing shapefiles" + +shapeindex --shape_files \ +data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp \ +data/land-polygons-split-3857/land_polygons.shp \ +data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp \ +data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp + + +#clean up +echo "cleaning up..." +rm data/ne_10m_populated_places/ne_10m_populated_places.* + +echo "...done!" diff --git a/landcover.mss b/landcover.mss new file mode 100644 index 0000000..b460703 --- /dev/null +++ b/landcover.mss @@ -0,0 +1,436 @@ +// --- Parks, woods, other green things --- + +@forest: #a0cf85; +@grass: #cfeca8; // also meadow, common, garden, village_green, conservation +@golf_course: #b5e3b5; +@natural: #c6e4b4; // also grassland +@park: #b6fdb6; // also recreation_ground +@wood: #aed1a0; +@vineyard: #abdf96; + +// --- sports --- + +@stadium: #3c9; // also sports_centre +@track: #74dcba; +@pitch: #8ad3af; + +// --- Other ---- + +@aerodrome: #ccc; +@allotments: #e5c7ab; +@apron: #e9d1ff; +@attraction: #f2caea; +@barracks: #ff8f8f; +@campsite: #ccff99; // also caravan_site, picnic_site +@cemetery: #aacbaf; // also grave_yard +@construction: #9d9d6c; +@commercial: #efc8c8; +@danger_area: pink; +@desert: #e3b57a; +@field: #660; +@garages: #996; +@heath: #d6d99f; +@industrial: #dfd1d6; // also railway +@farmyard: #ddbf92; +@farm: #ead8bd; // also farmland +@parking: #f7efb7; +@playground: #ccfff1; +@power: #bbb; +@rest_area: #efc8c8; // also services +@retail: #f1dada; +@residential: #ddd; +@sand: #ffdf88; +@school: #f0f0d8; // also university, college, hospital, kindergarten + +#landcover { + [feature = 'leisure_swimming_pool'][zoom >= 14] { + polygon-fill: @water-color; + line-color: blue; + line-width: 0.5; + } + + [feature = 'leisure_playground'][zoom >= 13] { + polygon-fill: @playground; + line-color: #666; + line-width: 0.3; + } + + [feature = 'tourism_camp_site'], + [feature = 'tourism_caravan_site'], + [feature = 'tourism_picnic_site'] { + [zoom >= 13] { + polygon-fill: @campsite; + polygon-opacity: 0.5; + line-color: #666; + line-width: 0.3; + } + } + + [feature = 'tourism_attraction'][zoom >= 10] { + polygon-fill: @attraction; + } + + [feature = 'landuse_quarry'][zoom >= 11] { + polygon-pattern-file: url('symbols/quarry2.png'); + line-width: 0.5; + line-color: grey; + } + + [feature = 'landuse_vineyard'] { + [zoom >= 10][zoom < 13] { + polygon-fill: @vineyard; + } + [zoom >= 13] { + polygon-pattern-file: url('symbols/vineyard.png'); + } + } + + [feature = 'landuse_orchard'][zoom >= 10] { + polygon-pattern-file: url('symbols/orchard.png'); + } + + [feature = 'landuse_cemetery'], + [feature = 'landuse_grave_yard'], + [feature = 'amenity_grave_yard'] { + [zoom >= 10][zoom < 14] { + polygon-fill: @cemetery; + } + [zoom >= 14] { + [religion = 'jewish'] { polygon-pattern-file: url('symbols/cemetery_jewish.18.png'); } + [religion = 'christian'] { polygon-pattern-file: url('symbols/grave_yard.png'); } + [religion = 'INT-generic'] { polygon-pattern-file: url('symbols/grave_yard_generic.png'); } + } + } + + [feature = 'landuse_residential'][zoom >= 10] { + polygon-fill: @residential; + } + + [feature = 'landuse_garages'][zoom >= 12] { + polygon-fill: @garages; + polygon-opacity: 0.2; + } + + [feature = 'military_barracks'][zoom >= 10] { + polygon-fill: @barracks; + } + + [feature = 'landuse_field'], + [feature = 'natural_field'] { + [zoom >= 10] { + polygon-fill: @field; + polygon-opacity: 0.2; + [zoom >= 14] { + line-width: 0.3; + line-opacity: 0.4; + line-color: #660; + } + } + } + + [feature = 'military_danger_area'] { + [zoom >= 9][zoom < 11] { + polygon-fill: @danger_area; + polygon-opacity: 0.3; + } + [zoom >= 11] { + polygon-pattern-file: url('symbols/danger.png'); + } + } + + [feature = 'landuse_meadow'], + [feature = 'landuse_grass'] { + [zoom >= 10] { + polygon-fill: @grass; + } + } + + [feature = 'leisure_park'], + [feature = 'leisure_recreation_ground'] { + [zoom >= 10] { + polygon-fill: @park; + polygon-opacity: 0.6; + } + } + + [feature = 'tourism_zoo'][zoom >= 10] { + polygon-pattern-file: url('symbols/zoo.png'); + } + + [feature = 'leisure_common'][zoom >= 10] { + polygon-fill: @grass; + } + + [feature = 'leisure_garden'][zoom >= 10] { + polygon-fill: @grass; + } + + [feature = 'leisure_golf_course'][zoom >= 10] { + polygon-fill: @golf_course; + } + + [feature = 'landuse_allotments'] { + [zoom >= 10][zoom < 14] { + polygon-fill: @allotments; + } + [zoom >= 14] { + polygon-pattern-file: url('symbols/allotments.png'); + } + } + + [feature = 'landuse_forest'] { + [zoom >= 8] { + polygon-fill: @forest; + } + [zoom >= 14] { + polygon-pattern-file: url('symbols/forest.png'); + } + } + + [feature = 'landuse_farmyard'][zoom >= 9] { + polygon-fill: @farmyard; + } + + [feature = 'landuse_farm'], + [feature = 'landuse_farmland'] { + [zoom >= 9] { + polygon-fill: @farm; + } + } + + [feature = 'landuse_recreation_ground'], + [feature = 'landuse_conservation'] { + [zoom >= 10] { + polygon-fill: @grass; + } + } + + [feature = 'landuse_village_green'][zoom >= 11] { + polygon-fill: @grass; + } + + [feature = 'landuse_retail'][zoom >= 10] { + polygon-fill: @retail; + [zoom >= 15] { + line-width: 0.3; + line-color: red; + } + } + + [feature = 'landuse_industrial'], + [feature = 'landuse_railway'] { + [zoom >= 10] { + polygon-fill: @industrial; + } + } + + [feature = 'power_station'], + [feature = 'power_generator'] { + [zoom >= 10] { + polygon-fill: @power; + [zoom >= 12] { + line-width: 0.4; + line-color: #555; + } + } + } + + [feature = 'power_sub_station'][zoom >= 13] { + polygon-fill: @power; + line-width: 0.4; + line-color: #555; + } + + [feature = 'landuse_commercial'][zoom >= 10] { + polygon-fill: @commercial; + } + + [feature = 'landuse_brownfield'], + [feature = 'landuse_landfill'], + [feature = 'landuse_greenfield'], + [feature = 'landuse_construction'] { + [zoom >= 10] { + polygon-fill: @construction; + polygon-opacity: 0.7; + } + } + + [feature = 'natural_wood'] { + [zoom >= 8] { + polygon-fill: @wood; + } + } + + [feature = 'natural_desert'][zoom >= 8] { + polygon-fill: @desert; + } + + [feature = 'natural_sand'][zoom >= 10] { + polygon-fill: @sand; + } + + [feature = 'natural_heath'][zoom >= 10] { + polygon-fill: @heath; + } + + [feature = 'natural_grassland'][zoom >= 10] { + polygon-fill: #c6e4b4; + } + + [feature = 'natural_scrub'] { + [zoom >= 10][zoom < 14] { + polygon-fill: #b5e3b5; + } + [zoom >= 14] { + polygon-pattern-file: url('symbols/scrub.png'); + } + } + + [feature = 'amenity_university'], + [feature = 'amenity_college'], + [feature = 'amenity_school'], + [feature = 'amenity_hospital'], + [feature = 'amenity_kindergarten'] { + [zoom >= 10] { + polygon-fill: @school; + [zoom >= 12] { + line-width: 0.3; + line-color: brown; + } + } + } + + [feature = 'amenity_parking'][zoom >= 10] { + polygon-fill: @parking; + [zoom >= 15] { + line-width: 0.3; + line-color: @parking; + } + } + + [feature = 'aeroway_apron'][zoom >= 12] { + polygon-fill: @apron; + } + + [feature = 'aeroway_aerodrome'][zoom >= 12] { + polygon-fill: @aerodrome; + polygon-opacity: 0.2; + line-width: 0.2; + line-color: #555; + } + + [feature = 'natural_beach'][zoom >= 13] { + polygon-pattern-file: url('symbols/beach.png'); + } + + [feature = 'highway_services'], + [feature = 'highway_rest_area'] { + [zoom >= 14] { + polygon-fill: @rest_area; + } + } +} + +/* man_made=cutline */ +#landcover-line { + [zoom >= 14] { + line-width: 3; + line-join: round; + line-cap: square; + line-color: @land-color; + [zoom >= 16] { + line-width: 6; + } + } +} + +#sports-grounds { + [leisure = 'sports_centre'], + [leisure = 'stadium'] { + [zoom >= 10] { + polygon-fill: @stadium; + } + } + + [leisure = 'track'][zoom >= 10] { + polygon-fill: @track; + line-width: 0.5; + line-color: #888; + } + + [leisure = 'pitch'][zoom >= 10] { + polygon-fill: @pitch; + line-width: 0.5; + line-color: #888; + } +} + + +#landuse-overlay { + [landuse = 'military'][zoom >= 10]::landuse { + polygon-pattern-file: url('symbols/military_red_hatch.png'); + polygon-pattern-alignment: global; + line-color: #f55; + line-width: 3; + line-opacity: 0.329; + } + [leisure = 'nature_reserve'][zoom >= 10] { + polygon-pattern-file: url('symbols/nature_reserve5.png'); + line-color: #6c3; + line-width: 0.5; + [zoom >= 14] { + polygon-pattern-file: url('symbols/nature_reserve6.png'); + line-width: 1; + } + } +} + +#cliffs { + [natural = 'cliff'][zoom >= 13] { + line-pattern-file: url('symbols/cliff.png'); + [zoom >= 15] { + line-pattern-file: url('symbols/cliff2.png'); + } + } + [man_made = 'embankment'][zoom >= 15]::man_made { + line-pattern-file: url('symbols/cliff.png'); + } +} + +#area-barriers { + [zoom >= 16] { + line-color: #444; + line-width: 0.4; + [barrier = 'hedge'] { + polygon-fill: #aed1a0; + } + } +} + +.barriers { + [zoom >= 16] { + line-width: 0.4; + line-color: #444; + } + [barrier = 'embankment'][zoom >= 14] { + line-width: 0.4; + line-color: #444; + } + [barrier = 'hedge'][zoom >= 16] { + line-width: 3; + line-color: #aed1a0; + } +} + + +#theme-park { + [tourism = 'theme_park'][zoom >= 13] { + line-color: #734a08; + line-width: 1.5; + line-dasharray: 9,3; + line-opacity: 0.6; + [zoom >= 15] { + line-width: 2.5; + } + } +} diff --git a/openstreetmap-carto.style b/openstreetmap-carto.style new file mode 100644 index 0000000..1c53f73 --- /dev/null +++ b/openstreetmap-carto.style @@ -0,0 +1,226 @@ +# This is the default osm2pgsql .style file that comes with osm2pgsql. +# +# A .style file has 4 columns that define how OSM objects end up in tables in +# the database and what columns are created. It interacts with the command-line +# hstore options. +# +# Columns +# ======= +# +# OsmType: This is either "node", "way" or "node,way" and indicates if this tag +# applies to nodes, ways, or both. +# +# Tag: The tag +# +# DataType: The type of the column to be created. Normally "text" +# +# Flags: Flags that indicate what table the OSM object is moved into. +# +# There are 5 possible flags. These flags are used both to indicate if a column +# should be created, and if ways with the tag are assumed to be areas. The area +# assumptions can be overridden with an area=yes/no tag +# +# polygon - Create a column for this tag, and objects the tag with are areas +# +# linear - Create a column for this tag +# +# phstore - Don't create a column for this tag, but objects with the tag are areas +# +# delete - Drop this tag completely and don't create a column for it. This also +# prevents the tag from being added to hstore columns +# +# nocache - Deprecated and does nothing +# +# If an object has a tag that indicates it is an area or has area=yes/1, +# osm2pgsql will try to turn it into an area. If it succeeds, it places it in +# the polygon table. If it fails (e.g. not a closed way) it places it in the +# line table. +# +# Nodes are never placed into the polygon or line table and are always placed in +# the point table. +# +# Hstore +# ====== +# +# The options --hstore, --hstore-match-only, and --hstore-all interact with +# the .style file. +# +# With --hstore any tags without a column will be added to the hstore column. +# This will also cause all objects to be kept. +# +# With --hstore-match-only the behavior for tags is the same, but objects are +# only kept if they have a non-NULL value in one of the columns. +# +# With --hstore-all all tags are added to the hstore column unless they appear +# in the style file with a delete flag, causing duplication between the normal +# columns and the hstore column. +# +# Special database columns +# ======================== +# +# There are some special database columns that if present in the .style file +# will be populated by osm2pgsql. +# +# These are +# +# z_order - datatype int4 +# +# way_area - datatype real. The area of the way, in the units of the projection +# (e.g. square mercator meters). Only applies to areas +# +# osm_user, osm_uid, osm_version, osm_timestamp - datatype text. Used with the +# --extra-attributes option to include metadata in the database. If importing +# with both --hstore and --extra-attributes the meta-data will end up in the +# tags hstore column regardless of the style file. + +# OsmType Tag DataType Flags +node,way access text linear +node,way addr:housename text linear +node,way addr:housenumber text linear +node,way addr:interpolation text linear +node,way admin_level text linear +node,way aerialway text linear +node,way aeroway text polygon +node,way amenity text polygon +node,way area text # hard coded support for area=1/yes => polygon is in osm2pgsql +node,way barrier text linear +node,way bicycle text +node,way brand text linear +node,way bridge text linear +node,way boundary text linear +node,way building text polygon +node capital text linear +node,way construction text linear +node,way covered text linear +node,way culvert text linear +node,way cutting text linear +node,way denomination text linear +node,way disused text linear +node ele text linear +node,way embankment text linear +node,way foot text linear +node,way generator:source text linear +node,way harbour text polygon +node,way highway text linear +node,way historic text polygon +node,way horse text linear +node,way intermittent text linear +node,way junction text linear +node,way landuse text polygon +node,way layer text linear +node,way leisure text polygon +node,way lock text linear +node,way man_made text polygon +node,way military text polygon +node,way motorcar text linear +node,way name text linear +node,way natural text polygon # natural=coastline tags are discarded by a hard coded rule in osm2pgsql +node,way office text polygon +node,way oneway text linear +node,way operator text linear +node,way place text polygon +node poi text +node,way population text linear +node,way power text polygon +node,way power_source text linear +node,way public_transport text polygon +node,way railway text linear +node,way ref text linear +node,way religion text nocache +node,way route text linear +node,way service text linear +node,way shop text polygon +node,way sport text polygon +node,way surface text linear +node,way toll text linear +node,way tourism text polygon +node,way tower:type text linear +way tracktype text linear +node,way tunnel text linear +node,way water text polygon +node,way waterway text polygon +node,way wetland text polygon +node,way width text linear +node,way wood text linear +node,way z_order int4 linear # This is calculated during import +way way_area real # This is calculated during import + +# Area tags +# We don't make columns for these tags, but objects with them are areas. +# Mainly for use with hstore +way abandoned:aeroway text phstore +way abandoned:amenity text phstore +way abandoned:building text phstore +way abandoned:landuse text phstore +way abandoned:power text phstore +way area:highway text phstore + +# Deleted tags +# These are tags that are generally regarded as useless for most rendering. +# Most of them are from imports or intended as internal information for mappers +# Some of them are automatically deleted by editors. +# If you want some of them, perhaps for a debugging layer, just delete the lines. + +# These tags are used by mappers to keep track of data. +# They aren't very useful for rendering. +node,way note text delete +node,way note:* text delete +node,way source text delete +node,way source_ref text delete +node,way source:* text delete +node,way attribution text delete +node,way comment text delete +node,way fixme text delete + +# Tags generally dropped by editors, not otherwise covered +node,way created_by text delete +node,way odbl text delete +node,way odbl:note text delete +node,way SK53_bulk:load text delete + +# Lots of import tags +# TIGER (US) +node,way tiger:* text delete + +# NHD (US) +# NHD has been converted every way imaginable +node,way NHD:* text delete +node,way nhd:* text delete + +# GNIS (US) +node,way gnis:* text delete + +# Geobase (CA) +node,way geobase:* text delete +# NHN (CA) +node,way accuracy:meters text delete +node,way sub_sea:type text delete +node,way waterway:type text delete + +# KSJ2 (JA) +# See also note:ja and source_ref above +node,way KSJ2:* text delete +# Yahoo/ALPS (JA) +node,way yh:* text delete + +# osak (DK) +node,way osak:* text delete + +# kms (DK) +node,way kms:* text delete + +# ngbe (ES) +# See also note:es and source:file above +node,way ngbe:* text delete + +# naptan (UK) +node,way naptan:* text delete + +# Corine (CLC) (Europe) +node,way CLC:* text delete + +# misc +node,way 3dshapes:ggmodelk text delete +node,way AND_nosr_r text delete +node,way import text delete +node,way it:fvg:* text delete diff --git a/placenames.mss b/placenames.mss new file mode 100644 index 0000000..d98f2b9 --- /dev/null +++ b/placenames.mss @@ -0,0 +1,142 @@ +@placenames: #222; +@placenames-light: #777777; +.country { + [place = 'country'][zoom >= 2][zoom < 6] { + text-name: "[name]"; + text-size: 9; + text-fill: #9d6c9d; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-wrap-width: 20; + [zoom >= 4] { + text-size: 10; + } + } +} + +.state { + [place = 'state'][zoom >= 4][zoom < 9] { + text-name: "[ref]"; + text-size: 9; + text-fill: #9d6c9d; + text-face-name: @oblique-fonts; + text-halo-radius: 1.5; + text-wrap-width: 0; + [zoom >= 5] { + text-name: "[name]"; + } + [zoom >= 7] { + text-size: 11; + } + } +} + +#placenames-capital { + [zoom >= 5][zoom < 15] { + text-name: "[name]"; + text-size: 10; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-min-distance: 10; + [zoom >= 6] { + text-size: 12; + } + [zoom >= 11] { + text-size: 15; + } + } +} + +#placenames-medium::city { + [place = 'city'] { + [zoom >= 6][zoom < 15] { + text-name: "[name]"; + text-size: 9; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-min-distance: 10; + [zoom >= 9] { + text-size: 12; + } + [zoom >= 11] { + text-size: 15; + } + } + } +} + +#placenames-medium::town { + [place = 'town'] { + [zoom >= 9] { + text-name: "[name]"; + text-size: 9; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-wrap-width: 20; + text-min-distance: 10; + } + [zoom >= 11] { + text-size: 11; + } + [zoom >= 14] { + text-size: 15; + text-fill: @placenames-light; + } + } +} + +#placenames-small::suburb { + [place = 'suburb'][zoom >= 12] { + text-name: "[name]"; + text-size: 11; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-min-distance: 10; + [zoom >= 14] { + text-size: 14; + text-fill: @placenames-light; + } + } +} + +#placenames-small::village { + [place = 'village'] { + [zoom >=12] { + text-name: "[name]"; + text-size: 10; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-min-distance: 10; + [zoom >= 15] { + text-size: 13; + text-fill: @placenames-light; + } + } + } +} + +#placenames-small::hamlet { + [place = 'hamlet'], + [place = 'locality'], + [place = 'neighbourhood'], + [place = 'isolated_dwelling'], + [place = 'farm'] { + [zoom >= 14] { + text-name: "[name]"; + text-size: 9; + text-fill: @placenames; + text-face-name: @book-fonts; + text-halo-radius: 1.5; + text-min-distance: 10; + } + [zoom >= 16] { + text-size: 12; + text-fill: @placenames-light; + } + } +} diff --git a/power.mss b/power.mss new file mode 100644 index 0000000..e402c0d --- /dev/null +++ b/power.mss @@ -0,0 +1,34 @@ +#power-line { + [zoom >= 14] { + line-width: 1; + line-color: #777; + } + [zoom >= 16] { + line-width: 1.5; + } +} + +#power-minorline { + [zoom >= 16] { + line-width: 0.5; + line-color: #777; + } +} + +#power-towers { + [zoom >= 14] { + point-file: url('symbols/power_tower_3x3.png'); + } + [zoom >= 15] { + point-file: url('symbols/power_tower_5x5.png'); + } + [zoom >= 17] { + point-file: url('symbols/power_tower.png'); + } +} + +#power-poles { + [zoom >= 16] { + point-file: url('symbols/power_pole.png'); + } +} diff --git a/project.mml b/project.mml new file mode 100644 index 0000000..7082f69 --- /dev/null +++ b/project.mml @@ -0,0 +1,1757 @@ +{ + "bounds": [ + -180, + -85.05112877980659, + 180, + 85.05112877980659 + ], + "center": [ + 0, + 0, + 4 + ], + "format": "png", + "interactivity": false, + "minzoom": 0, + "maxzoom": 22, + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "Stylesheet": [ + "style.mss", + "shapefiles.mss", + "landcover.mss", + "water.mss", + "water-features.mss", + "roads.mss", + "power.mss", + "citywalls.mss", + "placenames.mss", + "buildings.mss", + "amenity-symbols.mss", + "stations.mss", + "amenity-points.mss", + "ferry-routes.mss", + "aerialways.mss", + "admin.mss", + "addressing.mss" + ], + "Layer": [ + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -85.051, + 179.99999692067183, + 83.66933299999998 + ], + "id": "world", + "class": "", + "Datasource": { + "file": "data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp", + "type": "shape" + }, + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "world" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -85.051, + 179.99999692067183, + 83.66933299999998 + ], + "id": "coast-poly", + "class": "", + "Datasource": { + "file": "data/land-polygons-split-3857/land_polygons.shp", + "type": "shape" + }, + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "coast-poly" + }, + { + "geometry": "polygon", + "extent": [ + -179.12960815429688, + -52.982724914179855, + 178.4432525634766, + 70.87402746981634 + ], + "id": "builtup", + "class": "", + "Datasource": { + "file": "data/world_boundaries/builtup_area.shp", + "type": "shape" + }, + "srs-name": "mercator", + "srs": "+proj=merc +datum=WGS84 +over", + "advanced": {}, + "name": "builtup" + }, + { + "geometry": "linestring", + "extent": [ + -140.99778, + -54.89681, + 141.03385176001382, + 70.16419 + ], + "id": "necountries", + "class": "", + "Datasource": { + "file": "data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp", + "type": "shape" + }, + "srs-name": "WGS84", + "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs", + "advanced": {}, + "name": "necountries" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way, religion,\ncoalesce (aeroway, amenity, landuse, leisure, military, \"natural\", power, tourism, highway) as feature from (\nselect way,\n('aeroway_' || (case when aeroway in ('apron', 'aerodrome') then aeroway else null end)) as aeroway,\n('amenity_' || (case when amenity in ('parking', 'university', 'college', 'school', 'hospital', 'kindergarten', 'grave_yard') then amenity else null end)) as amenity,\n('landuse_' || (case when landuse in ('quarry', 'vineyard', 'orchard', 'cemetery', 'grave_yard', 'residential', 'garages', 'field', 'meadow', 'grass', 'allotments', 'forest', 'farmyard', 'farm', 'farmland', 'recreation_ground', 'conservation', 'village_green', 'retail', 'industrial', 'railway', 'commercial', 'brownfield', 'landfill', 'greenfield', 'construction') then landuse else null end)) as landuse,\n('leisure_' || (case when leisure in ('swimming_pool', 'playground', 'park', 'recreation_ground', 'common', 'garden', 'golf_course', 'picnic_table') then leisure else null end)) as leisure,\n('military_' || (case when military in ('barracks', 'danger_area') then military else null end)) as military,\n('natural_' || (case when \"natural\" in ('field','beach','desert','heath','mud','grassland','wood','sand','scrub') then \"natural\" else null end)) as \"natural\",\n('power_' || (case when power in ('station','sub_station','generator') then power else null end)) as power,\n('tourism_' || (case when tourism in ('attraction', 'camp_site', 'caravan_site', 'picnic_site', 'zoo') then tourism else null end)) as tourism,\n('highway_' || (case when highway in ('services', 'rest_area') then highway else null end)) as highway,\ncase when religion in ('christian','jewish') then religion else 'INT-generic'::text end as religion\n from planet_osm_polygon\n where landuse is not null\n or leisure is not null\n or aeroway in ('apron','aerodrome')\n or amenity in ('parking','university','college','school','hospital','kindergarten','grave_yard')\n or military in ('barracks','danger_area')\n or \"natural\" in ('field','beach','desert','heath','mud','grassland','wood','sand','scrub')\n or power in ('station','sub_station','generator')\n or tourism in ('attraction','camp_site','caravan_site','picnic_site','zoo')\n or highway in ('services','rest_area')\n order by z_order,way_area desc\n ) as landcover\n) as features", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "", + "dbname": "gis" + }, + "id": "landcover", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "landcover" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way\nfrom planet_osm_line\nwhere man_made='cutline'\n) as landcover_line", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "landcover-line", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "landcover-line" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,leisure,\ncase when leisure='pitch' then 2\n when leisure='track' then 1\n else 0 end as prio\n from planet_osm_polygon\n where leisure in ('sports_centre','stadium','pitch','track')\n order by z_order,prio,way_area desc\n) as sports_grounds", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "sports-grounds", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "sports-grounds" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,waterway\n from planet_osm_line\n where waterway in ('stream','drain','ditch')\n and (tunnel is null or tunnel != 'yes')\n ) as water_lines_casing", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-lines-casing", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-lines-casing" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,waterway\n from planet_osm_line\n where waterway='river'\n ) as water_lines_low_zoom", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-lines-low-zoom", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-lines-low-zoom" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,\"natural\",waterway,landuse,name\n from planet_osm_polygon\n where (waterway in ('dock','mill_pond','riverbank','canal')\n or landuse in ('reservoir','water','basin')\n or \"natural\" in ('lake','water','land','glacier','mud'))\n and building is null\n order by z_order,way_area desc\n ) as water_areas", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-areas", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-areas" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,\"natural\"\n from planet_osm_polygon\n where \"natural\" in ('marsh','wetland') and building is null\n order by z_order,way_area desc\n ) as water_areas_overlay", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-areas-overlay", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-areas-overlay" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,waterway,lock,name,tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','wadi')\n and (bridge is null or bridge not in ('yes','true','1','aqueduct'))\n order by z_order\n ) as water_lines", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-lines", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-lines" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,name from planet_osm_line where waterway='dam') as dam", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "dam", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "dam" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_polygon where leisure ='marina') as marinas_area", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "marinas-area", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "marinas-area" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,man_made from planet_osm_polygon where man_made in ('pier','breakwater','groyne')) as piers_area", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "piers-area", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "piers-area" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,man_made from planet_osm_line where man_made in ('pier','breakwater','groyne')) as piers", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "piers", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "piers" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,waterway from planet_osm_point where waterway='lock_gate') as locks", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "locks", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "locks" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('permissive') then 'permissive'::text when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street','construction') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'abandoned', 'construction')) and (tunnel='yes' or tunnel='building_passage' or covered='yes') order by z_order) as tunnels", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "tunnels", + "class": "tunnels-fill tunnels-casing access directions", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "tunnels", + "properties": { + "group-by": "layernotnull" + } + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where \"historic\"='citywalls') as citywalls", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "citywalls", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "citywalls" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where \"historic\"='castle_walls') as castlewalls", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "castlewalls", + "class": "castlewalls", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "castlewalls" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_polygon where \"historic\"='castle_walls') as castlewalls_poly", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "castlewalls-poly", + "class": "castlewalls", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "castlewalls-poly" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,landuse,leisure\n from planet_osm_polygon\n where (landuse = 'military' or leisure='nature_reserve') and building is null\n ) as landuse_overlay", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "landuse-overlay", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "landuse-overlay" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way, barrier from planet_osm_line where barrier is not null) as line_barriers", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "line-barriers", + "class": "barriers", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "line-barriers" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,\"natural\",man_made from planet_osm_line where \"natural\" = 'cliff' or man_made = 'embankment') as cliffs", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "cliffs", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "cliffs" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,barrier from planet_osm_polygon where barrier is not null) as area_barriers", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "area-barriers", + "class": "barriers", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "area-barriers" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where route='ferry' ) as ferry_routes", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "ferry-routes", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "ferry-routes" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select distinct on (p.way) p.way as way,l.highway as int_tc_type\n from planet_osm_point p\n join planet_osm_line l\n on ST_DWithin(p.way,l.way,0.1)\n join (values\n ('tertiary',1),\n ('unclassified',2),\n ('residential',3),\n ('living_street',4),\n ('service',5)\n ) as v (highway,prio)\n on v.highway=l.highway\n where p.highway='turning_circle'\n order by p.way,v.prio\n ) as turning_circle_casing", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "turning-circle-casing", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "turning-circle-casing" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','track','path','platform') then highway else null end)), ('railway_' || (case when railway in ('platform') then railway else null end))) as feature from planet_osm_polygon\n where highway in ('residential','unclassified','pedestrian','service','footway','track','path','platform')\n or railway in ('platform')\n order by z_order,way_area desc) as highway_area_casing", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "highway-area-casing", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "highway-area-casing" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('permissive') then 'permissive'::text when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street','construction') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'abandoned', 'construction')) and (tunnel is null or not tunnel in ('yes','true','1')) and (bridge is null or not bridge in ('yes','true','1','viaduct')) order by z_order) as roads", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-casing", + "class": "roads-casing", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-casing" + }, + { + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,coalesce(('highway_' || (case when highway in ('residential','unclassified','pedestrian','service','footway','living_street','track','path','platform','services') then highway else null end)), ('railway_' || (case when railway in ('platform') then railway else null end)), (('aeroway_' || case when aeroway in ('runway','taxiway','helipad') then aeroway else null end))) as feature from planet_osm_polygon\n where highway in ('residential','unclassified','pedestrian','service','footway','living_street','track','path','platform','services')\n or railway in ('platform')\n or aeroway in ('runway','taxiway','helipad')\n order by z_order,way_area desc) as highway_area_fill", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "highway-area-fill", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "highway-area-fill" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,building,railway,amenity from planet_osm_polygon\n where railway='station'\n or building in ('station','supermarket')\n or amenity='place_of_worship'\n order by z_order,way_area desc) as buildings_lz", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "buildings-lz", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "buildings-lz" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,aeroway,\n case\n when building in ('residential','house','garage','garages','detached','terrace','apartments') then 'INT-light'::text\n else building\n end as building\n from planet_osm_polygon\n where (building is not null\n and building not in ('no','station','supermarket','planned')\n and (railway is null or railway != 'station')\n and (amenity is null or amenity != 'place_of_worship'))\n or aeroway = 'terminal'\n order by z_order,way_area desc) as buildings", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "buildings", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "buildings" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('permissive') then 'permissive'::text when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street','construction') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'abandoned', 'construction')) and (tunnel is null or not tunnel in ('yes','true','1')) and (bridge is null or not bridge in ('yes','true','1','viaduct')) order by z_order) as roads_fill", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-fill", + "class": "roads-fill access directions", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-fill" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select distinct on (p.way) p.way as way,l.highway as int_tc_type\n from planet_osm_point p\n join planet_osm_line l\n on ST_DWithin(p.way,l.way,0.1)\n join (values\n ('tertiary',1),\n ('unclassified',2),\n ('residential',3),\n ('living_street',4),\n ('service',5)\n ) as v (highway,prio)\n on v.highway=l.highway\n where p.highway='turning_circle'\n order by p.way,v.prio\n ) as turning_circle_fill", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "turning-circle-fill", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "turning-circle-fill" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,aerialway from planet_osm_line where aerialway is not null) as aerialways", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "aerialways", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "aerialways" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,coalesce(('highway_' || (case when highway is not null then highway else null end)), ('railway_' || (case when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('rail','tram','light_rail','funicular','narrow_gauge') then railway else null end))) as feature,tunnel\n from planet_osm_roads\n where highway is not null\n or (railway is not null and railway!='preserved' and (service is null or service not in ('spur','siding','yard')))\n order by z_order\n ) as roads_low_zoom", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-low-zoom", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-low-zoom" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,name from planet_osm_line where waterway='canal' and bridge in ('yes','true','1','aqueduct') order by z_order) as waterway_bridges", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "waterway-bridges", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "waterway-bridges" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard')) then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'abandoned', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('permissive') then 'permissive'::text when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street','construction') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction') or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge', 'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'abandoned', 'construction')) and bridge in ('yes','true','1','viaduct') and (layer is null or (layer in ('0','1','2','3','4','5'))) order by layernotnull, z_order) as bridges", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "bridges", + "class": "bridges-fill bridges-casing access directions", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "bridges", + "properties": { + "group-by": "layernotnull" + } + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,railway,bridge from planet_osm_line where railway='tram' and (tunnel is null or tunnel != 'yes')) as trams", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "trams", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "trams" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where highway='bus_guideway' and (tunnel is null or tunnel != 'yes')) as guideways", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "guideways", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "guideways" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('0','1','2','3','4')\n ) as admin_01234", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "admin-01234", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "admin-01234" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('5','6','7','8')\n ) as admin_5678", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "admin-5678", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "admin-5678" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,admin_level\n from planet_osm_roads\n where \"boundary\"='administrative'\n and admin_level in ('9', '10')\n ) as admin_other", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "admin-other", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "admin-other" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where \"power\"='minor_line') as power_minorline", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "power-minorline", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "power-minorline" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where \"power\"='line') as power_line", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "power-line", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "power-line" + }, + { + "geometry": "point", + "extent": [ + -179.58997888396897, + -85.051, + 179.38330358817018, + 82.48332318035943 + ], + "id": "nepopulated", + "class": "", + "Datasource": { + "file": "data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp", + "type": "shape", + "encoding": "windows-1252" + }, + "srs-name": "WGS84", + "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs", + "advanced": { + "encoding": "windows-1252" + }, + "name": "nepopulated" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,place,name,ref\n from planet_osm_point\n where place in ('country','state')\n ) as placenames_large", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "placenames-large", + "class": "country state", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "placenames-large" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,place,name,ref\n from planet_osm_point\n where place in ('city','town') and capital='yes'\n ) as placenames_capital", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "placenames-capital", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "placenames-capital" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,place,name\n from planet_osm_point\n where place in ('city','town')\n and (capital is null or capital != 'yes')\n ) as placenames_medium", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "placenames-medium", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "placenames-medium" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,place,name\n from planet_osm_point\n where place in ('suburb','village','hamlet','neighbourhood','locality','isolated_dwelling','farm')\n ) as placenames_small", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "placenames-small", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "placenames-small" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,name,railway,aerialway,disused\n from planet_osm_point\n where railway in ('station','halt','tram_stop','subway_entrance')\n or aerialway='station'\n ) as stations", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "stations", + "class": "stations", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "stations" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,name,railway,aerialway,disused\n from planet_osm_polygon\n where railway in ('station','halt','tram_stop')\n or aerialway='station'\n ) as stations_poly", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "stations-poly", + "class": "stations", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "stations-poly" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,name,way_area\n from planet_osm_polygon\n where \"natural\"='glacier' and building is null\n order by way_area desc\n ) as glaciers_text", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "glaciers-text", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "glaciers-text" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select *\n from planet_osm_point\n where aeroway in ('aerodrome','helipad')\n or barrier in ('bollard','gate','lift_gate','block')\n or highway in ('mini_roundabout','gate')\n or man_made in ('lighthouse','power_wind','windmill','mast')\n or (power='generator' and (\"generator:source\"='wind' or power_source='wind'))\n or \"natural\" in ('peak','volcano','spring','tree','cave_entrance')\n or railway='level_crossing'\n ) as amenity_symbols", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "amenity-symbols", + "class": "symbols", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "amenity-symbols" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select *\n from planet_osm_polygon\n where aeroway in ('aerodrome','helipad')\n or barrier in ('bollard','gate','lift_gate','block')\n or highway in ('mini_roundabout','gate')\n or man_made in ('lighthouse','power_wind','windmill','mast')\n or (power='generator' and (\"generator:source\"='wind' or power_source='wind'))\n or \"natural\" in ('peak','volcano','spring','tree')\n or railway='level_crossing'\n ) as amenity_symbols_poly", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "amenity-symbols-poly", + "class": "symbols", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "amenity-symbols-poly" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,amenity,shop,tourism,highway,man_made,access,religion,waterway,lock,historic,leisure\n from planet_osm_point\n where amenity is not null\n or shop is not null\n or tourism in ('alpine_hut','camp_site','picnic_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')\n or highway in ('bus_stop','traffic_signals','ford')\n or man_made in ('mast','water_tower')\n or historic in ('memorial','archaeological_site')\n or waterway='lock'\n or lock='yes'\n or leisure in ('playground','slipway','picnic_table')\n ) as amenity_points", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "amenity-points", + "class": "points", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "amenity-points" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,amenity,shop,tourism,highway,man_made,access,religion,waterway,lock,historic,leisure\n from planet_osm_polygon\n where amenity is not null\n or shop is not null\n or tourism in ('alpine_hut','camp_site','picnic_site','caravan_site','guest_house','hostel','hotel','motel','museum','viewpoint','bed_and_breakfast','information','chalet')\n or highway in ('bus_stop','traffic_signals')\n or man_made in ('mast','water_tower')\n or historic in ('memorial','archaeological_site')\n or leisure in ('playground', 'picnic_table')\n ) as amenity_points_poly", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "amenity-points-poly", + "class": "points", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "amenity-points-poly" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_point where power='tower') as power_towers", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "power-towers", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "power-towers" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_point where power='pole') as power_poles", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "power-poles", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "power-poles" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,highway,ref,char_length(ref) as length\n from planet_osm_roads\n where highway in ('motorway','trunk','primary','secondary')\n and ref is not null\n and char_length(ref) between 1 and 8\n ) as roads_text_ref_low_zoom", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-text-ref-low-zoom", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-text-ref-low-zoom" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,ref,name\n from planet_osm_point\n where highway='motorway_junction'\n ) as highway_junctions", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "highway-junctions", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "highway-junctions" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,coalesce(highway,aeroway) as highway,ref,char_length(ref) as length,\n case when bridge in ('yes','true','1') then 'yes'::text else 'no'::text end as bridge\n from planet_osm_line\n where (highway is not null or aeroway is not null)\n and ref is not null\n and char_length(ref) between 1 and 8\n ) as roads_text_ref", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-text-ref", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-text-ref" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way, highway, name\n from planet_osm_polygon\n where highway='pedestrian'\n and name is not null\n ) as roads_area_text_name", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-area-text-name", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-area-text-name" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way, highway, name\n from planet_osm_line\n where highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street', 'construction') \n and name is not null\n ) as roads_text_name", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "roads-text-name", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "roads-text-name" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way, highway, name\n from planet_osm_line\n where highway in ('bridleway', 'footway', 'cycleway', 'path', 'track', 'steps') \n and name is not null\n ) as paths_text_name", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "paths-text-name", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "paths-text-name" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,amenity,shop,access,leisure,landuse,man_made,\"natural\",place,tourism,ele,name,ref,military,aeroway,waterway,historic,NULL as way_area\n from planet_osm_point\n where amenity is not null\n or shop in ('supermarket','bakery','clothes','fashion','convenience','doityourself','hairdresser','department_store','butcher','car','car_repair','bicycle','florist')\n or leisure is not null\n or landuse is not null\n or tourism is not null\n or \"natural\" is not null\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or aeroway='gate'\n or waterway='lock'\n or historic in ('memorial','archaeological_site')\n ) as text", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "text", + "class": "text", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "text" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,aeroway,shop,access,amenity,leisure,landuse,man_made,\"natural\",place,tourism,NULL as ele,name,ref,military,waterway,historic,way_area\n from planet_osm_polygon\n where amenity is not null\n or shop in ('supermarket','bakery','clothes','fashion','convenience','doityourself','hairdresser','department_store', 'butcher','car','car_repair','bicycle')\n or leisure is not null\n or landuse is not null\n or tourism is not null\n or \"natural\" is not null\n or man_made in ('lighthouse','windmill')\n or place='island'\n or military='danger_area'\n or historic in ('memorial','archaeological_site')\n ) as text_poly", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "text-poly", + "class": "text", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "text-poly" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select name, way, way_area from planet_osm_polygon where building is not null and building not in ('no','station','supermarket')) as building_text", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "building-text", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "building-text" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way from planet_osm_line where \"addr:interpolation\" is not null) as interpolation", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "interpolation", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "interpolation" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,\"addr:housenumber\" from planet_osm_polygon where \"addr:housenumber\" is not null and building is not null\n union\n select way,\"addr:housenumber\" from planet_osm_point where \"addr:housenumber\" is not null\n ) as housenumbers", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "housenumbers", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "housenumbers" + }, + { + "geometry": "point", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,\"addr:housename\" from planet_osm_polygon where \"addr:housename\" is not null and building is not null\n union\n select way,\"addr:housename\" from planet_osm_point where \"addr:housename\" is not null\n ) as housenames", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "housenames", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "housenames" + }, + { + "geometry": "linestring", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": " (select way,waterway,lock,name,tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','wadi')\n order by z_order\n ) as water_lines_text", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "water-lines-text", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "water-lines-text" + }, + { + "extent": [ + -179.99999692067183, + -84.96651228427098, + 179.99999692067183, + 84.96651228427099 + ], + "Datasource": { + "type": "postgis", + "table": "(select way, name, admin_level from planet_osm_polygon where \"boundary\" = 'administrative' and admin_level in ('0','1','2','3','4','5','6','7','8','9','10')) as admin_text", + "key_field": "", + "geometry_field": "way", + "extent_cache": "custom", + "extent": "-20037508,-19929239,20037508,19929239", + "dbname": "gis" + }, + "id": "admin-text", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "admin-text", + "geometry": "linestring" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,way_area,name,boundary from planet_osm_polygon where boundary='national_park' and building is null) as national_park_boundaries", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "national-park-boundaries", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "national-park-boundaries" + }, + { + "geometry": "polygon", + "extent": [ + -179.99999692067183, + -84.96651228427099, + 179.99999692067183, + 84.96651228427098 + ], + "Datasource": { + "type": "postgis", + "table": "(select way,name,tourism from planet_osm_polygon where tourism='theme_park') as theme_park", + "extent": "-20037508,-19929239,20037508,19929239", + "key_field": "", + "geometry_field": "way", + "dbname": "gis" + }, + "id": "theme-park", + "class": "", + "srs-name": "900913", + "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over", + "advanced": {}, + "name": "theme-park" + } + ], + "scale": 1, + "metatile": 2, + "name": "OpenStreetMap Carto", + "description": "A faithful reimplementation of the standard OpenStreetMap style" +} diff --git a/roads.mss b/roads.mss new file mode 100644 index 0000000..a841e93 --- /dev/null +++ b/roads.mss @@ -0,0 +1,2449 @@ +/* For the main linear features, such as roads and railways. */ + +@motorway-fill: #89a4cb; +@trunk-fill: #94d494; +@trunk-fill-alternative: #97d397; +@primary-fill: #dd9f9f; +@secondary-fill: #f9d6aa; +@tertiary-fill: #f8f8ba; +@residential-fill: #ffffff; +@service-fill: #ffffff; +@living-street-fill: #ccc; +@pedestrian-fill: #ededed; +@road-fill: #ddd; +@path-fill: black; +@footway-fill: salmon; +@steps-fill: @footway-fill; +@cycleway-fill: blue; +@bridleway-fill: green; +@track-fill: #996600; +@track-grade1-fill: #b37700; +@track-grade2-fill: #a87000; +@aeroway-fill: #bbc; +@runway-fill: @aeroway-fill; +@taxiway-fill: @aeroway-fill; +@helipad-fill: @aeroway-fill; + +@default-casing: white; +@motorway-casing: #7788a1; +@trunk-casing: #7eae7e; +@primary-casing: #c57b7e; +@secondary-casing: #cca16a; +@tertiary-casing: #c6c68a; +@residential-casing: #bbb; +@service-casing: #999; +@living-street-casing: @default-casing; +@living-street-tunnel-casing: #bbb; +@pedestrian-casing: grey; +@path-casing: @default-casing; +@footway-casing: @default-casing; +@steps-casing: @default-casing; +@cycleway-casing: @default-casing; +@bridleway-casing: @default-casing; +@track-casing: @default-casing; + +@residential-construction: #aaa; +@service-construction: #aaa; + +@permissive-marking: #cf9; +@destination-marking: #c2e0ff; +@private-marking: #efa9a9; + +@tunnel-casing: grey; +@bridge-casing: black; + +@motorway-tunnel-fill: lighten(@motorway-fill, 25%); +@trunk-tunnel-fill: lighten(@trunk-fill, 10%); +@primary-tunnel-fill: lighten(@primary-fill, 10%); +@secondary-tunnel-fill: lighten(@secondary-fill, 5%); +@tertiary-tunnel-fill: lighten(@tertiary-fill, 5%); +@residential-tunnel-fill: lighten(@residential-fill, 10%); +@living-street-tunnel-fill: lighten(@living-street-fill, 10%); + +@motorway-width-z12: 3; +@motorway-link-width-z12: 1.5; +@trunk-width-z12: 3.5; +@primary-width-z12: 3.5; +@secondary-width-z12: 3; + +@motorway-width-z13: 6.5; +@motorway-link-width-z13: 4.5; +@trunk-width-z13: 8.5; +@primary-width-z13: 8.5; +@secondary-width-z13: 9.5; +@tertiary-width-z13: 6; +@residential-width-z13: 3; + +@tertiary-width-z14: 7.5; +@residential-width-z14: 4.5; + +@motorway-width-z15: 10.3; +@motorway-link-width-z15: 7.8; +@trunk-width-z15: 12.8; +@primary-width-z15: 12.8; +@secondary-width-z15: 12.8; +@tertiary-width-z15: 11.2; +@tertiary-link-width-z15: 11; +@residential-width-z15: 8.3; + +@residential-width-z16: 11.2; + +@motorway-width-z17: 13.5; // shouldn't be narrower than trunk! +@motorway-link-width-z17: 11.5; +@trunk-width-z17: 18; +@primary-width-z17: 18; +@secondary-width-z17: 18; +@tertiary-width-z17: 15.5; +@tertiary-link-width-z17: 16; +@residential-width-z17: 15.5; + +@casing-width-z12: 0.5; +@casing-width-z13: 0.75; +@residential-casing-width-z13: 0.5; +@casing-width-z14: 0.75; +@casing-width-z15: 0.9; +@tertiary-link-casing-width-z15: 0.8; +@casing-width-z16: 0.9; +@casing-width-z17: 1.25; +@tertiary-link-casing-width-z17: 1.5; + +@bridge-casing-width-z12: 0.5; +@bridge-casing-width-z13: 0.5; +@bridge-casing-width-z14: 0.5; +@bridge-casing-width-z15: 0.75; +@bridge-casing-width-z16: 0.75; +@bridge-casing-width-z17: 0.75; + +.roads-casing, .bridges-casing, .tunnels-casing { + ::casing_links { + [feature = 'highway_raceway'] { + [zoom >= 12] { + line-color: pink; + line-width: 1.2; + line-join: round; + line-cap: round; + } + [zoom >= 13] { line-width: 4; } + [zoom >= 15] { line-width: 7; } + } + + [feature = 'highway_motorway_link'] { + [zoom >= 12] { + line-color: @motorway-casing; + line-width: @motorway-link-width-z12; + [zoom >= 13] { line-width: @motorway-link-width-z13; } + [zoom >= 15] { line-width: @motorway-link-width-z15; } + [zoom >= 17] { line-width: @motorway-link-width-z17; } + .roads-casing { + line-join: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_trunk_link'] { + [zoom >= 12] { + line-width: @trunk-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17; } + line-color: @trunk-casing; + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_primary_link'] { + [zoom >= 12] { + line-color: @primary-casing; + line-width: @primary-width-z12; + [zoom >= 13] { line-width: @primary-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17; } + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_secondary_link'] { + [zoom >= 12] { + line-color: @secondary-casing; + line-width: @secondary-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17; } + .roads-casing { + line-cap: round; + line-join: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 13] { + line-color: @bridge-casing; + line-join: round; + } + } + } + } + + [feature = 'highway_tertiary_link'] { + [zoom >= 13] { + line-color: @tertiary-casing; + line-width: @tertiary-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14; } + [zoom >= 15] { line-width: @tertiary-link-width-z15; } + [zoom >= 17] { line-width: @tertiary-link-width-z17; } + .roads-casing { + line-cap: round; + line-join: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 14] { + line-color: @bridge-casing; + line-join: round; + } + } + } + } + } + + ::casing { + [zoom >= 12] { + [feature = 'highway_motorway'] { + line-width: @motorway-width-z12; + [zoom >= 13] { line-width: @motorway-width-z13; } + [zoom >= 15] { line-width: @motorway-width-z15; } + [zoom >= 17] { line-width: @motorway-width-z17; } + line-color: @motorway-casing; + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_trunk'] { + [zoom >= 12] { + line-color: @trunk-casing; + line-width: @trunk-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17; } + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_primary'] { + [zoom >= 12] { + line-color: @primary-casing; + line-width: @primary-width-z12; + [zoom >= 13] { line-width: @primary-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17; } + .roads-casing { + line-join: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + line-join: round; + [zoom >= 13] { line-color: @bridge-casing; } + } + } + } + + [feature = 'highway_secondary'] { + [zoom >= 12] { + line-color: @secondary-casing; + line-width: @secondary-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17; } + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 13] { + line-color: @bridge-casing; + line-join: round; + } + } + } + } + + [feature = 'highway_tertiary'] { + [zoom >= 13] { + line-color: @tertiary-casing; + line-width: @tertiary-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14; } + [zoom >= 15] { line-width: @tertiary-width-z15; } + [zoom >= 17] { line-width: @tertiary-width-z17; } + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 14] { + line-color: @bridge-casing; + line-join: round; + } + } + } + } + + [feature = 'highway_residential'], + [feature = 'highway_unclassified'], + [feature = 'highway_road'] { + [zoom >= 13] { + line-color: @residential-casing; + line-width: @residential-casing-width-z13; + [zoom >= 14] { line-width: @residential-width-z14; } + [zoom >= 15] { line-width: @residential-width-z15; } + [zoom >= 16] { line-width: @residential-width-z16; } + [zoom >= 17] { line-width: @residential-width-z17; } + .roads-casing { + line-join: round; + line-cap: round; + } + .tunnels-casing { + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 14] { + line-color: @bridge-casing; + line-join: round; + } + } + } + } + + [feature = 'highway_service'] { + [zoom >= 14][service = 'INT-normal'], + [zoom >= 16][service = 'INT-minor'] { + line-color: @service-casing; + [service = 'INT-normal'] { + .roads-casing, .tunnels-casing { + line-width: 2.5; + [zoom >= 16] { line-width: 7; } + } + .bridges-casing { + line-width: 3; + [zoom >= 16] { line-width: 8; } + } + } + [service = 'INT-minor'] { + line-width: 4; + } + line-join: round; + line-cap: round; + .tunnels-casing { line-dasharray: 4,2; } + .bridges-casing { + line-color: @bridge-casing; + line-join: round; + line-cap: butt; + } + } + } + + [feature = 'highway_pedestrian'] { + [zoom >= 13] { + line-join: round; + .roads-casing, .tunnels-casing { + line-width: 2; + line-color: @pedestrian-casing; + line-cap: round; + [zoom >= 14] { line-width: 3.6; } + [zoom >= 15] { line-width: 6.5; } + [zoom >= 16] { line-width: 9; } + .tunnels-casing { + line-dasharray: 4,2; + } + } + .bridges-casing { + line-width: 2.2; + line-color: @bridge-casing; + [zoom >= 14] { line-width: 3.8; } + [zoom >= 15] { line-width: 7; } + [zoom >= 16] { line-width: 9.5; } + } + } + } + + [feature = 'highway_living_street'] { + [zoom >= 13] { + line-width: 2.5; + line-color: @living-street-casing; + [zoom >= 14] { line-width: 4; } + [zoom >= 15] { line-width: 6; } + [zoom >= 16] { line-width: 9; } + [zoom >= 17] { line-width: 14.5; } + .roads-casing { + line-cap: round; + line-join: round; + } + .tunnels-casing { + line-color: @living-street-tunnel-casing; + line-dasharray: 4,2; + } + .bridges-casing { + [zoom >= 14] { + line-color: @bridge-casing; + [zoom >= 15] { line-width: 6.2; } + [zoom >= 16] { line-width: 8.9; } + [zoom >= 17] { line-width: 15; } + } + } + } + } + + [feature = 'highway_steps'] { + .bridges-casing { + [zoom >= 14] { + line-width: 6.5; + [zoom >= 15] { line-width: 9.5; } + line-color: @bridge-casing; + line-join: round; + } + } + } + + [feature = 'highway_bridleway'], + [feature = 'highway_path'][horse = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5.5; + line-color: @bridge-casing; + line-join: round; + } + } + } + + [feature = 'highway_footway'], + [feature = 'highway_path'][foot = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 6; + line-color: @bridge-casing; + line-join: round; + } + } + } + + [feature = 'highway_cycleway'], + [feature = 'highway_path'][bicycle = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5.5; + line-color: @bridge-casing; + line-join: round; + } + } + } + + [feature = 'highway_path'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4; + line-color: @bridge-casing; + line-join: round; + } + } + } + + [feature = 'highway_track'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4.5; + line-color: @bridge-casing; + line-join: round; + [tracktype = 'grade1'] { + line-width: 5; + } + } + } + } + + [feature = 'railway_subway'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5.5; + line-color: black; + line-join: round; + } + } + } + + [feature = 'railway_light_rail'], + [feature = 'railway_narrow_gauge'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5.5; + line-color: #555; + line-join: round; + } + } + } + + [feature = 'railway_rail'], + [feature = 'railway_preserved'], + [feature = 'railway_monorail'][zoom >= 14] { + .bridges-casing { + [zoom >= 13] { + line-width: 6.5; + line-color: black; + line-join: round; + } + } + } + + [feature = 'railway_INT-spur-siding-yard'] { + .bridges-casing { + [zoom >= 13] { + line-width: 5.7; + line-color: black; + line-join: round; + } + } + } + + [feature = 'railway_disused'], + [feature = 'railway_abandoned'], + [feature = 'railway_construction'], + [feature = 'railway_funicular'][zoom >= 14], + [feature = 'railway_miniature'][zoom >= 15], + [feature = 'railway_INT-preserved-ssy'][zoom >= 14] { + .bridges-casing { + [zoom >= 13] { + line-width: 6; + line-color: black; + line-join: round; + } + } + } + + [feature = 'aeroway_runway'] { + .bridges-casing { + [zoom >= 14] { + line-width: 19; + line-color: black; + line-join: round; + } + } + } + + [feature = 'aeroway_taxiway'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5; + line-color: black; + line-join: round; + [zoom >= 15] { line-width: 7; } + } + } + } + } + + ::bridges_background { + [feature = 'highway_bridleway'], + [feature = 'highway_path'][horse = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4; + line-color: @bridleway-casing; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'highway_footway'], + [feature = 'highway_path'][foot = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4.5; + line-color: @footway-casing; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'highway_cycleway'], + [feature = 'highway_path'][bicycle = 'designated'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4; + line-color: @cycleway-casing; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'highway_steps'] { + .bridges-casing { + [zoom >= 14] { + line-width: 5; + [zoom >= 15] { line-width: 8; } + line-color: @steps-casing; + line-join: round; + } + } + } + + [feature = 'highway_path'] { + .bridges-casing { + [zoom >= 14] { + line-width: 2.5; + line-color: @path-casing; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'highway_track'] { + .bridges-casing { + [zoom >= 14] { + line-width: 3; + line-color: @track-casing; + line-join: round; + line-cap: round; + [tracktype = 'grade1'] { line-width: 3.5; } + } + } + } + + [feature = 'railway_rail'][zoom >= 13], + [feature = 'railway_preserved'][zoom >= 14], + [feature = 'railway_monorail'][zoom >= 14] { + .bridges-casing { + line-width: 5; + line-color: white; + line-join: round; + } + } + + [feature = 'railway_INT-spur-siding-yard'] { + .bridges-casing { + [zoom >= 13] { + line-width: 4; + line-color: white; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'railway_disused'], + [feature = 'railway_abandoned'], + [feature = 'railway_construction'], + [feature = 'railway_funicular'][zoom >= 14], + [feature = 'railway_miniature'][zoom >= 15], + [feature = 'railway_INT-preserved-ssy'][zoom >= 14] { + .bridges-casing { + [zoom >= 13] { + line-width: 4.5; + line-color: white; + line-join: round; + line-cap: round; + } + } + } + + [feature = 'railway_subway'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4; + line-color: white; + } + } + } + + [feature = 'railway_light_rail'], + [feature = 'railway_narrow_gauge'] { + .bridges-casing { + [zoom >= 14] { + line-width: 4; + line-color: white; + } + } + } + } +} + +.roads-fill,.bridges-fill,.tunnels-fill { + ::fill_links { + [feature = 'highway_motorway_link'] { + [zoom >= 12] { + line-width: @motorway-link-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @motorway-fill; + } + .tunnels-fill { + line-color: @motorway-tunnel-fill; + } + .bridges-fill { + line-width: @motorway-link-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @motorway-link-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @motorway-link-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @motorway-link-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_trunk_link'] { + [zoom >= 12] { + line-width: @trunk-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @trunk-fill; + } + .tunnels-fill { + line-color: @trunk-tunnel-fill; + } + .bridges-fill { + line-width: @trunk-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_primary_link'] { + [zoom >= 12] { + line-width: @primary-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @primary-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @primary-fill; + } + .tunnels-fill { + line-color: @primary-tunnel-fill; + } + .bridges-fill { + line-width: @primary-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @primary-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_secondary_link'] { + [zoom >= 12] { + line-width: @secondary-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @secondary-fill; + } + .tunnels-fill { + line-color: @secondary-tunnel-fill; + } + .bridges-fill { + line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_tertiary_link'] { + [zoom >= 13] { + line-width: @tertiary-width-z13 - 2 * @casing-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @casing-width-z14; } + [zoom >= 15] { line-width: @tertiary-link-width-z15 - 2 * @tertiary-link-casing-width-z15; } + [zoom >= 17] { line-width: @tertiary-link-width-z17 - 2 * @tertiary-link-casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @tertiary-fill; + } + .tunnels-fill { + line-color: @tertiary-tunnel-fill; + } + .bridges-fill { + line-width: @tertiary-width-z13 - 2 * @bridge-casing-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @bridge-casing-width-z14; } + [zoom >= 15] { line-width: @tertiary-link-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @tertiary-link-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + } + + ::fill { + + /* + * The construction rules for small roads are strange, since if construction is null its assumed that + * it's a more major road. The line-width = 0 could be removed by playing with the query to set a construction + * string for non-small roads. + * + * Also note that these rules are quite sensitive to re-ordering, since the instances end up swapping round + * (and then the dashes appear below the fills). See + * https://github.com/gravitystorm/openstreetmap-carto/issues/23 + * https://github.com/mapbox/carto/issues/235 + * https://github.com/mapbox/carto/issues/237 + */ + [feature = 'highway_proposed'], + [feature = 'highway_construction'] { + [zoom >= 12] { + line-width: 2; + line-color: #9cc; + + [construction = 'motorway'], + [construction = 'motorway_link'] { + line-color: @motorway-fill; + } + [construction = 'trunk'], + [construction = 'trunk_link'] { + line-color: @trunk-fill; + } + [construction = 'primary'], + [construction = 'primary_link'] { + line-color: @primary-fill; + } + [construction = 'secondary'], + [construction = 'secondary_link'] { + line-color: @secondary-fill; + } + [construction = 'tertiary'], + [construction = 'tertiary_link'] { + line-color: @tertiary-fill; + [zoom < 13] { + line-width: 0; + b/line-width: 0; + } + } + [construction = 'residential'], + [construction = 'unclassified'], + [construction = 'living_street'] { + line-color: @residential-construction; + [zoom < 13] { + line-width: 0; + b/line-width: 0; + } + } + [construction = 'service'] { + line-color: @service-construction; + [zoom < 14] { + line-width: 0; + b/line-width: 0; + } + } + b/line-width: 2; + b/line-dasharray: 4,2; + b/line-color: white; + [zoom >= 13] { + line-width: 4; + b/line-width: 3.5; + b/line-dasharray: 6,4; + } + [zoom >= 16] { + line-width: 8; + b/line-width: 7; + b/line-dasharray: 8,6; + } + [construction = 'cycleway'] { + [zoom < 14] { + line-width: 0; + b/line-width: 0; + } + line-color: white; + line-width: 3; + line-opacity: 0.4; + b/line-width: 1.2; + b/line-color: #69f; + b/line-dasharray: 2,6; + } + } + } + + [feature = 'highway_motorway'] { + [zoom >= 12] { + line-width: @motorway-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @motorway-fill; + } + .tunnels-fill { + line-color: @motorway-tunnel-fill; + } + .bridges-fill { + line-width: @motorway-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @motorway-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @motorway-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @motorway-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_trunk'] { + [zoom >= 12] { + line-width: @trunk-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @trunk-fill; + } + .tunnels-fill { + line-color: @trunk-tunnel-fill; + } + .bridges-fill { + line-width: @trunk-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @trunk-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @trunk-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @trunk-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_primary'] { + [zoom >= 12] { + line-width: @primary-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @primary-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @primary-fill; + } + .tunnels-fill { + line-color: @primary-tunnel-fill; + } + .bridges-fill { + line-width: @primary-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @primary-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @primary-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @primary-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_secondary'] { + [zoom >= 12] { + line-width: @secondary-width-z12 - 2 * @casing-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @casing-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @secondary-fill; + } + .tunnels-fill { + line-color: @secondary-tunnel-fill; + } + .bridges-fill { + line-width: @secondary-width-z12 - 2 * @bridge-casing-width-z12; + [zoom >= 13] { line-width: @secondary-width-z13 - 2 * @bridge-casing-width-z13; } + [zoom >= 15] { line-width: @secondary-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @secondary-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_tertiary'] { + [zoom >= 13] { + line-width: @tertiary-width-z13 - 2 * @casing-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @casing-width-z14; } + [zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @casing-width-z15; } + [zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @tertiary-fill; + } + .tunnels-fill { + line-color: @tertiary-tunnel-fill; + } + .bridges-fill { + line-width: @tertiary-width-z13 - 2 * @bridge-casing-width-z13; + [zoom >= 14] { line-width: @tertiary-width-z14 - 2 * @bridge-casing-width-z14; } + [zoom >= 15] { line-width: @tertiary-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 17] { line-width: @tertiary-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_residential'], + [feature = 'highway_unclassified'] { + [zoom >= 13] { + line-width: @residential-width-z13 - 2 * @casing-width-z13; + [zoom >= 14] { line-width: @residential-width-z14 - 2 * @casing-width-z14; } + [zoom >= 15] { line-width: @residential-width-z15 - 2 * @casing-width-z15; } + [zoom >= 16] { line-width: @residential-width-z16 - 2 * @casing-width-z16; } + [zoom >= 17] { line-width: @residential-width-z17 - 2 * @casing-width-z17; } + .roads-fill, .bridges-fill { + line-color: @residential-fill; + } + .tunnels-fill { + line-color: @residential-tunnel-fill; + } + .bridges-fill { + line-width: @residential-width-z13 - 2 * @bridge-casing-width-z13; + [zoom >= 14] { line-width: @residential-width-z14 - 2 * @bridge-casing-width-z14; } + [zoom >= 15] { line-width: @residential-width-z15 - 2 * @bridge-casing-width-z15; } + [zoom >= 16] { line-width: @residential-width-z16 - 2 * @bridge-casing-width-z16; } + [zoom >= 17] { line-width: @residential-width-z17 - 2 * @bridge-casing-width-z17; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_tertiary'][zoom >= 10][zoom < 13], + [feature = 'highway_residential'][zoom >= 10][zoom < 13], + [feature = 'highway_unclassified'][zoom >= 10][zoom < 13], + [feature = 'highway_road'][zoom >= 10][zoom < 13], + [feature = 'highway_living_street'][zoom >= 12][zoom < 13] { + line-width: 1; + line-color: @residential-casing; + } + + [feature = 'highway_road'] { + [zoom >= 13] { + .roads-fill, .bridges-fill { + line-color: @road-fill; + } + .tunnels-fill { + line-color: @residential-tunnel-fill; + } + .roads-fill { + line-width: 2; + [zoom >= 14] { line-width: 3; } + [zoom >= 15] { line-width: 6.5; } + [zoom >= 16] { line-width: 9.4; } + [zoom >= 17] { line-width: 13; } + } + .bridges-fill { + line-width: 3.5; + [zoom >= 14] { line-width: 7.5; } + [zoom >= 15] { line-width: 9.5; } + [zoom >= 17] { line-width: 14; } + } + .tunnels-fill { + line-width: 2; + [zoom >= 14] { line-width: 3.5; } + [zoom >= 15] { line-width: 9.5; } + [zoom >= 17] { line-width: 14; } + } + line-cap: round; + line-join: round; + } + } + + [feature = 'highway_living_street'] { + [zoom >= 13] { + line-width: 1.5; + line-color: @living-street-fill; + line-join: round; + line-cap: round; + [zoom >= 14] { line-width: 3; } + [zoom >= 15] { line-width: 4.7; } + [zoom >= 16] { line-width: 7.4; } + [zoom >= 17] { line-width: 13; } + } + .tunnels-fill { + line-color: @living-street-tunnel-fill; + } + } + + [feature = 'highway_service'] { + [zoom >= 13][service = 'INT-normal'] { + line-width: 1; + line-color: @residential-casing; + } + [zoom >= 14][service = 'INT-normal'], + [zoom >= 16][service = 'INT-minor'] { + line-color: @service-fill; + [service = 'INT-normal'] { + line-width: 2; + [zoom >= 16] { line-width: 6; } + } + [service = 'INT-minor'] { + line-width: 3; + } + line-join: round; + line-cap: round; + } + } + + [feature = 'highway_pedestrian'] { + [zoom >= 13] { + line-color: @pedestrian-fill; + line-width: 1.5; + [zoom >= 14] { line-width: 3; } + [zoom >= 15] { line-width: 5.5; } + [zoom >= 16] { line-width: 8; } + line-join: round; + line-cap: round; + } + } + + [feature = 'highway_platform'] { + [zoom >= 16] { + line-join: round; + line-width: 6; + line-color: grey; + line-cap: round; + b/line-width: 4; + b/line-color: #bbbbbb; + b/line-cap: round; + b/line-join: round; + } + } + + [feature = 'highway_steps'] { + [zoom >= 13][zoom < 15] { + .roads-fill, .tunnels-fill { + line-width: 6; + line-color: @steps-casing; + line-opacity: 0.4; + } + b/line-width: 2; + b/line-color: @steps-fill; + b/line-dasharray: 1,3; + b/line-cap: round; + b/line-join: round; + } + } + + [feature = 'highway_steps'] { + [zoom >= 15] { + line-width: 5.0; + line-color: @steps-fill; + line-dasharray: 2,1; + } + } + + [feature = 'highway_bridleway'], + [feature = 'highway_path'][horse = 'designated'] { + [zoom >= 13] { + .tunnels-fill { + tunnelcasing/line-width: 5; + tunnelcasing/line-color: @tunnel-casing; + tunnelcasing/line-dasharray: 4,2; + } + .roads-fill, .tunnels-fill { + background/line-width: 3; + background/line-color: @bridleway-casing; + background/line-cap: round; + background/line-join: round; + .roads-fill { background/line-opacity: 0.4; } + } + line/line-color: @bridleway-fill; + line/line-dasharray: 4,2; + .roads-fill { + line/line-width: 1.2; + } + .bridges-fill { + [zoom >= 13] { line/line-width: 1.2; } + [zoom >= 14] { line/line-width: 1.5; } + } + .tunnels-fill { + line/line-width: 2; + line/line-opacity: 0.5; + line/line-join: round; + line/line-cap: round; + } + } + } + + [feature = 'highway_footway'], + [feature = 'highway_path'][foot = 'designated'] { + [zoom >= 13] { + .tunnels-fill { + tunnelcasing/line-width: 5.5; + tunnelcasing/line-color: @tunnel-casing; + tunnelcasing/line-dasharray: 4,2; + } + .roads-fill, .tunnels-fill { + background/line-color: @footway-casing; + background/line-cap: round; + background/line-join: round; + .roads-fill { background/line-width: 4; } + .tunnels-fill { background/line-width: 3.5; } + .roads-fill { background/line-opacity: 0.4; } + } + line/line-color: @footway-fill; + line/line-dasharray: 1,3; + line/line-join: round; + line/line-cap: round; + .roads-fill { + line/line-width: 1.5; + } + .bridges-fill { + [zoom >= 13] { line/line-width: 1.5; } + [zoom >= 14] { line/line-width: 2; } + } + .tunnels-fill { + line/line-width: 2.5; + line/line-opacity: 0.5; + } + } + } + + [feature = 'highway_cycleway'], + [feature = 'highway_path'][bicycle = 'designated'] { + [zoom >= 13] { + .tunnels-fill { + tunnelcasing/line-width: 5.5; + tunnelcasing/line-color: @tunnel-casing; + tunnelcasing/line-dasharray: 4,2; + } + .roads-fill, .tunnels-fill { + background/line-color: @cycleway-casing; + background/line-cap: round; + background/line-join: round; + background/line-width: 3; + .roads-fill { background/line-opacity: 0.4; } + } + line/line-color: @cycleway-fill; + line/line-dasharray: 1,3; + line/line-join: round; + line/line-cap: round; + .roads-fill { + line/line-width: 1.2; + } + .bridges-fill { + [zoom >= 13] { line/line-width: 1.2; } + [zoom >= 14] { line/line-width: 1.5; } + } + .tunnels-fill { + line/line-width: 2; + line/line-opacity: 0.5; + } + } + } + + /* + * The above defininitions should override this when needed + * given the specitivity precedence. + */ + [feature = 'highway_path'] { + [zoom >= 13] { + .tunnels-fill { + tunnelcasing/line-width: 5.5; + tunnelcasing/line-color: @tunnel-casing; + tunnelcasing/line-dasharray: 4,2; + } + .roads-fill, .tunnels-fill { + background/line-color: @path-casing; + background/line-cap: round; + background/line-join: round; + background/line-width: 3; + .roads-fill { background/line-opacity: 0.4; } + } + line/line-width: 0.5; + line/line-color: @path-fill; + line/line-dasharray: 6,3; + line/line-join: round; + line/line-cap: round; + .tunnels-fill { + line/line-width: 2; + line/line-opacity: 0.5; + } + } + } + + [feature = 'highway_track'] { + [zoom >= 13] { + .tunnels-fill[zoom >= 14] { + tunnelcasing/line-width: 4.5; + tunnelcasing/line-color: @tunnel-casing; + tunnelcasing/line-dasharray: 4,2; + } + + .roads-fill, .tunnels-fill { + [zoom >= 13] { background/line-width: 2.5; } + [zoom >= 14] { background/line-width: 3; } + .roads-fill { background/line-opacity: 0.4; } + background/line-color: @track-casing; + background/line-join: round; + background/line-cap: round; + } + + line/line-color: @track-fill; + line/line-dasharray: 3,4; + line/line-cap: round; + line/line-join: round; + [zoom >= 13] { line/line-width: 1.2; } + [zoom >= 14] { line/line-width: 1.5; } + .roads-fill, .bridges-fill { line/line-opacity: 0.8; } + .tunnels-fill[zoom >= 14] { line/line-opacity: 0.5; } + + [zoom >= 14] { + [tracktype = 'grade1'] { + .roads-fill, .tunnels-fill { background/line-width: 3.5; } + line/line-width: 2; + line/line-color: @track-grade1-fill; + line/line-dasharray: 100,0; /* i.e. none, see https://github.com/mapbox/carto/issues/214 */ + .roads-fill, .bridges-fill { line/line-opacity: 0.7; } + } + [tracktype = 'grade2'] { + line/line-color: @track-grade2-fill; + line/line-dasharray: 9,4; + } + [tracktype = 'grade4'] { + line/line-width: 2; + line/line-dasharray: 4,7,1,5; + } + [tracktype = 'grade5'] { + line/line-width: 2; + line/line-dasharray: 1,5; + } + } + } + } + + [feature = 'railway_rail'], + [feature = 'railway_INT-spur-siding-yard'] { + [zoom >= 13] { + .roads-fill, .bridges-fill { + dark/line-color: #999999; + [feature = 'railway_rail'] { dark/line-width: 3; } + [feature = 'railway_INT-spur-siding-yard'] { dark/line-width: 2; } + [feature = 'railway_rail'] { dark/line-join: round; } + [feature = 'railway_INT-spur-siding-yard'] .bridges-fill { dark/line-join: round; } + light/line-color: white; + [feature = 'railway_rail'] { light/line-width: 1; } + [feature = 'railway_INT-spur-siding-yard'] { light/line-width: 0.8; } + [feature = 'railway_rail'] { light/line-dasharray: 8,12; } + [feature = 'railway_INT-spur-siding-yard'] { light/line-dasharray: 0,8,11,1; } + light/line-join: round; + [feature = 'railway_rail'][zoom >= 14] { light/line-dasharray: 0,11,8,1; } + } + .tunnels-fill { + a/line-width: 3; + b/line-width: 3; + c/line-width: 3; + d/line-width: 3; + e/line-width: 3; + f/line-width: 3; + g/line-width: 3; + a/line-color: #ffffff; + b/line-color: #fdfdfd; + c/line-color: #ececec; + d/line-color: #cacaca; + e/line-color: #afafaf; + f/line-color: #a1a1a1; + g/line-color: #9b9b9b; + a/line-dasharray: 1,9; + b/line-dasharray: 0,1,1,8; + c/line-dasharray: 0,2,1,7; + d/line-dasharray: 0,3,1,6; + e/line-dasharray: 0,4,1,5; + f/line-dasharray: 0,5,1,4; + g/line-dasharray: 0,6,1,3; + a/line-join: round; + b/line-join: round; + c/line-join: round; + d/line-join: round; + e/line-join: round; + f/line-join: round; + g/line-join: round; + [feature = 'railway_INT-spur-siding-yard'] { + a/line-width: 2; + b/line-width: 2; + c/line-width: 2; + d/line-width: 2; + e/line-width: 2; + f/line-width: 2; + g/line-width: 2; + } + } + } + } + + [feature = 'railway_narrow_gauge'] { + [zoom >= 13] { + line/line-width: 2; + line/line-color: #666; + .tunnels-fill { + tunnelcasing/line-width: 5; + tunnelcasing/line-dasharray: 5,3; + tunnelcasing/line-color: #666; + background/line-color: #fff; + background/line-width: 4; + line/line-color: #aaa; + line/line-width: 1.5; + } + } + } + + [feature = 'railway_funicular'] { + [zoom >= 13] { + line/line-width: 2; + line/line-color: #666; + .tunnels-fill { + tunnelcasing/line-width: 5; + tunnelcasing/line-dasharray: 5,3; + tunnelcasing/line-color: #666; + background/line-color: #fff; + background/line-width: 4; + line/line-color: #aaa; + line/line-width: 1.5; + } + } + } + + [feature = 'railway_miniature'] { + [zoom >= 15] { + line/line-width: 1.2; + line/line-color: #999; + dashes/line-width: 3; + dashes/line-color: #999; + dashes/line-dasharray: 1,10; + } + } + + [feature = 'railway_tram'] { + .tunnels-fill { + [zoom >= 13] { + line-width: 1; + line-dasharray: 5,3; + line-color: #444; + [zoom >= 15] { line-width: 2; } + } + } + } + + [feature = 'railway_light_rail'] { + [zoom >= 13] { + line-width: 2; + line-color: #666; + .tunnels-fill { + line-dasharray: 5,3; + } + } + } + + [feature = 'railway_subway'] { + [zoom >= 12] { + line-width: 2; + line-color: #999; + .tunnels-fill { + line-dasharray: 5,3; + } + } + .bridges-fill { + [zoom >= 14] { + line-width: 2; + line-color: #999; + } + } + } + + [feature = 'railway_preserved'] { + [zoom >= 12] { + dark/line-width: 1.5; + dark/line-color: #aaa; + dark/line-join: round; + [zoom >= 13] { + dark/line-width: 3; + dark/line-color: #999999; + light/line-width: 1; + light/line-color: white; + light/line-dasharray: 0,1,8,1; + light/line-join: round; + } + } + } + + [feature = 'railway_INT-preserved-ssy'] { + [zoom >= 12] { + dark/line-width: 1; + dark/line-color: #aaa; + dark/line-join: round; + [zoom >= 13] { + dark/line-width: 2; + dark/line-color: #999999; + light/line-width: 0.8; + light/line-color: white; + light/line-dasharray: 0,1,8,1; + light/line-join: round; + } + } + } + + [feature = 'railway_monorail'] { + [zoom >= 14] { + background/line-width: 4; + background/line-color: #fff; + background/line-opacity: 0.4; + background/line-cap: round; + background/line-join: round; + line/line-width: 3; + line/line-color: #777; + line/line-dasharray: 2,3; + line/line-cap: round; + line/line-join: round; + } + } + + [feature = 'railway_disused'], + [feature = 'railway_abandoned'], + [feature = 'railway_construction'] { + [zoom >= 13] { + line-color: grey; + line-width: 2; + line-dasharray: 2,4; + line-join: round; + } + } + + [feature = 'railway_platform'] { + [zoom >= 16] { + line-join: round; + line-width: 6; + line-color: grey; + line-cap: round; + b/line-width: 4; + b/line-color: #bbbbbb; + b/line-cap: round; + b/line-join: round; + } + } + + [feature = 'railway_turntable'] { + [zoom >= 16] { + line-width: 1.5; + line-color: #999; + } + } + + [feature = 'aeroway_runway'] { + [zoom >= 11][zoom < 14] { + line-width: 2; + line-color: @runway-fill; + [zoom >= 12] { line-width: 4; } + [zoom >= 13] { line-width: 7; } + } + [zoom >= 14] { + line-width: 18; + line-color: @runway-fill; + } + } + + [feature = 'aeroway_taxiway'] { + [zoom >= 11][zoom < 14] { + line-width: 1; + line-color: @taxiway-fill; + } + [zoom >= 14] { + line-width: 4; + line-color: @taxiway-fill; + [zoom >= 15] { line-width: 6; } + } + } + } +} + +#turning-circle-casing { + [int_tc_type = 'tertiary'][zoom >= 15] { + marker-width: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15; + marker-height: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @tertiary-casing; + [zoom >= 17] { + marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17; + marker-height: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17; + } + } + + [int_tc_type = 'residential'], + [int_tc_type = 'unclassified'] { + [zoom >= 15] { + marker-width: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15; + marker-height: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8 + 2 * @casing-width-z15; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @residential-casing; + [zoom >= 16] { + marker-width: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16; + marker-height: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8 + 2 * @casing-width-z16; + } + [zoom >= 17] { + marker-width: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17; + marker-height: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8 + 2 * @casing-width-z17; + } + } + } + + [int_tc_type = 'living_street'][zoom >= 15] { + marker-width: 14; + marker-height: 14; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @living-street-casing; + [zoom >= 16] { + marker-width: 18; + marker-height: 18; + } + [zoom >= 17] { + marker-width: 24; + marker-height: 24; + } + } + + [int_tc_type = 'service'][zoom >= 16] { + marker-width: 14; + marker-height: 14; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @service-casing; + [zoom >= 17] { + marker-width: 16; + marker-height: 16; + } + } +} + +#turning-circle-fill { + [int_tc_type = 'tertiary'][zoom >= 15] { + marker-width: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8; + marker-height: (@tertiary-width-z15 - 2 * @casing-width-z15) * 1.8; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @tertiary-fill; + [zoom >= 17] { + marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8; + marker-width: (@tertiary-width-z17 - 2 * @casing-width-z17) * 1.8; + } + } + + [int_tc_type = 'residential'], + [int_tc_type = 'unclassified'] { + [zoom >= 15] { + marker-width: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8; + marker-height: (@residential-width-z15 - 2 * @casing-width-z15) * 1.8; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @residential-fill; + [zoom >= 16] { + marker-width: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8; + marker-height: (@residential-width-z16 - 2 * @casing-width-z16) * 1.8; + } + [zoom >= 17] { + marker-width: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8; + marker-height: (@residential-width-z17 - 2 * @casing-width-z17) * 1.8; + } + } + } + + [int_tc_type = 'living_street'][zoom >= 15] { + marker-width: 12; + marker-height: 12; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @living-street-fill; + [zoom >= 16] { + marker-width: 16; + marker-height: 16; + } + [zoom >= 17] { + marker-width: 22; + marker-height: 22; + } + } + + [int_tc_type = 'service'][zoom >= 16] { + marker-width: 12; + marker-height: 12; + marker-allow-overlap: true; + marker-ignore-placement: true; + marker-line-width: 0; + marker-fill: @service-fill; + [zoom >= 17] { + marker-width: 14; + marker-height: 14; + } + } +} + +#highway-area-casing { + [feature = 'highway_residential'], + [feature = 'highway_unclassified'] { + [zoom >= 14] { + line-color: #999; + line-width: 1; + } + } + + [feature = 'highway_pedestrian'], + [feature = 'highway_service'], + [feature = 'highway_footway'], + [feature = 'highway_path'] { + [zoom >= 14] { + line-color: grey; + line-width: 1; + } + } + + [feature = 'highway_track'][zoom >= 14] { + line-color: @track-fill; + line-width: 2; + } + + [feature = 'highway_platform'], + [feature = 'railway_platform'] { + [zoom >= 16] { + line-color: grey; + line-width: 2; + line-cap: round; + line-join: round; + } + } +} + +#highway-area-fill { + [feature = 'highway_living_street'][zoom >= 14] { + polygon-fill: #ccc; + } + + [feature = 'highway_residential'], + [feature = 'highway_unclassified'], + [feature = 'highway_service'] { + [zoom >= 14] { + polygon-fill: #fff; + } + } + + [feature = 'highway_pedestrian'], + [feature = 'highway_footway'], + [feature = 'highway_path'] { + [zoom >= 14] { + polygon-fill: #ededed; + } + } + + [feature = 'highway_track'][zoom >= 14] { + polygon-fill: #dfcc66; + } + + [feature = 'highway_platform'], + [feature = 'railway_platform'] { + [zoom >= 16] { + polygon-fill: #bbbbbb; + polygon-gamma: 0.65; + } + } + + [feature = 'aeroway_runway'][zoom >= 11] { + polygon-fill: @runway-fill; + } + + [feature = 'aeroway_taxiway'][zoom >= 13] { + polygon-fill: @taxiway-fill; + } + + [feature = 'aeroway_helipad'][zoom >= 16] { + polygon-fill: @helipad-fill; + } +} + +#highway-junctions { + [zoom >= 11] { + ref/text-name: "[ref]"; + ref/text-size: 10; + ref/text-fill: #6666ff; + ref/text-min-distance: 2; + ref/text-face-name: @oblique-fonts; + ref/text-halo-radius: 1.5; + ref/text-wrap-width: 12; + [zoom >= 12] { + name/text-name: "[name]"; + name/text-size: 9; + name/text-fill: #6666ff; + name/text-dy: -9; + name/text-face-name: @oblique-fonts; + name/text-halo-radius: 1; + name/text-wrap-character: ";"; + name/text-wrap-width: 2; + name/text-min-distance: 2; + } + [zoom >= 15] { + ref/text-size: 12; + name/text-size: 11; + name/text-dy: -10; + } + } +} + +.access::fill { + [access = 'permissive'] { + [feature = 'highway_unclassified'], + [feature = 'highway_residential'], + [feature = 'highway_footway'] { + [zoom >= 15] { + access/line-width: 6; + access/line-color: @permissive-marking; + access/line-dasharray: 6,8; + access/line-cap: round; + access/line-join: round; + access/line-opacity: 0.5; + } + } + [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15], + [feature = 'highway_service'][zoom >= 16] { + access/line-width: 3; + access/line-color: @permissive-marking; + access/line-dasharray: 6,8; + access/line-cap: round; + access/line-join: round; + access/line-opacity: 0.5; + [zoom >= 16] { access/line-width: 6; } + } + } + [access = 'destination'] { + [feature = 'highway_secondary'], + [feature = 'highway_tertiary'], + [feature = 'highway_unclassified'], + [feature = 'highway_residential'], + [feature = 'highway_road'], + [feature = 'highway_living_street'] { + [zoom >= 15] { + access/line-width: 6; + access/line-color: @destination-marking; + access/line-dasharray: 6,8; + access/line-cap: round; + access/line-join: round; + access/line-opacity: 0.5; + } + } + [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15], + [feature = 'highway_service'][zoom >= 16] { + access/line-width: 3; + access/line-color: @destination-marking; + access/line-dasharray: 6,8; + access/line-cap: round; + access/line-join: round; + access/line-opacity: 0.5; + [zoom >= 16] { access/line-width: 6; } + } + } + [access = 'no'] { + [feature = 'highway_motorway'], + [feature = 'highway_motorway_link'], + [feature = 'highway_trunk'], + [feature = 'highway_trunk_link'], + [feature = 'highway_primary'], + [feature = 'highway_primary_link'], + [feature = 'highway_secondary'], + [feature = 'highway_secondary_link'], + [feature = 'highway_tertiary'], + [feature = 'highway_tertiary_link'], + [feature = 'highway_unclassified'], + [feature = 'highway_residential'], + [feature = 'highway_road'], + [feature = 'highway_living_street'], + [feature = 'highway_track'], + [feature = 'highway_path'], + [feature = 'highway_footway'], + [feature = 'highway_cycleway'], + [feature = 'highway_bridleway'] { + [zoom >= 15] { + access/line-width: 6; + access/line-color: @private-marking; + access/line-dasharray: 6,8; + access/line-opacity: 0.5; + access/line-join: round; + access/line-cap: round; + } + } + [feature = 'highway_service'][service = 'INT-normal'][zoom >= 15], + [feature = 'highway_service'][zoom >= 16] { + access/line-width: 3; + access/line-color: @private-marking; + access/line-dasharray: 6,8; + access/line-opacity: 0.5; + access/line-join: round; + access/line-cap: round; + [zoom >= 16] { access/line-width: 6; } + } + } +} + +#roads-low-zoom { + [feature = 'highway_motorway'], + [feature = 'highway_motorway_link'] { + [zoom >= 5][zoom < 12] { + line-width: 0.5; + line-color: @motorway-fill; + [zoom >= 7] { line-width: 1; } + [zoom >= 9] { line-width: 1.4; } + [zoom >= 10] { line-width: 2; } + [zoom >= 11] { line-width: 2.5; } + } + } + + [feature = 'highway_trunk'], + [feature = 'highway_trunk_link'] { + [zoom >= 5][zoom < 12] { + line-width: 0.4; + line-color: @trunk-fill; + [zoom >= 7] { + line-width: 1; + line-color: @trunk-fill-alternative; + } + [zoom >= 9] { line-width: 2; } + [zoom >= 11] { line-width: 2.5; } + } + } + + [feature = 'highway_primary'], + [feature = 'highway_primary_link'] { + [zoom >= 7][zoom < 12] { + line-width: 0.5; + line-color: @primary-fill; + [zoom >= 9] { line-width: 1.2; } + [zoom >= 10] { line-width: 2; } + [zoom >= 11] { line-width: 2.5; } + } + } + + [feature = 'highway_secondary'], + [feature = 'highway_secondary_link'] { + [zoom >= 9][zoom < 12] { + line-width: 1; + line-color: @secondary-fill; + [zoom >= 11] { line-width: 2; } + } + } + + [feature = 'railway_rail'] { + [zoom >= 6][zoom < 13] { + line-width: 0.6; + line-color: #aaa; + [zoom >= 9] { line-width: 1; } + [zoom >= 10] { line-width: 2; } + .tunnels-casing { + line-dasharray: 5,2; + } + } + } + + [feature = 'railway_INT-spur-siding-yard'] { + [zoom >= 11] { + line-width: 1; + line-color: #aaa; + line-join: round; + } + } + + [feature = 'railway_tram'], + [feature = 'railway_light_rail'], + [feature = 'railway_funicular'], + [feature = 'railway_narrow_gauge'] { + [zoom >= 8][zoom < 13] { + line-width: 1; + line-color: #ccc; + [zoom >= 10] { line-color: #aaa } + } + } +} + +#trams { + [railway = 'tram'][zoom >= 13] { + line-color: #444; + line-width: 1; + [zoom >= 15] { + line-width: 2; + [bridge = 'yes'] { + line-width: 5; + line-color: black; + b/line-width: 4; + b/line-color: white; + c/line-width: 2; + c/line-color: #444; + } + } + } +} + +#guideways { + [zoom >= 13] { + line-width: 3; + line-color: #6666ff; + line-join: round; + b/line-width: 1; + b/line-color: white; + b/line-dasharray: 8,12; + b/line-join: round; + } + [zoom >= 14] { + b/line-dasharray: 0,11,8,1; + } +} + +#roads-text-ref-low-zoom { + [highway = 'motorway'][length < 9] { + [zoom >= 10][zoom < 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/mot_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + [length = 7] { shield-file: url('symbols/mot_shield6.png'); } + [length = 8] { shield-file: url('symbols/mot_shield7.png'); } + } + } + + [highway = 'trunk'][zoom >= 11][zoom < 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/tru_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + } + + [highway = 'primary'][zoom >= 11][zoom < 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/pri_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + } + + [highway = 'secondary'][zoom >= 12][zoom < 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/sec_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + } +} + +#roads-text-ref { + [highway = 'motorway'][length < 9] { + [zoom >= 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/mot_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + shield-avoid-edges: true; + [length = 7] { shield-file: url('symbols/mot_shield6.png'); } + [length = 8] { shield-file: url('symbols/mot_shield7.png'); } + } + } + + [highway = 'trunk'][zoom >= 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/tru_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + shield-avoid-edges: true; + } + + [highway = 'primary'][zoom >= 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/pri_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + shield-avoid-edges: true; + } + + [highway = 'secondary'][bridge = 'no'][zoom >= 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/sec_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + shield-avoid-edges: true; + } + + [highway = 'tertiary'][bridge = 'no'][zoom >= 13] { + shield-name: "[ref]"; + shield-size: 10; + shield-fill: #fff; + shield-placement: line; + shield-file: url("symbols/ter_shield[length].png"); + shield-spacing: 750; + shield-min-distance: 30; + shield-face-name: @bold-fonts; + shield-avoid-edges: true; + } + + [highway = 'unclassified'], + [highway = 'residential'] { + [zoom >= 15][bridge = 'no'] { + text-name: "[ref]"; + text-size: 10; + text-fill: #000; + text-face-name: @bold-fonts; + text-min-distance: 18; + text-halo-radius: 1; + text-spacing: 750; + text-clip: false; + } + } + + [highway = 'runway'], + [highway = 'taxiway'] { + [zoom >= 15][bridge = 'no'] { + text-name: "[ref]"; + text-size: 10; + text-fill: #333; + text-spacing: 750; + text-clip: false; + text-placement: line; + text-min-distance: 18; + text-face-name: @book-fonts; + text-halo-radius: 1; + } + } +} + +#roads-text-name { + [highway = 'motorway'], + [highway = 'motorway_link'], + [highway = 'trunk'], + [highway = 'trunk_link'], + [highway = 'primary'], + [highway = 'primary_link'] { + [zoom >= 13] { + text-name: "[name]"; + text-size: 8; + text-fill: black; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + text-halo-radius: 0; + } + [zoom >= 14] { + text-size: 9; + } + [zoom >= 15] { + text-size: 10; + } + } + [highway = 'secondary'], + [highway = 'secondary_link'] { + [zoom >= 13] { + text-name: "[name]"; + text-size: 8; + text-fill: black; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + text-halo-radius: 0; + } + [zoom >= 14] { + text-size: 9; + } + [zoom >= 15] { + text-size: 10; + } + } + [highway = 'tertiary'], + [highway = 'tertiary_link'] { + [zoom >= 15] { + text-name: "[name]"; + text-size: 9; + text-fill: #000; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + text-halo-radius: 0; + } + [zoom >= 17] { + text-size: 11; + } + } + [highway = 'proposed'], + [highway = 'construction'] { + [zoom >= 13] { + text-name: "[name]"; + text-size: 9; + text-fill: #000; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + text-halo-radius: 1; + } + [zoom >= 16] { + text-size: 11; + } + } + [highway = 'residential'], + [highway = 'unclassified'], + [highway = 'road'] { + [zoom >= 15] { + text-name: "[name]"; + text-size: 8; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-halo-radius: 1; + text-face-name: @book-fonts; + } + [zoom >= 16] { + text-size: 9; + } + [zoom >= 17] { + text-size: 11; + text-spacing: 400; + } + } + + [highway = 'raceway'], + [highway = 'service'] { + [zoom >= 16] { + text-name: "[name]"; + text-size: 9; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + } + [zoom >= 17] { + text-size: 11; + } + } + + [highway = 'living_street'], + [highway = 'pedestrian'] { + [zoom >= 15] { + text-name: "[name]"; + text-size: 8; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + } + [zoom >= 16] { + text-size: 9; + } + [zoom >= 17] { + text-size: 11; + } + } +} + +#roads-area-text-name { + [highway = 'pedestrian'] { + [zoom >= 15] { + text-name: "[name]"; + text-size: 8; + text-face-name: @book-fonts; + text-placement: interior; + text-wrap-width: 30; + } + [zoom >= 16] { + text-size: 9; + } + [zoom >= 17] { + text-size: 11; + } + } +} + +#paths-text-name { + [highway = 'track'] { + [zoom >= 15] { + text-name: "[name]"; + text-size: 8; + text-spacing: 300; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + } + [zoom >= 16] { + text-size: 9; + } + [zoom >= 17] { + text-size: 11; + } + } + + [highway = 'footway'], + [highway = 'cycleway'], + [highway = 'path'], + [highway = 'steps'] { + [zoom >= 16] { + text-name: "[name]"; + text-fill: #222; + text-size: 9; + text-halo-radius: 1; + text-halo-fill: rgba(255,255,255,0.8); + text-spacing: 200; + text-clip: false; + text-placement: line; + text-face-name: @book-fonts; + text-dy: 7; + } + [zoom >= 17] { + text-size: 11; + text-dy: 9; + } + } +} + +.directions::directions { + [zoom >= 16] { + [oneway = 'yes'] { + dira/line-width: 1; + dira/line-dasharray: 0,12,10,152; + dira/line-color: #6c70d5; + dira/line-join: bevel; + dira/line-clip: false; + dirb/line-width: 2; + dirb/line-dasharray: 0,12,9,153; + dirb/line-color: #6c70d5; + dirb/line-join: bevel; + dirb/line-clip: false; + dirc/line-width: 3; + dirc/line-dasharray: 0,18,2,154; + dirc/line-color: #6c70d5; + dirc/line-join: bevel; + dirc/line-clip: false; + dird/line-width: 4; + dird/line-dasharray: 0,18,1,155; + dird/line-color: #6c70d5; + dird/line-join: bevel; + dird/line-clip: false; + } + [oneway = '-1'] { + dira/line-width: 1; + dira/line-dasharray: 0,12,10,152; + dira/line-color: #6c70d5; + dira/line-join: bevel; + dira/line-clip: false; + dirb/line-width: 2; + dirb/line-dasharray: 0,13,9,152; + dirb/line-color: #6c70d5; + dirb/line-join: bevel; + dirb/line-clip: false; + dirc/line-width: 3; + dirc/line-dasharray: 0,14,2,158; + dirc/line-color: #6c70d5; + dirc/line-join: bevel; + dirc/line-clip: false; + dird/line-width: 4; + dird/line-dasharray: 0,15,1,158; + dird/line-color: #6c70d5; + dird/line-join: bevel; + dird/line-clip: false; + } + } +} diff --git a/shapefiles.mss b/shapefiles.mss new file mode 100644 index 0000000..1e8bfa0 --- /dev/null +++ b/shapefiles.mss @@ -0,0 +1,37 @@ +#necountries { + [zoom >= 1][zoom < 4] { + line-width: 0.5; + line-color: grey; + } +} + +#nepopulated { + [zoom >= 3][zoom < 5] { + [SCALERANK = 0], + [SCALERANK = 1] { + text-name: "[NAME]"; + text-size: 8; + text-fill: grey; + text-face-name: @book-fonts; + text-halo-radius: 1; + } + } +} + +#world { + [zoom >= 0][zoom < 10] { + polygon-fill: @land-color; + } +} + +#coast-poly { + [zoom >= 10] { + polygon-fill: @land-color; + } +} + +#builtup { + [zoom >= 8][zoom < 10] { + polygon-fill: #ddd; + } +} diff --git a/stations.mss b/stations.mss new file mode 100644 index 0000000..c414a46 --- /dev/null +++ b/stations.mss @@ -0,0 +1,54 @@ +.stations { + [railway = 'subway_entrance'][zoom >= 18] { + point-file: url('symbols/walking.n.12.png'); + point-placement: interior; + } + + [railway = 'station'][zoom >= 12] { + point-file: url('symbols/halt.png'); + point-placement: interior; + [zoom >= 13] { + point-file: url('symbols/station_small.png'); + } + [zoom >= 14] { + text-name: "[name]"; + text-face-name: @bold-fonts; + text-size: 9; + text-fill: #66f; + text-dy: -8; + text-halo-radius: 1; + text-wrap-width: 0; + text-placement: interior; + } + [zoom >= 15] { + point-file: url('symbols/station.png'); + text-size: 11; + text-dy: -10; + } + } + + [railway = 'halt'], + [railway = 'tram_stop'], + [aerialway = 'station']::aerialway { + [zoom >= 13] { + point-file: url('symbols/halt.png'); + } + [zoom >= 15] { + point-file: url('symbols/station_small.png'); + } + [zoom >= 14] { + text-name: "[name]"; + text-face-name: @book-fonts; + text-size: 8; + text-fill: #66f; + text-dy: -8; + text-halo-radius: 1; + text-wrap-width: 0; + text-placement: interior; + [zoom >= 15] { + text-size: 10; + text-dy: -10; + } + } + } +} diff --git a/style.mss b/style.mss new file mode 100644 index 0000000..bb9224a --- /dev/null +++ b/style.mss @@ -0,0 +1,12 @@ +Map { + background-color: @water-color; +} + +@book-fonts: "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium"; +@bold-fonts: "DejaVu Sans Bold", "Arundina Sans Bold", "Padauk Bold", + "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium"; +@oblique-fonts: "DejaVu Sans Oblique", "Arundina Sans Italic", + "DejaVu Sans Book", "Arundina Sans Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular", "Droid Sans Fallback Regular", "unifont Medium"; + +@water-color: #b5d0d0; +@land-color: #f2efe9; diff --git a/symbols/aerodrome.p.16.png b/symbols/aerodrome.p.16.png new file mode 100644 index 0000000..8f13cd7 Binary files /dev/null and b/symbols/aerodrome.p.16.png differ diff --git a/symbols/aerodrome.png b/symbols/aerodrome.png new file mode 100644 index 0000000..740229f Binary files /dev/null and b/symbols/aerodrome.png differ diff --git a/symbols/aiga_parking1.png b/symbols/aiga_parking1.png new file mode 100644 index 0000000..641a3c9 Binary files /dev/null and b/symbols/aiga_parking1.png differ diff --git a/symbols/allotments.png b/symbols/allotments.png new file mode 100644 index 0000000..d5e2779 Binary files /dev/null and b/symbols/allotments.png differ diff --git a/symbols/alpinehut.p.16.png b/symbols/alpinehut.p.16.png new file mode 100644 index 0000000..84b0977 Binary files /dev/null and b/symbols/alpinehut.p.16.png differ diff --git a/symbols/amenity_court.p.20.png b/symbols/amenity_court.p.20.png new file mode 100644 index 0000000..eed9852 Binary files /dev/null and b/symbols/amenity_court.p.20.png differ diff --git a/symbols/amenity_prison.p.20.png b/symbols/amenity_prison.p.20.png new file mode 100644 index 0000000..05425fb Binary files /dev/null and b/symbols/amenity_prison.p.20.png differ diff --git a/symbols/arrow.png b/symbols/arrow.png new file mode 100644 index 0000000..ffbb1df Binary files /dev/null and b/symbols/arrow.png differ diff --git a/symbols/arrow_back.png b/symbols/arrow_back.png new file mode 100644 index 0000000..309ca5d Binary files /dev/null and b/symbols/arrow_back.png differ diff --git a/symbols/atm.png b/symbols/atm.png new file mode 100644 index 0000000..9a1dd5d Binary files /dev/null and b/symbols/atm.png differ diff --git a/symbols/atm2.p.16.png b/symbols/atm2.p.16.png new file mode 100644 index 0000000..62caf20 Binary files /dev/null and b/symbols/atm2.p.16.png differ diff --git a/symbols/bandb.p.20.png b/symbols/bandb.p.20.png new file mode 100644 index 0000000..eb7ebb9 Binary files /dev/null and b/symbols/bandb.p.20.png differ diff --git a/symbols/bank2.p.16.png b/symbols/bank2.p.16.png new file mode 100644 index 0000000..a7d30e8 Binary files /dev/null and b/symbols/bank2.p.16.png differ diff --git a/symbols/bar.p.20.png b/symbols/bar.p.20.png new file mode 100644 index 0000000..9b0e48b Binary files /dev/null and b/symbols/bar.p.20.png differ diff --git a/symbols/beach.png b/symbols/beach.png new file mode 100644 index 0000000..ff9e307 Binary files /dev/null and b/symbols/beach.png differ diff --git a/symbols/biergarten.p.16.png b/symbols/biergarten.p.16.png new file mode 100644 index 0000000..241a4de Binary files /dev/null and b/symbols/biergarten.p.16.png differ diff --git a/symbols/bollard.png b/symbols/bollard.png new file mode 100644 index 0000000..1ea4118 Binary files /dev/null and b/symbols/bollard.png differ diff --git a/symbols/buddhist.png b/symbols/buddhist.png new file mode 100644 index 0000000..9b0cc59 Binary files /dev/null and b/symbols/buddhist.png differ diff --git a/symbols/bus_station.n.16.png b/symbols/bus_station.n.16.png new file mode 100644 index 0000000..5224dd1 Binary files /dev/null and b/symbols/bus_station.n.16.png differ diff --git a/symbols/bus_stop.p.12.png b/symbols/bus_stop.p.12.png new file mode 100644 index 0000000..f290dcb Binary files /dev/null and b/symbols/bus_stop.p.12.png differ diff --git a/symbols/bus_stop.png b/symbols/bus_stop.png new file mode 100644 index 0000000..e75f6fb Binary files /dev/null and b/symbols/bus_stop.png differ diff --git a/symbols/bus_stop_small.png b/symbols/bus_stop_small.png new file mode 100644 index 0000000..6d8b655 Binary files /dev/null and b/symbols/bus_stop_small.png differ diff --git a/symbols/cable_car.png b/symbols/cable_car.png new file mode 100644 index 0000000..b160f0c Binary files /dev/null and b/symbols/cable_car.png differ diff --git a/symbols/cafe.p.16.png b/symbols/cafe.p.16.png new file mode 100644 index 0000000..836f8a5 Binary files /dev/null and b/symbols/cafe.p.16.png differ diff --git a/symbols/camping.n.16.png b/symbols/camping.n.16.png new file mode 100644 index 0000000..b769125 Binary files /dev/null and b/symbols/camping.n.16.png differ diff --git a/symbols/car_share.p.16.png b/symbols/car_share.p.16.png new file mode 100644 index 0000000..1dcc537 Binary files /dev/null and b/symbols/car_share.p.16.png differ diff --git a/symbols/caravan_park.p.24.png b/symbols/caravan_park.p.24.png new file mode 100644 index 0000000..751f520 Binary files /dev/null and b/symbols/caravan_park.p.24.png differ diff --git a/symbols/cemetery_jewish.18.png b/symbols/cemetery_jewish.18.png new file mode 100644 index 0000000..316cdd8 Binary files /dev/null and b/symbols/cemetery_jewish.18.png differ diff --git a/symbols/chair_lift.png b/symbols/chair_lift.png new file mode 100644 index 0000000..ba0f474 Binary files /dev/null and b/symbols/chair_lift.png differ diff --git a/symbols/chalet.p.16.png b/symbols/chalet.p.16.png new file mode 100644 index 0000000..db5eb31 Binary files /dev/null and b/symbols/chalet.p.16.png differ diff --git a/symbols/christian3.p.14.png b/symbols/christian3.p.14.png new file mode 100644 index 0000000..c420f7f Binary files /dev/null and b/symbols/christian3.p.14.png differ diff --git a/symbols/cinema.p.24.png b/symbols/cinema.p.24.png new file mode 100644 index 0000000..1a31e65 Binary files /dev/null and b/symbols/cinema.p.24.png differ diff --git a/symbols/cliff.png b/symbols/cliff.png new file mode 100644 index 0000000..0fc0528 Binary files /dev/null and b/symbols/cliff.png differ diff --git a/symbols/cliff2.png b/symbols/cliff2.png new file mode 100644 index 0000000..790c7ff Binary files /dev/null and b/symbols/cliff2.png differ diff --git a/symbols/communications.p.20.png b/symbols/communications.p.20.png new file mode 100644 index 0000000..1000421 Binary files /dev/null and b/symbols/communications.p.20.png differ diff --git a/symbols/danger.png b/symbols/danger.png new file mode 100644 index 0000000..2f7b943 Binary files /dev/null and b/symbols/danger.png differ diff --git a/symbols/department_store.p.16.png b/symbols/department_store.p.16.png new file mode 100644 index 0000000..c42b9a2 Binary files /dev/null and b/symbols/department_store.p.16.png differ diff --git a/symbols/embassy.png b/symbols/embassy.png new file mode 100644 index 0000000..909e8dc Binary files /dev/null and b/symbols/embassy.png differ diff --git a/symbols/fast_food.png b/symbols/fast_food.png new file mode 100644 index 0000000..99875e9 Binary files /dev/null and b/symbols/fast_food.png differ diff --git a/symbols/firestation.p.16.png b/symbols/firestation.p.16.png new file mode 100644 index 0000000..cf24559 Binary files /dev/null and b/symbols/firestation.p.16.png differ diff --git a/symbols/florist.p.16.png b/symbols/florist.p.16.png new file mode 100644 index 0000000..3ed55a5 Binary files /dev/null and b/symbols/florist.p.16.png differ diff --git a/symbols/food_bar.p.16.png b/symbols/food_bar.p.16.png new file mode 100644 index 0000000..da043fb Binary files /dev/null and b/symbols/food_bar.p.16.png differ diff --git a/symbols/food_drinkingtap.p.20.png b/symbols/food_drinkingtap.p.20.png new file mode 100644 index 0000000..0a4c25a Binary files /dev/null and b/symbols/food_drinkingtap.p.20.png differ diff --git a/symbols/forest.png b/symbols/forest.png new file mode 100644 index 0000000..d6d50c9 Binary files /dev/null and b/symbols/forest.png differ diff --git a/symbols/fuel.p.16.png b/symbols/fuel.p.16.png new file mode 100644 index 0000000..7bab32a Binary files /dev/null and b/symbols/fuel.p.16.png differ diff --git a/symbols/gate.png b/symbols/gate.png new file mode 100644 index 0000000..5c5f3b6 Binary files /dev/null and b/symbols/gate.png differ diff --git a/symbols/gate2.png b/symbols/gate2.png new file mode 100644 index 0000000..b33e556 Binary files /dev/null and b/symbols/gate2.png differ diff --git a/symbols/glacier.png b/symbols/glacier.png new file mode 100644 index 0000000..0572751 Binary files /dev/null and b/symbols/glacier.png differ diff --git a/symbols/glacier2.png b/symbols/glacier2.png new file mode 100644 index 0000000..90b1844 Binary files /dev/null and b/symbols/glacier2.png differ diff --git a/symbols/grave_yard.png b/symbols/grave_yard.png new file mode 100644 index 0000000..7499533 Binary files /dev/null and b/symbols/grave_yard.png differ diff --git a/symbols/grave_yard_generic.png b/symbols/grave_yard_generic.png new file mode 100644 index 0000000..9f91602 Binary files /dev/null and b/symbols/grave_yard_generic.png differ diff --git a/symbols/guest_house.p.16.png b/symbols/guest_house.p.16.png new file mode 100644 index 0000000..c730b69 Binary files /dev/null and b/symbols/guest_house.p.16.png differ diff --git a/symbols/halt.png b/symbols/halt.png new file mode 100644 index 0000000..4085226 Binary files /dev/null and b/symbols/halt.png differ diff --git a/symbols/helipad.p.16.png b/symbols/helipad.p.16.png new file mode 100644 index 0000000..619513c Binary files /dev/null and b/symbols/helipad.p.16.png differ diff --git a/symbols/hindu.png b/symbols/hindu.png new file mode 100644 index 0000000..c31a93d Binary files /dev/null and b/symbols/hindu.png differ diff --git a/symbols/hospital.p.16.png b/symbols/hospital.p.16.png new file mode 100644 index 0000000..dd4febf Binary files /dev/null and b/symbols/hospital.p.16.png differ diff --git a/symbols/hospital.png b/symbols/hospital.png new file mode 100644 index 0000000..74a249c Binary files /dev/null and b/symbols/hospital.png differ diff --git a/symbols/hostel.p.20.png b/symbols/hostel.p.20.png new file mode 100644 index 0000000..be58f6d Binary files /dev/null and b/symbols/hostel.p.20.png differ diff --git a/symbols/hotel2.p.20.png b/symbols/hotel2.p.20.png new file mode 100644 index 0000000..a441134 Binary files /dev/null and b/symbols/hotel2.p.20.png differ diff --git a/symbols/information.p.16.png b/symbols/information.p.16.png new file mode 100644 index 0000000..65d03db Binary files /dev/null and b/symbols/information.p.16.png differ diff --git a/symbols/islamic3.p.16.png b/symbols/islamic3.p.16.png new file mode 100644 index 0000000..8746c31 Binary files /dev/null and b/symbols/islamic3.p.16.png differ diff --git a/symbols/jewish3.p.16.png b/symbols/jewish3.p.16.png new file mode 100644 index 0000000..0a11447 Binary files /dev/null and b/symbols/jewish3.p.16.png differ diff --git a/symbols/landfill.png b/symbols/landfill.png new file mode 100644 index 0000000..d08255f Binary files /dev/null and b/symbols/landfill.png differ diff --git a/symbols/level_crossing.png b/symbols/level_crossing.png new file mode 100644 index 0000000..5002f6d Binary files /dev/null and b/symbols/level_crossing.png differ diff --git a/symbols/level_crossing2.png b/symbols/level_crossing2.png new file mode 100644 index 0000000..eac7189 Binary files /dev/null and b/symbols/level_crossing2.png differ diff --git a/symbols/library.p.20.png b/symbols/library.p.20.png new file mode 100644 index 0000000..b38c4d1 Binary files /dev/null and b/symbols/library.p.20.png differ diff --git a/symbols/liftgate.png b/symbols/liftgate.png new file mode 100644 index 0000000..fd50fe5 Binary files /dev/null and b/symbols/liftgate.png differ diff --git a/symbols/lighthouse.p.20.png b/symbols/lighthouse.p.20.png new file mode 100644 index 0000000..f2e268f Binary files /dev/null and b/symbols/lighthouse.p.20.png differ diff --git a/symbols/lock_gate.png b/symbols/lock_gate.png new file mode 100644 index 0000000..4fb277e Binary files /dev/null and b/symbols/lock_gate.png differ diff --git a/symbols/london-tube-24.png b/symbols/london-tube-24.png new file mode 100644 index 0000000..04c1795 Binary files /dev/null and b/symbols/london-tube-24.png differ diff --git a/symbols/marsh.png b/symbols/marsh.png new file mode 100644 index 0000000..4ff801e Binary files /dev/null and b/symbols/marsh.png differ diff --git a/symbols/memorial.png b/symbols/memorial.png new file mode 100644 index 0000000..9423e10 Binary files /dev/null and b/symbols/memorial.png differ diff --git a/symbols/military_red_hatch.png b/symbols/military_red_hatch.png new file mode 100644 index 0000000..f9dbeb6 Binary files /dev/null and b/symbols/military_red_hatch.png differ diff --git a/symbols/mini_round.png b/symbols/mini_round.png new file mode 100644 index 0000000..b9a7d2d Binary files /dev/null and b/symbols/mini_round.png differ diff --git a/symbols/mosque.png b/symbols/mosque.png new file mode 100644 index 0000000..71b55fa Binary files /dev/null and b/symbols/mosque.png differ diff --git a/symbols/mot_shield1.png b/symbols/mot_shield1.png new file mode 100644 index 0000000..ce509ff Binary files /dev/null and b/symbols/mot_shield1.png differ diff --git a/symbols/mot_shield2.png b/symbols/mot_shield2.png new file mode 100644 index 0000000..c9e1965 Binary files /dev/null and b/symbols/mot_shield2.png differ diff --git a/symbols/mot_shield3.png b/symbols/mot_shield3.png new file mode 100644 index 0000000..9b27a6b Binary files /dev/null and b/symbols/mot_shield3.png differ diff --git a/symbols/mot_shield4.png b/symbols/mot_shield4.png new file mode 100644 index 0000000..0c7ba69 Binary files /dev/null and b/symbols/mot_shield4.png differ diff --git a/symbols/mot_shield5.png b/symbols/mot_shield5.png new file mode 100644 index 0000000..2d0c1dd Binary files /dev/null and b/symbols/mot_shield5.png differ diff --git a/symbols/mot_shield6.png b/symbols/mot_shield6.png new file mode 100644 index 0000000..0a97a3d Binary files /dev/null and b/symbols/mot_shield6.png differ diff --git a/symbols/mot_shield7.png b/symbols/mot_shield7.png new file mode 100644 index 0000000..35a3dfc Binary files /dev/null and b/symbols/mot_shield7.png differ diff --git a/symbols/mot_shield8.png b/symbols/mot_shield8.png new file mode 100644 index 0000000..8f0653d Binary files /dev/null and b/symbols/mot_shield8.png differ diff --git a/symbols/motel.p.20.png b/symbols/motel.p.20.png new file mode 100644 index 0000000..56a96e5 Binary files /dev/null and b/symbols/motel.p.20.png differ diff --git a/symbols/motorway_shield1.png b/symbols/motorway_shield1.png new file mode 100644 index 0000000..40111a6 Binary files /dev/null and b/symbols/motorway_shield1.png differ diff --git a/symbols/motorway_shield2.png b/symbols/motorway_shield2.png new file mode 100644 index 0000000..331c522 Binary files /dev/null and b/symbols/motorway_shield2.png differ diff --git a/symbols/motorway_shield3.png b/symbols/motorway_shield3.png new file mode 100644 index 0000000..0e4f5fd Binary files /dev/null and b/symbols/motorway_shield3.png differ diff --git a/symbols/motorway_shield4.png b/symbols/motorway_shield4.png new file mode 100644 index 0000000..56d7ab8 Binary files /dev/null and b/symbols/motorway_shield4.png differ diff --git a/symbols/motorway_shield5.png b/symbols/motorway_shield5.png new file mode 100644 index 0000000..2cc5d35 Binary files /dev/null and b/symbols/motorway_shield5.png differ diff --git a/symbols/motorway_shield6.png b/symbols/motorway_shield6.png new file mode 100644 index 0000000..3ece3f0 Binary files /dev/null and b/symbols/motorway_shield6.png differ diff --git a/symbols/mud.png b/symbols/mud.png new file mode 100644 index 0000000..fe031f6 Binary files /dev/null and b/symbols/mud.png differ diff --git a/symbols/museum.p.16.png b/symbols/museum.p.16.png new file mode 100644 index 0000000..c58d306 Binary files /dev/null and b/symbols/museum.p.16.png differ diff --git a/symbols/nature_reserve.png b/symbols/nature_reserve.png new file mode 100644 index 0000000..da01ec8 Binary files /dev/null and b/symbols/nature_reserve.png differ diff --git a/symbols/nature_reserve2.png b/symbols/nature_reserve2.png new file mode 100644 index 0000000..c804a8e Binary files /dev/null and b/symbols/nature_reserve2.png differ diff --git a/symbols/nature_reserve2T.png b/symbols/nature_reserve2T.png new file mode 100644 index 0000000..7dd9728 Binary files /dev/null and b/symbols/nature_reserve2T.png differ diff --git a/symbols/nature_reserve5.png b/symbols/nature_reserve5.png new file mode 100644 index 0000000..db28f5e Binary files /dev/null and b/symbols/nature_reserve5.png differ diff --git a/symbols/nature_reserve6.png b/symbols/nature_reserve6.png new file mode 100644 index 0000000..6768b56 Binary files /dev/null and b/symbols/nature_reserve6.png differ diff --git a/symbols/nature_reserveT.png b/symbols/nature_reserveT.png new file mode 100644 index 0000000..4da4863 Binary files /dev/null and b/symbols/nature_reserveT.png differ diff --git a/symbols/orchard.png b/symbols/orchard.png new file mode 100644 index 0000000..a889a9e Binary files /dev/null and b/symbols/orchard.png differ diff --git a/symbols/parking.p.16.png b/symbols/parking.p.16.png new file mode 100644 index 0000000..5860900 Binary files /dev/null and b/symbols/parking.p.16.png differ diff --git a/symbols/parking.png b/symbols/parking.png new file mode 100644 index 0000000..9e3ad06 Binary files /dev/null and b/symbols/parking.png differ diff --git a/symbols/parking_private.p.16.png b/symbols/parking_private.p.16.png new file mode 100644 index 0000000..756ff7c Binary files /dev/null and b/symbols/parking_private.p.16.png differ diff --git a/symbols/peak.png b/symbols/peak.png new file mode 100644 index 0000000..161cf50 Binary files /dev/null and b/symbols/peak.png differ diff --git a/symbols/pharmacy.p.16.png b/symbols/pharmacy.p.16.png new file mode 100644 index 0000000..fb1c56c Binary files /dev/null and b/symbols/pharmacy.p.16.png differ diff --git a/symbols/picnic.p.16.png b/symbols/picnic.p.16.png new file mode 100644 index 0000000..0eff097 Binary files /dev/null and b/symbols/picnic.p.16.png differ diff --git a/symbols/pint.png b/symbols/pint.png new file mode 100644 index 0000000..d426eea Binary files /dev/null and b/symbols/pint.png differ diff --git a/symbols/place_of_worship.png b/symbols/place_of_worship.png new file mode 100644 index 0000000..95494f5 Binary files /dev/null and b/symbols/place_of_worship.png differ diff --git a/symbols/place_of_worship3.p.16.png b/symbols/place_of_worship3.p.16.png new file mode 100644 index 0000000..d75bbf4 Binary files /dev/null and b/symbols/place_of_worship3.p.16.png differ diff --git a/symbols/place_of_worship3.png b/symbols/place_of_worship3.png new file mode 100644 index 0000000..fb01d05 Binary files /dev/null and b/symbols/place_of_worship3.png differ diff --git a/symbols/playground.p.20.png b/symbols/playground.p.20.png new file mode 100644 index 0000000..42db81d Binary files /dev/null and b/symbols/playground.p.20.png differ diff --git a/symbols/poi_cave.p.16.png b/symbols/poi_cave.p.16.png new file mode 100644 index 0000000..aafddbb Binary files /dev/null and b/symbols/poi_cave.p.16.png differ diff --git a/symbols/police.p.16.png b/symbols/police.p.16.png new file mode 100644 index 0000000..2dd87aa Binary files /dev/null and b/symbols/police.p.16.png differ diff --git a/symbols/post_box.p.16.png b/symbols/post_box.p.16.png new file mode 100644 index 0000000..3119cc1 Binary files /dev/null and b/symbols/post_box.p.16.png differ diff --git a/symbols/post_box.png b/symbols/post_box.png new file mode 100644 index 0000000..8731497 Binary files /dev/null and b/symbols/post_box.png differ diff --git a/symbols/post_office.p.16.png b/symbols/post_office.p.16.png new file mode 100644 index 0000000..743255e Binary files /dev/null and b/symbols/post_office.p.16.png differ diff --git a/symbols/post_office.png b/symbols/post_office.png new file mode 100644 index 0000000..42d9054 Binary files /dev/null and b/symbols/post_office.png differ diff --git a/symbols/postoffice.png b/symbols/postoffice.png new file mode 100644 index 0000000..d0434aa Binary files /dev/null and b/symbols/postoffice.png differ diff --git a/symbols/power_line.png b/symbols/power_line.png new file mode 100644 index 0000000..ce94c8a Binary files /dev/null and b/symbols/power_line.png differ diff --git a/symbols/power_pole.png b/symbols/power_pole.png new file mode 100644 index 0000000..ef18a39 Binary files /dev/null and b/symbols/power_pole.png differ diff --git a/symbols/power_tower.png b/symbols/power_tower.png new file mode 100644 index 0000000..2c963ad Binary files /dev/null and b/symbols/power_tower.png differ diff --git a/symbols/power_tower_3x3.png b/symbols/power_tower_3x3.png new file mode 100644 index 0000000..4b1784e Binary files /dev/null and b/symbols/power_tower_3x3.png differ diff --git a/symbols/power_tower_5x5.png b/symbols/power_tower_5x5.png new file mode 100644 index 0000000..b3a6a2b Binary files /dev/null and b/symbols/power_tower_5x5.png differ diff --git a/symbols/power_wind.png b/symbols/power_wind.png new file mode 100644 index 0000000..29aeb7a Binary files /dev/null and b/symbols/power_wind.png differ diff --git a/symbols/pri_shield1.png b/symbols/pri_shield1.png new file mode 100644 index 0000000..1234b38 Binary files /dev/null and b/symbols/pri_shield1.png differ diff --git a/symbols/pri_shield2.png b/symbols/pri_shield2.png new file mode 100644 index 0000000..880ab4a Binary files /dev/null and b/symbols/pri_shield2.png differ diff --git a/symbols/pri_shield3.png b/symbols/pri_shield3.png new file mode 100644 index 0000000..a97846a Binary files /dev/null and b/symbols/pri_shield3.png differ diff --git a/symbols/pri_shield4.png b/symbols/pri_shield4.png new file mode 100644 index 0000000..ee0361c Binary files /dev/null and b/symbols/pri_shield4.png differ diff --git a/symbols/pri_shield5.png b/symbols/pri_shield5.png new file mode 100644 index 0000000..f68bc7d Binary files /dev/null and b/symbols/pri_shield5.png differ diff --git a/symbols/pri_shield6.png b/symbols/pri_shield6.png new file mode 100644 index 0000000..32ac05c Binary files /dev/null and b/symbols/pri_shield6.png differ diff --git a/symbols/pri_shield7.png b/symbols/pri_shield7.png new file mode 100644 index 0000000..7e4e2f1 Binary files /dev/null and b/symbols/pri_shield7.png differ diff --git a/symbols/pri_shield8.png b/symbols/pri_shield8.png new file mode 100644 index 0000000..73fcb3b Binary files /dev/null and b/symbols/pri_shield8.png differ diff --git a/symbols/primary_shield1.png b/symbols/primary_shield1.png new file mode 100644 index 0000000..f7491b6 Binary files /dev/null and b/symbols/primary_shield1.png differ diff --git a/symbols/primary_shield2.png b/symbols/primary_shield2.png new file mode 100644 index 0000000..520f8f4 Binary files /dev/null and b/symbols/primary_shield2.png differ diff --git a/symbols/primary_shield3.png b/symbols/primary_shield3.png new file mode 100644 index 0000000..d4dd8e3 Binary files /dev/null and b/symbols/primary_shield3.png differ diff --git a/symbols/primary_shield4.png b/symbols/primary_shield4.png new file mode 100644 index 0000000..378e737 Binary files /dev/null and b/symbols/primary_shield4.png differ diff --git a/symbols/primary_shield5.png b/symbols/primary_shield5.png new file mode 100644 index 0000000..dc59c40 Binary files /dev/null and b/symbols/primary_shield5.png differ diff --git a/symbols/primary_shield6.png b/symbols/primary_shield6.png new file mode 100644 index 0000000..606fc12 Binary files /dev/null and b/symbols/primary_shield6.png differ diff --git a/symbols/primary_shield7.png b/symbols/primary_shield7.png new file mode 100644 index 0000000..9282fc0 Binary files /dev/null and b/symbols/primary_shield7.png differ diff --git a/symbols/primary_shield8.png b/symbols/primary_shield8.png new file mode 100644 index 0000000..3ccc5d1 Binary files /dev/null and b/symbols/primary_shield8.png differ diff --git a/symbols/pub.p.16.png b/symbols/pub.p.16.png new file mode 100644 index 0000000..b452a7e Binary files /dev/null and b/symbols/pub.p.16.png differ diff --git a/symbols/pub.png b/symbols/pub.png new file mode 100644 index 0000000..3ac26f3 Binary files /dev/null and b/symbols/pub.png differ diff --git a/symbols/quarry.png b/symbols/quarry.png new file mode 100644 index 0000000..ab5088e Binary files /dev/null and b/symbols/quarry.png differ diff --git a/symbols/quarry2.png b/symbols/quarry2.png new file mode 100644 index 0000000..38dcfac Binary files /dev/null and b/symbols/quarry2.png differ diff --git a/symbols/recycle.png b/symbols/recycle.png new file mode 100644 index 0000000..4cf43a1 Binary files /dev/null and b/symbols/recycle.png differ diff --git a/symbols/recycling.p.16.png b/symbols/recycling.p.16.png new file mode 100644 index 0000000..59eb331 Binary files /dev/null and b/symbols/recycling.p.16.png differ diff --git a/symbols/recycling.png b/symbols/recycling.png new file mode 100644 index 0000000..5381898 Binary files /dev/null and b/symbols/recycling.png differ diff --git a/symbols/rental_bicycle.p.20.png b/symbols/rental_bicycle.p.20.png new file mode 100644 index 0000000..4bb10e0 Binary files /dev/null and b/symbols/rental_bicycle.p.20.png differ diff --git a/symbols/restaurant.p.16.png b/symbols/restaurant.p.16.png new file mode 100644 index 0000000..5c41008 Binary files /dev/null and b/symbols/restaurant.p.16.png differ diff --git a/symbols/school.png b/symbols/school.png new file mode 100644 index 0000000..4c919bf Binary files /dev/null and b/symbols/school.png differ diff --git a/symbols/scrub.png b/symbols/scrub.png new file mode 100644 index 0000000..7668027 Binary files /dev/null and b/symbols/scrub.png differ diff --git a/symbols/sec_shield1.png b/symbols/sec_shield1.png new file mode 100644 index 0000000..3b22e6c Binary files /dev/null and b/symbols/sec_shield1.png differ diff --git a/symbols/sec_shield2.png b/symbols/sec_shield2.png new file mode 100644 index 0000000..3a19224 Binary files /dev/null and b/symbols/sec_shield2.png differ diff --git a/symbols/sec_shield3.png b/symbols/sec_shield3.png new file mode 100644 index 0000000..c7d72d7 Binary files /dev/null and b/symbols/sec_shield3.png differ diff --git a/symbols/sec_shield4.png b/symbols/sec_shield4.png new file mode 100644 index 0000000..656817a Binary files /dev/null and b/symbols/sec_shield4.png differ diff --git a/symbols/sec_shield5.png b/symbols/sec_shield5.png new file mode 100644 index 0000000..2918b07 Binary files /dev/null and b/symbols/sec_shield5.png differ diff --git a/symbols/sec_shield6.png b/symbols/sec_shield6.png new file mode 100644 index 0000000..4e1552b Binary files /dev/null and b/symbols/sec_shield6.png differ diff --git a/symbols/sec_shield7.png b/symbols/sec_shield7.png new file mode 100644 index 0000000..04035ca Binary files /dev/null and b/symbols/sec_shield7.png differ diff --git a/symbols/sec_shield8.png b/symbols/sec_shield8.png new file mode 100644 index 0000000..2c91468 Binary files /dev/null and b/symbols/sec_shield8.png differ diff --git a/symbols/secondary_shield1.png b/symbols/secondary_shield1.png new file mode 100644 index 0000000..7f463cc Binary files /dev/null and b/symbols/secondary_shield1.png differ diff --git a/symbols/secondary_shield2.png b/symbols/secondary_shield2.png new file mode 100644 index 0000000..fe7ebd6 Binary files /dev/null and b/symbols/secondary_shield2.png differ diff --git a/symbols/secondary_shield3.png b/symbols/secondary_shield3.png new file mode 100644 index 0000000..f6c995a Binary files /dev/null and b/symbols/secondary_shield3.png differ diff --git a/symbols/secondary_shield4.png b/symbols/secondary_shield4.png new file mode 100644 index 0000000..dd91317 Binary files /dev/null and b/symbols/secondary_shield4.png differ diff --git a/symbols/secondary_shield5.png b/symbols/secondary_shield5.png new file mode 100644 index 0000000..a9aa38f Binary files /dev/null and b/symbols/secondary_shield5.png differ diff --git a/symbols/secondary_shield6.png b/symbols/secondary_shield6.png new file mode 100644 index 0000000..e3dcb46 Binary files /dev/null and b/symbols/secondary_shield6.png differ diff --git a/symbols/secondary_shield7.png b/symbols/secondary_shield7.png new file mode 100644 index 0000000..a90b587 Binary files /dev/null and b/symbols/secondary_shield7.png differ diff --git a/symbols/secondary_shield8.png b/symbols/secondary_shield8.png new file mode 100644 index 0000000..71feabf Binary files /dev/null and b/symbols/secondary_shield8.png differ diff --git a/symbols/shelter2.p.16.png b/symbols/shelter2.p.16.png new file mode 100644 index 0000000..09ea530 Binary files /dev/null and b/symbols/shelter2.p.16.png differ diff --git a/symbols/shinto.png b/symbols/shinto.png new file mode 100644 index 0000000..6ac47f8 Binary files /dev/null and b/symbols/shinto.png differ diff --git a/symbols/shop_bakery.p.16.png b/symbols/shop_bakery.p.16.png new file mode 100644 index 0000000..89de12e Binary files /dev/null and b/symbols/shop_bakery.p.16.png differ diff --git a/symbols/shop_butcher.png b/symbols/shop_butcher.png new file mode 100644 index 0000000..e31ca9d Binary files /dev/null and b/symbols/shop_butcher.png differ diff --git a/symbols/shop_clothes.p.16.png b/symbols/shop_clothes.p.16.png new file mode 100644 index 0000000..b028a1c Binary files /dev/null and b/symbols/shop_clothes.p.16.png differ diff --git a/symbols/shop_convenience.p.16.png b/symbols/shop_convenience.p.16.png new file mode 100644 index 0000000..2fc7584 Binary files /dev/null and b/symbols/shop_convenience.p.16.png differ diff --git a/symbols/shop_diy.p.16.png b/symbols/shop_diy.p.16.png new file mode 100644 index 0000000..b1954ab Binary files /dev/null and b/symbols/shop_diy.p.16.png differ diff --git a/symbols/shop_hairdresser.p.16.png b/symbols/shop_hairdresser.p.16.png new file mode 100644 index 0000000..aa783f2 Binary files /dev/null and b/symbols/shop_hairdresser.p.16.png differ diff --git a/symbols/shop_supermarket.p.16.png b/symbols/shop_supermarket.p.16.png new file mode 100644 index 0000000..3b4338a Binary files /dev/null and b/symbols/shop_supermarket.p.16.png differ diff --git a/symbols/shopping_bicycle.p.16.png b/symbols/shopping_bicycle.p.16.png new file mode 100644 index 0000000..d0b3680 Binary files /dev/null and b/symbols/shopping_bicycle.p.16.png differ diff --git a/symbols/shopping_car.p.16.png b/symbols/shopping_car.p.16.png new file mode 100644 index 0000000..e34715b Binary files /dev/null and b/symbols/shopping_car.p.16.png differ diff --git a/symbols/shopping_car_repair.p.16.png b/symbols/shopping_car_repair.p.16.png new file mode 100644 index 0000000..9c38777 Binary files /dev/null and b/symbols/shopping_car_repair.p.16.png differ diff --git a/symbols/sikh.png b/symbols/sikh.png new file mode 100644 index 0000000..a3ade80 Binary files /dev/null and b/symbols/sikh.png differ diff --git a/symbols/sikh3.p.16.png b/symbols/sikh3.p.16.png new file mode 100644 index 0000000..9e8906e Binary files /dev/null and b/symbols/sikh3.p.16.png differ diff --git a/symbols/sosphone.png b/symbols/sosphone.png new file mode 100644 index 0000000..0e5d0a2 Binary files /dev/null and b/symbols/sosphone.png differ diff --git a/symbols/spring.png b/symbols/spring.png new file mode 100644 index 0000000..c2dceb4 Binary files /dev/null and b/symbols/spring.png differ diff --git a/symbols/station.png b/symbols/station.png new file mode 100644 index 0000000..686ec10 Binary files /dev/null and b/symbols/station.png differ diff --git a/symbols/station_disused.png b/symbols/station_disused.png new file mode 100644 index 0000000..73be6f1 Binary files /dev/null and b/symbols/station_disused.png differ diff --git a/symbols/station_small.png b/symbols/station_small.png new file mode 100644 index 0000000..d8e75f5 Binary files /dev/null and b/symbols/station_small.png differ diff --git a/symbols/synagogue.png b/symbols/synagogue.png new file mode 100644 index 0000000..66ec7f1 Binary files /dev/null and b/symbols/synagogue.png differ diff --git a/symbols/taoist.png b/symbols/taoist.png new file mode 100644 index 0000000..39070d0 Binary files /dev/null and b/symbols/taoist.png differ diff --git a/symbols/telephone.p.16.png b/symbols/telephone.p.16.png new file mode 100644 index 0000000..29378e4 Binary files /dev/null and b/symbols/telephone.p.16.png differ diff --git a/symbols/ter_shield1.png b/symbols/ter_shield1.png new file mode 100644 index 0000000..9fad535 Binary files /dev/null and b/symbols/ter_shield1.png differ diff --git a/symbols/ter_shield2.png b/symbols/ter_shield2.png new file mode 100644 index 0000000..3092a89 Binary files /dev/null and b/symbols/ter_shield2.png differ diff --git a/symbols/ter_shield3.png b/symbols/ter_shield3.png new file mode 100644 index 0000000..0d42f6c Binary files /dev/null and b/symbols/ter_shield3.png differ diff --git a/symbols/ter_shield4.png b/symbols/ter_shield4.png new file mode 100644 index 0000000..c30bb9a Binary files /dev/null and b/symbols/ter_shield4.png differ diff --git a/symbols/ter_shield5.png b/symbols/ter_shield5.png new file mode 100644 index 0000000..5bfbf4e Binary files /dev/null and b/symbols/ter_shield5.png differ diff --git a/symbols/ter_shield6.png b/symbols/ter_shield6.png new file mode 100644 index 0000000..4561fb1 Binary files /dev/null and b/symbols/ter_shield6.png differ diff --git a/symbols/ter_shield7.png b/symbols/ter_shield7.png new file mode 100644 index 0000000..80b4a16 Binary files /dev/null and b/symbols/ter_shield7.png differ diff --git a/symbols/ter_shield8.png b/symbols/ter_shield8.png new file mode 100644 index 0000000..a1eed49 Binary files /dev/null and b/symbols/ter_shield8.png differ diff --git a/symbols/tertiary_shield1.png b/symbols/tertiary_shield1.png new file mode 100644 index 0000000..0ba9015 Binary files /dev/null and b/symbols/tertiary_shield1.png differ diff --git a/symbols/tertiary_shield2.png b/symbols/tertiary_shield2.png new file mode 100644 index 0000000..4952fe7 Binary files /dev/null and b/symbols/tertiary_shield2.png differ diff --git a/symbols/tertiary_shield3.png b/symbols/tertiary_shield3.png new file mode 100644 index 0000000..4e7233c Binary files /dev/null and b/symbols/tertiary_shield3.png differ diff --git a/symbols/tertiary_shield4.png b/symbols/tertiary_shield4.png new file mode 100644 index 0000000..b5ddee2 Binary files /dev/null and b/symbols/tertiary_shield4.png differ diff --git a/symbols/tertiary_shield5.png b/symbols/tertiary_shield5.png new file mode 100644 index 0000000..1c16176 Binary files /dev/null and b/symbols/tertiary_shield5.png differ diff --git a/symbols/tertiary_shield6.png b/symbols/tertiary_shield6.png new file mode 100644 index 0000000..87b8dad Binary files /dev/null and b/symbols/tertiary_shield6.png differ diff --git a/symbols/tertiary_shield7.png b/symbols/tertiary_shield7.png new file mode 100644 index 0000000..8f3c4c5 Binary files /dev/null and b/symbols/tertiary_shield7.png differ diff --git a/symbols/tertiary_shield8.png b/symbols/tertiary_shield8.png new file mode 100644 index 0000000..ace8d21 Binary files /dev/null and b/symbols/tertiary_shield8.png differ diff --git a/symbols/theatre.p.20.png b/symbols/theatre.p.20.png new file mode 100644 index 0000000..36b918c Binary files /dev/null and b/symbols/theatre.p.20.png differ diff --git a/symbols/toilets.p.20.png b/symbols/toilets.p.20.png new file mode 100644 index 0000000..80cf3af Binary files /dev/null and b/symbols/toilets.p.20.png differ diff --git a/symbols/tourist_archaeological2.glow.24.png b/symbols/tourist_archaeological2.glow.24.png new file mode 100644 index 0000000..90c61c3 Binary files /dev/null and b/symbols/tourist_archaeological2.glow.24.png differ diff --git a/symbols/tourist_memorial.p.20.png b/symbols/tourist_memorial.p.20.png new file mode 100644 index 0000000..7fa8361 Binary files /dev/null and b/symbols/tourist_memorial.p.20.png differ diff --git a/symbols/tower.png b/symbols/tower.png new file mode 100644 index 0000000..304727a Binary files /dev/null and b/symbols/tower.png differ diff --git a/symbols/tower_water.p.20.png b/symbols/tower_water.p.20.png new file mode 100644 index 0000000..5ca7801 Binary files /dev/null and b/symbols/tower_water.p.20.png differ diff --git a/symbols/traffic_light.png b/symbols/traffic_light.png new file mode 100644 index 0000000..1c2b3ca Binary files /dev/null and b/symbols/traffic_light.png differ diff --git a/symbols/transport_ford.p.16.png b/symbols/transport_ford.p.16.png new file mode 100644 index 0000000..dc1bfc2 Binary files /dev/null and b/symbols/transport_ford.p.16.png differ diff --git a/symbols/transport_slipway.p.20.png b/symbols/transport_slipway.p.20.png new file mode 100644 index 0000000..45892de Binary files /dev/null and b/symbols/transport_slipway.p.20.png differ diff --git a/symbols/tree.png b/symbols/tree.png new file mode 100644 index 0000000..7575bd6 Binary files /dev/null and b/symbols/tree.png differ diff --git a/symbols/tree2.png b/symbols/tree2.png new file mode 100644 index 0000000..f0e3e1f Binary files /dev/null and b/symbols/tree2.png differ diff --git a/symbols/tru_shield1.png b/symbols/tru_shield1.png new file mode 100644 index 0000000..bbdd6fc Binary files /dev/null and b/symbols/tru_shield1.png differ diff --git a/symbols/tru_shield2.png b/symbols/tru_shield2.png new file mode 100644 index 0000000..e33d296 Binary files /dev/null and b/symbols/tru_shield2.png differ diff --git a/symbols/tru_shield3.png b/symbols/tru_shield3.png new file mode 100644 index 0000000..1a47f9a Binary files /dev/null and b/symbols/tru_shield3.png differ diff --git a/symbols/tru_shield4.png b/symbols/tru_shield4.png new file mode 100644 index 0000000..443c3f3 Binary files /dev/null and b/symbols/tru_shield4.png differ diff --git a/symbols/tru_shield5.png b/symbols/tru_shield5.png new file mode 100644 index 0000000..f53720b Binary files /dev/null and b/symbols/tru_shield5.png differ diff --git a/symbols/tru_shield6.png b/symbols/tru_shield6.png new file mode 100644 index 0000000..092d0d9 Binary files /dev/null and b/symbols/tru_shield6.png differ diff --git a/symbols/tru_shield7.png b/symbols/tru_shield7.png new file mode 100644 index 0000000..49e9e03 Binary files /dev/null and b/symbols/tru_shield7.png differ diff --git a/symbols/tru_shield8.png b/symbols/tru_shield8.png new file mode 100644 index 0000000..587324a Binary files /dev/null and b/symbols/tru_shield8.png differ diff --git a/symbols/trunk_shield1.png b/symbols/trunk_shield1.png new file mode 100644 index 0000000..bb849c2 Binary files /dev/null and b/symbols/trunk_shield1.png differ diff --git a/symbols/trunk_shield2.png b/symbols/trunk_shield2.png new file mode 100644 index 0000000..eb81d80 Binary files /dev/null and b/symbols/trunk_shield2.png differ diff --git a/symbols/trunk_shield3.png b/symbols/trunk_shield3.png new file mode 100644 index 0000000..4e6e976 Binary files /dev/null and b/symbols/trunk_shield3.png differ diff --git a/symbols/trunk_shield4.png b/symbols/trunk_shield4.png new file mode 100644 index 0000000..733d5d0 Binary files /dev/null and b/symbols/trunk_shield4.png differ diff --git a/symbols/trunk_shield5.png b/symbols/trunk_shield5.png new file mode 100644 index 0000000..d6700e7 Binary files /dev/null and b/symbols/trunk_shield5.png differ diff --git a/symbols/trunk_shield6.png b/symbols/trunk_shield6.png new file mode 100644 index 0000000..053784e Binary files /dev/null and b/symbols/trunk_shield6.png differ diff --git a/symbols/trunk_shield7.png b/symbols/trunk_shield7.png new file mode 100644 index 0000000..3d8a555 Binary files /dev/null and b/symbols/trunk_shield7.png differ diff --git a/symbols/trunk_shield8.png b/symbols/trunk_shield8.png new file mode 100644 index 0000000..3d8f1b1 Binary files /dev/null and b/symbols/trunk_shield8.png differ diff --git a/symbols/view_point.p.16.png b/symbols/view_point.p.16.png new file mode 100644 index 0000000..b18660c Binary files /dev/null and b/symbols/view_point.p.16.png differ diff --git a/symbols/vineyard.png b/symbols/vineyard.png new file mode 100644 index 0000000..6498e3f Binary files /dev/null and b/symbols/vineyard.png differ diff --git a/symbols/volcano.png b/symbols/volcano.png new file mode 100644 index 0000000..a713ca3 Binary files /dev/null and b/symbols/volcano.png differ diff --git a/symbols/walking.n.12.png b/symbols/walking.n.12.png new file mode 100644 index 0000000..0902983 Binary files /dev/null and b/symbols/walking.n.12.png differ diff --git a/symbols/windmill.png b/symbols/windmill.png new file mode 100644 index 0000000..17229f3 Binary files /dev/null and b/symbols/windmill.png differ diff --git a/symbols/zoo.png b/symbols/zoo.png new file mode 100644 index 0000000..ef7e65b Binary files /dev/null and b/symbols/zoo.png differ diff --git a/water-features.mss b/water-features.mss new file mode 100644 index 0000000..0672373 --- /dev/null +++ b/water-features.mss @@ -0,0 +1,72 @@ +#dam { + [zoom >= 13] { + line-width: 2; + line-color: #444; + line-join: round; + line-cap: round; + } + [zoom >= 15] { + text-name: "[name]"; + text-halo-radius: 1; + text-fill: #222; + text-size: 8; + text-face-name: @book-fonts; + } +} + +#marinas-area { + [zoom >= 14] { + a/line-width: 1; + a/line-offset: -0.5; + a/line-color: blue; + a/line-opacity: 0.1; + a/line-join: round; + a/line-cap: round; + b/line-width: 3; + b/line-offset: -1.5; + b/line-color: blue; + b/line-opacity: 0.1; + b/line-join: round; + b/line-cap: round; + [zoom >= 17] { + a/line-width: 2; + a/line-offset: -1; + b/line-width: 6; + b/line-offset: -3; + } + } +} + +#piers-area { + [zoom >= 12] { + polygon-fill: @land-color; + } +} + +#piers { + [man_made = 'breakwater'], + [man_made = 'groyne'] { + [zoom >= 12] { + line-width: 1; + line-color: #aaa; + } + [zoom >= 13] { + line-width: 2; + } + [zoom >= 16] { + line-width: 4; + } + } + [man_made = 'pier'][zoom >= 12] { + line-width: 1.5; + line-color: @land-color; + [zoom >= 13] { line-width: 3; } + [zoom >= 16] { line-width: 7; } + } +} + +#locks { + [waterway = 'lock_gate'][zoom >= 17] { + point-file: url('symbols/lock_gate.png'); + } +} diff --git a/water.mss b/water.mss new file mode 100644 index 0000000..d4ddfd7 --- /dev/null +++ b/water.mss @@ -0,0 +1,313 @@ +@water-text: #6699cc; + +#water-areas { + [natural = 'glacier']::natural { + [zoom >= 6] { + line-dasharray: 4,2; + line-width: 1.5; + line-color: #9cf; + polygon-pattern-file: url('symbols/glacier.png'); + [zoom >= 8] { + polygon-pattern-file: url('symbols/glacier2.png'); + } + } + } + + [waterway = 'dock'], + [waterway = 'mill_pond'], + [waterway = 'canal'] { + [zoom >= 9]::waterway { + polygon-gamma: 0.75; + polygon-fill: @water-color; + } + } + + [landuse = 'basin'][zoom >= 7]::landuse { + polygon-gamma: 0.75; + polygon-fill: @water-color; + } + + [natural = 'lake']::natural, + [natural = 'water']::natural, + [landuse = 'reservoir']::landuse, + [waterway = 'riverbank']::waterway, + [landuse = 'water']::water { + [zoom >= 6] { + polygon-fill: @water-color; + polygon-gamma: 0.75; + } + } + + [natural = 'mud'][zoom >= 13]::natural { + polygon-pattern-file: url('symbols/mud.png'); + } +} + +#water-areas-overlay { + [natural = 'marsh'], + [natural = 'wetland'] { + [zoom >= 13] { + polygon-pattern-file: url('symbols/marsh.png'); + } + } +} + +#glaciers-text { + [way_area >= 10000000][zoom >= 10], + [way_area >= 5000000][way_area < 10000000][zoom >= 11], + [way_area < 5000000][zoom >= 12] { + text-name: "[name]"; + text-size: 10; + text-fill: #77f; + text-face-name: @oblique-fonts; + text-halo-radius: 1.5; + text-wrap-width: 20; + } +} + +#water-lines-casing { + [waterway='stream'], + [waterway='ditch'], + [waterway='drain'] { + [zoom >= 13] { + line-width: 1.5; + line-color: white; + [waterway='stream'][zoom >= 15] { + line-width: 2.5; + } + } + } +} + +#water-lines-low-zoom { + [waterway = 'river'][zoom >= 8][zoom < 12] { + line-color: @water-color; + line-width: 0.7; + [zoom >= 9] { line-width: 1.2; } + [zoom >= 10] { line-width: 1.6; } + } +} + +#water-lines { + [waterway = 'weir'][zoom >= 15] { + line-color: #aaa; + line-width: 2; + line-join: round; + line-cap: round; + } + + [waterway = 'wadi'][zoom >= 13] { + line-color: @water-color; + line-width: 1; + line-dasharray: 4,4; + line-cap: round; + line-join: round; + [zoom >= 16] { line-width: 2; } + } + + [waterway = 'river'][zoom >= 12] { + line-color: @water-color; + line-width: 2; + line-cap: round; + line-join: round; + [zoom >= 13] { + line-width: 3; + } + [zoom >= 14] { + line-width: 5; + } + [zoom >= 15] { + line-width: 6; + } + [zoom >= 17] { + line-width: 10; + } + [zoom >= 18] { + line-width: 12; + } + [tunnel = 'yes'] { + [zoom >= 14] { + a/line-width: 6; + a/line-dasharray: 4,2; + a/line-color: @water-color; + b/line-width: 4; + b/line-color: white; + } + [zoom >= 15] { + a/line-width: 7; + } + [zoom >= 17] { + a/line-width: 11; + b/line-width: 7; + } + [zoom >= 18] { + a/line-width: 13; + b/line-width: 9; + } + } + } + + [waterway = 'canal'][zoom >= 12][zoom < 14] { + line-color: @water-color; + line-width: 3; + line-cap: round; + line-join: round; + [zoom >= 13] { + line-width: 4; + } + } + + [waterway = 'stream'], + [waterway = 'ditch'], + [waterway = 'drain'] { + [zoom >= 13][zoom < 15] { + line-width: 1; + line-color: @water-color; + } + } + + [waterway = 'stream'][zoom >= 15] { + line-width: 2; + line-color: @water-color; + [tunnel = 'yes'] { + line-dasharray: 4,2; + line-width: 2.4; + a/line-width: 1.2; + a/line-color: #f3f7f7; + } + } + + [waterway = 'drain'], + [waterway = 'ditch'] { + [zoom >= 15] { + line-width: 1; + line-color: @water-color; + [tunnel = 'yes'] { + line-width: 2; + line-dasharray: 4,2; + a/line-width: 1; + a/line-color: #f3f7f7; + } + } + } + + [waterway = 'canal'][zoom >= 14] { + line-width: 7; + line-color: @water-color; + line-join: round; + line-cap: round; + [zoom >= 17] { line-width: 11; } + [tunnel = 'yes'] { + line-dasharray: 4,2; + b/line-width: 3; + b/line-color: white; + [zoom >= 17] { line-width: 7; } + } + } + + [waterway = 'derelict_canal'][zoom >= 12] { + line-width: 1.5; + line-color: #b5e4d0; + line-dasharray: 4,4; + line-opacity: 0.5; + line-join: round; + line-cap: round; + [zoom >= 13] { + line-width: 2.5; + line-dasharray: 4,6; + } + [zoom >= 14] { + line-width: 4.5; + line-dasharray: 4,8; + } + } +} + +#waterway-bridges { + [zoom >= 14] { + line-width: 7; + line-color: #000; + line-join: round; + b/line-width: 6; + b/line-color: @water-color; + b/line-cap: round; + b/line-join: round; + [zoom >= 17] { + line-width: 11; + b/line-width: 10; + } + } +} + +#water-lines-text { + [waterway = 'river'][zoom >= 13] { + text-name: "[name]"; + text-face-name: @oblique-fonts; + text-placement: line; + text-fill: @water-text; + text-spacing: 400; + text-size: 10; + text-halo-radius: 1; + [zoom >= 14] { text-size: 12; } + [tunnel = 'yes'] { text-min-distance: 200; } + } + + [waterway = 'canal'][zoom >= 13][zoom < 14] { + text-name: "[name]"; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + text-size: 10; + text-placement: line; + text-fill: @water-text; + } + + [waterway = 'stream'][zoom >= 15] { + text-name: "[name]"; + text-size: 10; + text-face-name: @oblique-fonts; + text-fill: @water-text; + text-halo-radius: 1; + text-spacing: 600; + text-placement: line; + text-dy: 8; + } + + [waterway = 'drain'], + [waterway = 'ditch'] { + [zoom >= 15] { + text-name: "[name]"; + text-face-name: @oblique-fonts; + text-size: 10; + text-fill: @water-text; + text-spacing: 600; + text-placement: line; + text-halo-radius: 1; + } + } + + [waterway = 'canal'][zoom >= 14] { + text-name: "[name]"; + text-size: 10; + text-fill: @water-text; + text-placement: line; + text-face-name: @oblique-fonts; + text-halo-radius: 1; + [lock = 'yes'][zoom >= 17] { + text-placement: point; + text-wrap-width: 20; + } + } + + [waterway = 'derelict_canal'][zoom >= 13] { + text-name: "[name]"; + text-size: 10; + text-fill: #80d1ae; + text-face-name: @oblique-fonts; + text-placement: line; + text-spacing: 600; + text-halo-radius: 1; + [zoom >= 14] { + text-size: 12; + } + } +} -- cgit v1.2.3