/* {HOT-Validate.mapcss} Copyright (C) {2014} {Mark Cupitt} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ meta { title: "HOT-Validate"; description: "This Style is designed for HOT Validators for use in JOSM. More Info at https://github.com/MarkCupitt/HOT-Osm-Validation"; author: "MarkCupitt"; version: "1.0.21_2014-11-24"; } /* ------------------------------------------------------- General Things --------------------------------------------------------*/ canvas { background-color: #f7f6f1; default-points: false; default-lines: true; } node, area { text-color: white; } area:closed { fill-opacity: 0.3; } *::* { text-halo-color: black; text-anchor-horizontal: center; text-anchor-vertical: center; } /*============================================================================================================================== RELATION RESTRICTIONS Do not have these icons yet, have to find them ==============================================================================================================================*/ relation[restriction=no_left_turn] { icon-image: "vehicle/restriction/turn_restrictions/no_left_turn.png"; } relation[restriction=no_right_turn] { icon-image: "vehicle/restriction/turn_restrictions/no_right_turn.png"; } relation[restriction=no_straight_on] { icon-image: "vehicle/restriction/turn_restrictions/no_straight_on.png"; } relation[restriction=no_u_turn] { icon-image: "vehicle/restriction/turn_restrictions/no_u_turn.png"; } relation[restriction=only_left_turn] { icon-image: "vehicle/restriction/turn_restrictions/only_left_turn.png"; } relation[restriction=only_right_turn] { icon-image: "vehicle/restriction/turn_restrictions/only_right_turn.png"; } relation[restriction=only_straight_on] { icon-image: "vehicle/restriction/turn_restrictions/only_straight_on.png"; } /* ------------------------------------------------------- Nodes Display Zoom Level 16 and Above (Zoomed In) --------------------------------------------------------*/ node|z16-22 { symbol-shape: square; symbol-size: 6; symbol-fill-color: grey; symbol-fill-opacity: 0.3; symbol-stroke-color: black; symbol-stroke-opacity: 0.3; } node|z12-22:connection > way[!building] { symbol-shape: circle; symbol-size: 10; symbol-fill-color: lime; symbol-fill-opacity: 0.7; symbol-stroke-color: lime; symbol-stroke-opacity: 1.0; } way[!building] > node|z12-22:connection { symbol-shape: circle; symbol-size: 0; symbol-fill-color: lime; symbol-fill-opacity: 0.7; symbol-stroke-color: lime; symbol-stroke-opacity: 1.0; } /* ------------------------------------------------------- Any Unconnected Node --------------------------------------------------------* node:unconnected { symbol-shape: pentagon; symbol-size: 25; symbol-fill-color: red; symbol-fill-opacity: 0.7; symbol-stroke-color: red; symbol-stroke-opacity: 1.0; } /* ------------------------------------------------------- Roads Tags Not Used - these will highlight in Red --------------------------------------------------------*/ way[highway] { z-index: 5; text: auto; text-color: red; font-size: 12; text-position: line; text-halo-color: red; text-halo-radius: 2; linecap: round; casing-linecap: round; opacity: 1.0; color: red; width: 5; /* casing-width: 1; casing-color: red; */ } /* ------------------------------------------------------- Roads Tags to display but not relevant to HOT Just so these do not display in Red --------------------------------------------------------*/ way[highway=motorway],way[highway=motorway_link], way[highway=trunk],way[highway=trunk_link] { z-index: 5; text: auto; text-color: black; font-size: 12; text-position: line; text-halo-color: white; text-halo-radius: 2; linecap: round; casing-linecap: round; } way[highway=motorway],way[highway=motorway_link] { z-index: 9; casing-width: 3; width: 8; casing-color: #809BC0; color: #d4d4d4; } way[highway=trunk],way[highway=trunk_link] { z-index: 9; casing-width: 3; width: 9; casing-color: #7FC97F; color: #d4d4d4; } /*============================================================================================================================== CORE WAYS HOT Validation ==============================================================================================================================*/ /* ------------------------------------------------------- Roads Tags Allowed Display Muted --------------------------------------------------------*/ way[highway=primary],way[highway=primary_link], way[highway=secondary],way[highway=secondary_link], way[highway=tertiary],way[highway=tertiary_link], way[highway=residential],way[highway=unclassified], way[highway=track],way[highway=path] { z-index: 5; text: auto; text-color: white; font-size: 12; text-position: line; text-halo-color: black; text-halo-radius: 2; linecap: round; casing-linecap: round; opacity: 0.3; left-casing-width: 2; right-casing-width: 2; left-casing-offset: 2; right-casing-offset: 2; } way[highway=primary],way[highway=primary_link] { z-index: 9; width: 5; casing-color: blue; casing-width: 1; color: lavender; opacity: 0.3; } way[highway=secondary],way[highway=secondary_link] { z-index: 7; width: 4; casing-color: lime; casing-width: 1; color: gray; opacity: 0.3; } way[highway=tertiary], way[highway=tertiary_link] { z-index: 6; width: 3; casing-color: yellow; casing-width: 1; color: gray; opacity: 0.3; } way[highway=unclassified]{ z-index: 6; width: 2; casing-color: orange; color: gray; casing-width: 1; opacity: 0.3; } way[highway=residential] { z-index: 6; width: 2; casing-color: cyan; color: gray; casing-width: 1; opacity: 0.3; } way[highway=track] { z-index: 6; width: 2; casing-color: chocolate; color: chocolate; casing-width: 1; opacity: 0.3; } way[highway=path] { z-index: 6; width: 2; casing-color: tan; color: tan; casing-width: 1; opacity: 0.3; } /* ------------------------------------------------------- Surface Texture and Smoothness --------------------------------------------------------*/ way[!surface][highway] { z-index: 4; left-casing-dashes: 5, 5; right-casing-dashes: 5, 5; left-casing-color: red; right-casing-color: red; } way[surface=~/paved|asphalt|cobblestone|cobblestone:flattened|concrete|concrete:lanes|concrete:plates|paving_stones|paving_stones/][highway] { z-index: 4; left-casing-dashes: 5, 5; right-casing-dashes: 5, 5; left-casing-color: black; right-casing-color: black; } way[surface=~/unpaved|artificial_turf|clay|compacted|dirt|earth|fine_gravel|grass|grass_paver|gravel|ground|metal|mud|pebblestone|sand|wood/][highway] { z-index: 4; left-casing-dashes: 5, 5; right-casing-dashes: 5, 5; left-casing-color: chocolate; right-casing-color: chocolate; } /* way[smoothness=~/intermediate|good|excellent/] { z-index: 4; left-casing-color: blue; right-casing-color: blue; } way[smoothness=~/bad|very_bad|horrible|very_horrible|impassable/] { z-index: 4; left-casing-color: grey; right-casing-color: grey; } */ /* ------------------------------------------------------- Railways --------------------------------------------------------*/ way[railway=rail] { z-index: 6; color: black; width: 5; linecap: round; dashes: 0; } way[railway=rail]::dashes { z-index: 7; color: white; width: 3; dashes: 12,12; linecap: round; } way[construction=rail] { z-index: 6; color: black; width: 5; dashes: 6, 6, 4, 8;} way[construction=rail]::inner { z-index: 7; color: white; width: 3; dashes: 6,18; } way[railway=platform] { z-index: 5; color:black; width: 2; } way[railway=subway] { z-index: 6; color: #444444; width: 5; } way[railway=subway]::dashes { z-index: 7; color: white; width: 3; dashes: 8,8; } way[construction=subway] { z-index: 6; color: #444444; width: 5; dashes: 4, 4; } way[construction=subway]::dashes { z-index: 7; color: white; width: 3; dashes: 4,12;} way[railway=disused],way[railway=abandoned] { z-index: 6; color: #444400; width: 3; dashes: 17, 2, 5, 0; } way[railway=disused]::dashes,way[railway=abandoned]::dashes { z-index: 7; color: #999999; width: 2; dashes: 12,12; } way[railway=tram] { z-index: 11; color: #999999; width: 2; casing-color: black; casing-width: 2; } way[construction=tram] { z-index: 11; color: #999999; width: 2; casing-color: black; casing-width: 2; dashes: 6, 6; casing-dashes: 6, 6; } way[railway=light_rail] { z-index: 6; color: black; width: 4; } way[railway=light_rail]::dashes { z-index: 7; color: #999999; width: 2; dashes: 8,4; } way[construction=light_rail] { z-index: 6; color: black; width: 4; dashes: 8, 4, 4, 4; } way[construction=light_rail]::dashes { z-index: 7; color: #999999; width: 2; dashes: 8,12; } node[traffic_calming=bump] { icon-image: "icons/bump.png"; z-index: 20; } /* ------------------------------------------------------- Waterways --------------------------------------------------------*/ way[waterway=river] { z-index: 8; color: #3434ff; width: 3.5; text:auto; text-color: #3434ff; font-size:9; text-position: line; text-offset: 7; } way[waterway=canal], way[waterway=stream] { z-index: 5; color: #3434ff; width: 1.5; text:auto; text-color: #3434ff; font-size:9; text-position: line; text-offset: 7; } way[waterway=drain] { z-index: 5; color: #3434ff; width: 1; text:auto; text-color: #3434ff; text-position: line; text-offset: 3; } way[waterway][tunnel=yes] { z-index: 5; dashes: 8,4; } way[waterway][intermittent=yes] { z-index: 5; color: #1B00FD; opacity: 0.26; } /* ------------------------------------------------------- Aeroways --------------------------------------------------------*/ way[aeroway=aerodrome]:closed { z-index: 3; color: #bb44bb; width: 3; casing-color: #660660; casing-width: 1; } way|z-15[aeroway=aerodrome]:closed { z-index: 3; fill-color: #bb99bb; fill-opacity: 0.3;} way[aeroway=taxiway]!:closed { z-index: 8; color: #999999; width: 3; casing-color: #aa66aa; casing-width: 2; } area[aeroway=taxiway]:closed { z-index: 8; color: #bb99bb; width: 3; fill-color: #ccaacc; } way|z17-[aeroway=runway]!:closed { z-index: 9; color: black; width: 11; casing-color: #aa66aa; casing-width: 1; } way|z17-[aeroway=runway]!:closed::aa { z-index: 10; color: white; width: 9; dashes: 0, 20, 4, 76; } way|z17-[aeroway=runway]!:closed::bb { z-index: 11; color: black; width: 7; } way|z17-[aeroway=runway]!:closed::cc { z-index: 12; color: white; width: 5; dashes: 0, 20, 4, 76; } way|z17-[aeroway=runway]!:closed::dd { z-index: 13; color: black; width: 3; } way|z17-[aeroway=runway]!:closed::ee { z-index: 14; color: white; width: 1; dashes: 4, 16; } way|z15-16[aeroway=runway]!:closed { z-index: 9; color: black; width: 5; } way|z15-16[aeroway=runway]!:closed::aa { z-index: 12; color: white; width: 5; dashes: 0, 20, 4, 76; } way|z15-16[aeroway=runway]!:closed::bb { z-index: 13; color: black; width: 3; } way|z15-16[aeroway=runway]!:closed::cc { z-index: 14; color: white; width: 1; dashes: 4, 16; } way|z-14[aeroway=runway]!:closed { z-index: 9; color: #444444; width: 3; } area[aeroway=runway]:closed { z-index: 9; color: black; width: 3; fill-color: #775577; } area[aeroway=apron]:closed { z-index: 4; color: #cc66cc; width: 1; fill-color: #ddaadd; fill-opacity: 0.3; } /* ------------------------------------------------------- Barriers --------------------------------------------------------*/ way[barrier] { z-index: 5; color: #000000; width: 1} way[barrier=fence] { z-index: 5; color: #000000; width: 1; dashes: 8,4,2,4; } way[barrier=wall] { z-index: 5; color: #520000; width: 2; } /* ------------------------------------------------------- Power --------------------------------------------------------*/ way[power=line] { z-index: 5; color: darkgray; width: 3; dashes: 12,2; casing-color: black; casing-width: 2; casing-dashes: 4, 38; } way[power=minor_line] { z-index: 5; color: gray; width: 2; dashes: 2,4; casing-width: 3; casing-color: white; casing-dashes: 2,22; } area[power=station]:closed { color: black; width: 2; fill-color: #666666; fill-opacity: 0.6; small_area : true; } area[power=generator]:closed { color: black; width: 2; fill-color: #444444; fill-opacity: 0.6; small_area : true; } /* ------------------------------------------------------- Leisure --------------------------------------------------------*/ way[golf=hole] {z-index: 5; color: darkgreen; width: 5; casing-color: green; casing-width: 2; } area[leisure=sports_centre]:closed { color: #66ddcc; fill-color: #66ddcc; small_area : true; } /* ------------------------------------------------------- Physical Decoration --------------------------------------------------------*/ way[bridge=yes]::bridge1, way[bridge=viaduct]::bridge1, way[bridge=suspension]::bridge1 { z-index: 4; color: white; width: +3; } way[bridge=yes]::bridge2, way[bridge=viaduct]::bridge2, way[bridge=suspension]::bridge2 { z-index: 3; color: #444444; width: +6; } way[tunnel=yes][!waterway]::bridge1 { z-index: 4; color: white; width: +2; } way[tunnel=yes][!waterway]::bridge2 { z-index: 3; color: black; width: +6; dashes: 4,4; } /* ------------------------------------------------------- Attribute Decoration --------------------------------------------------------*/ /*way[oneway=yes]::arrows, way[junction=roundabout]::arrows { z-index: 15; color: #555555; width: 2; dashes: 10,50; line-style: arrows; } way[oneway=-1]::arrows { z-index: 15; color: #555555; width: 2; dashes: 10,50; line-style: arrows-reversed; }*/ /*============================================================================================================================== CORE POI's ==============================================================================================================================*/ node { text-anchor-horizontal: center; text-anchor-vertical: below; icon-opacity: 0.5; } node|z-15[name], node|z-15[operator], node|z-15[brand], node|z-15[capacity] { text: eval(""); } node|z16-[name], node|z16-[operator], node|z16-[brand], node|z-16[capacity] { icon-image: "icons/poi.png"; font-family: Open Sans; font-size: 9; text: auto; text-halo-color: black; text-halo-radius: 1.5; } node|z18-[name], node|z18-[operator], node|z18-[brand], node|z18-[capacity] { font-size: 11; text-halo-radius: 1.8; } node|z19-[name], node|z19-[operator], node|z19-[brand], node|z19-[capacity] { font-size: 12; text-halo-radius: 1.9; } node[place] { icon-image: "icons/place.png"; font-family: Open Sans; text: auto; text-halo-color: black; text-halo-radius: 2; font-size: 10; font-weight: bold; z-index: 20; } node[amenity=telephone] { icon-image: "icons/telephone.png"; z-index: 20; } node[barrier=cattle_grid] { icon-image: "icons/cattle_grid.png"; z-index: 20; } node[tourism=guesthouse] { icon-image: "icons/accommodation_bed_and_breakfast.n.16.png"; z-index: 20; } node[tourism=alpine_hut] { icon-image: "icons/accommodation_alpinehut.n.16.png"; z-index: 20; } node[tourism=camp_site] { icon-image: "icons/accommodation_camping.n.16.png"; z-index: 20; } node[tourism=caravan_site] { icon-image: "icons/accommodation_caravan_park.n.16.png"; z-index: 20; } node[tourism=chalet] { icon-image: "icons/accommodation_chalet.n.16.png"; z-index: 20; } node[tourism=guest_house],node[tourism=bed_and_breakfast] { icon-image: "icons/accommodation_bed_and_breakfast.n.16.png"; z-index: 20; } node[tourism=hotel] { icon-image: "icons/hotel-18.png"; font-size: 10; } node[tourism=hostel] { icon-image: "icons/accommodation_youth_hostel.n.16.png"; z-index: 20; } node[tourism=motel] { icon-image: "icons/accommodation_motel.n.16.png"; z-index: 20; } node[amenity=fire_station] { icon-image: "icons/fire_station-18.png"; z-index: 20; } node[amenity=police] { icon-image: "icons/police-18.png"; } node[amenity=post_box] { icon-image: "icons/amenity_post_box.n.16.png"; z-index: 20; } node[amenity=recycling] { icon-image: "icons/amenity_recycling.n.16.png"; z-index: 20; } node[barrier=bollard] { icon-image: "icons/barrier_bollard.n.16.png"; z-index: 20; } node[barrier=gate], node[highway=gate] { icon-image: "icons/gate.png"; z-index: 20; } node[barrier=stile], node[highway=stile] { icon-image: "icons/barrier_stile.n.16.png"; z-index: 20; } node[barrier=toll_booth] { icon-image: "icons/barrier_toll_booth.n.16.png"; z-index: 20; } node[barrier=lift_gate] { icon-image: "icons/barrier_lift_gate.n.16.png"; z-index: 20; } node[barrier=kissing_gate] { icon-image: "icons/barrier_kissing_gate.16.png"; z-index: 20; } node[barrier=cycle_barrier] { icon-image: "icons/barrier_cycle_barrier.16.png"; z-index: 20; } node[barrier=block] { icon-image: "icons/road_block.png"; } node[barrier=cattle_grid] { icon-image: "icons/barrier_cattle_grid.16.png"; z-index: 20; } node[shop], node[craft], node[tourism], node[amenity] { z-index: 20; } node|z18-[craft], node|z18-[shop], node|z18-[tourism], node|z18-[amenity] { text: auto; text-offset:0; } node[amenity=school] { icon-image: "icons/school-18.png"; } node[amenity=university] { icon-image: "icons/university-18.png"; } node[amenity=library] { icon-image: "icons/library.png"; } node[amenity=arts_centre] { icon-image: "icons/arts_centre-18.png"; } node[amenity=bar] { icon-image: "icons/bar-18.png"; } node[amenity=cafe] { icon-image: "icons/cafe-18.png"; } node[amenity=fast_food] { icon-image: "icons/food_fastfood.n.16.png"; z-index: 20; } node[amenity=pub] { icon-image: "icons/pub.png"; } node[amenity=restaurant] { icon-image: "icons/restaurant-18.png"; } node[amenity=clinic], node[amenity=hospital] { icon-image: "icons/hospital-18.png"; z-index: 20; } node[amenity=pharmacy] { icon-image: "icons/pharmacy-18.png"; } node[amenity=studio] { icon-image: "icons/studio-18.png"; } node[amenity=atm] { icon-image: "icons/atm-18.png"; } node[amenity=bank] { icon-image: "icons/bank-18.png"; } /* More Amenities */ node|z19-[amenity=bench] { icon-image: "icons/bench-18.png"; z-index: 20; } node[amenity=drinking_water] { icon-image: "icons/drinking_water-18.png"; } node[amenity=emergency_phone] { icon-image: "icons/emergency-telephone-16.png"; z-index: 20; } node[amenity=fountain] { icon-image: "icons/amenity_fountain2.n.16.png"; z-index: 20; } node[amenity=hunting_stand] { icon-image: "icons/sport_shooting.n.16.png"; z-index: 20; } node[amenity=kindergarten] { icon-image: "icons/kindergarten-18.png"; } node[amenity=post_office] { icon-image: "icons/amenity_post_office.n.16.png"; z-index: 20; } node[amenity=shelter] { icon-image: "icons/accommodation_shelter2.n.16.png"; z-index: 20; } node[amenity=swimming_pool] { icon-image: "icons/sport_swimming_outdoor.n.16.png"; z-index: 20; } node[amenity=townhall] { icon-image: "icons/townhall-18.png"; font-size: 10; z-index: 20; } node[amenity=toilets] { icon-image: "icons/toilets-18.png"; } node[amenity=shower] { icon-image: "icons/shower.png"; } node[amenity=vending_machine] { icon-image: "icons/shopping_vending_machine.n.16.png"; z-index: 20; } node[amenity=veterinary] { icon-image: "icons/health_veterinary.n.8E7409.16.png"; z-index: 20; } node[amenity=waste_basket] { icon-image: "icons/waste_basket-18.png"; } node[amenity=money_transfer] { icon-image: "icons/money_transfer-18.png"; } node[amenity=gambling] { icon-image: "icons/gambling-18.png"; } node[amenity=grave_yard] { icon-image: "icons/grave_yard-18.png"; } node[amenity=cinema] { icon-image: "icons/cinema-18.png"; } node[amenity=social_facility] { icon-image: "icons/social_facility-18.png"; } node[amenity=dentist] { icon-image: "icons/dentist-18.png"; } /* ------------------------------------------------------- Places of Worship --------------------------------------------------------*/ node[amenity=place_of_worship] { icon-image: "icons/place_of_worship-18.png"; } /* ------------------------------------------------------- Craft --------------------------------------------------------*/ node[craft] { icon-image: "icons/craft-18.png"; } /* ------------------------------------------------------- Shops --------------------------------------------------------*/ node[shop] { icon-image: "icons/shop-18.png"; } node[shop=bakery] { icon-image: "icons/bakery-18.png"; } node[amenity=marketplace] { icon-image: "icons/marketplace-18.png"; } node[shop=supermarket] { icon-image: "icons/supermarket-18.png"; } node[shop=car_repair] { icon-image: "icons/car_repair-18.png"; } node[shop=beverages] { icon-image: "icons/beverages-18.png"; } node[shop=mobile_phone] { icon-image: "icons/mobile_phone-18.png"; } node[shop=car_parts] { icon-image: "icons/car_parts-18.png"; } node[shop=doityourself] { icon-image: "icons/diy.png"; } node[shop=beauty] { icon-image: "icons/beauty.png"; } node[shop=hairdresser] { icon-image: "icons/hairdresser-18.png"; } node[shop=funeral_directors] { icon-image: "icons/funeral_directors-18.png"; } node[shop=dry_cleaning] { icon-image: "icons/dry_cleaning-18.png"; } node[shop=clothes] { icon-image: "icons/clothes-18.png"; } node[shop=bicycle] { icon-image: "icons/bicycle_repair.png"; } node[shop=motorcycle] { icon-image: "icons/motorcycle_repair.png"; } node[shop=photo] { icon-image: "icons/photo-18.png"; } node[shop=tailor] { icon-image: "icons/tailor-18.png"; } node[shop=computer] { icon-image: "icons/computer-18.png"; } /*node[shop=alcohol] { icon-image: "icons/shopping_alcohol.n.16.png"; z-index: 20; } node[shop=book], node[shop=books] { icon-image: "icons/shopping_book.n.16.png"; z-index: 20; } node[shop=butcher] { icon-image: "icons/shopping_butcher.n.16.png"; z-index: 20; } node[shop=car] { icon-image: "icons/shopping_car.n.16.png"; z-index: 20; } node[shop=confectionery] { icon-image: "icons/shopping_confectionery.n.16.png"; z-index: 20; } node[shop=convenience] { icon-image: "icons/shopping_convenience.n.16.png"; z-index: 20; } node[shop=fishmonger] { icon-image: "icons/shopping_fish.n.16.png"; z-index: 20; } node[shop=florist] { icon-image: "icons/shopping_florist.n.16.png"; z-index: 20; } node[shop=garden_centre] { icon-image: "icons/shopping_garden_centre.n.16.png"; z-index: 20; } node[shop=gift] { icon-image: "icons/shopping_gift.n.16.png"; z-index: 20; } node[shop=greengrocer] { icon-image: "icons/shopping_greengrocer.n.16.png"; z-index: 20; } node[shop=hairdresser] { icon-image: "icons/shopping_hairdresser.n.16.png"; z-index: 20; } node[shop=hifi] { icon-image: "icons/shopping_hifi.n.16.png"; z-index: 20; } node[shop=jewelry] { icon-image: "icons/shopping_jewelry.n.16.png"; z-index: 20; } node[shop=kiosk] { icon-image: "icons/shopping_kiosk.n.16.png"; z-index: 20; } node[shop=laundry] { icon-image: "icons/shopping_laundrette.n.16.png"; z-index: 20; } node[shop=music] { icon-image: "icons/shopping_music.n.16.png"; z-index: 20; } node[shop=toys] { icon-image: "icons/shopping_toys.n.16.png"; z-index: 20; } /* ------------------------------------------------------- Tourist --------------------------------------------------------*/ node[tourism=artwork] { icon-image: "icons/tourist_art_gallery2.n.16.png"; z-index: 20; } node[historic=archaeological_site] { icon-image: "icons/tourist_archaeological.n.16.png"; z-index: 20; } node[historic=battlefield] { icon-image: "icons/tourist_battlefield.n.16.png"; z-index: 20; } node[historic=castle] { icon-image: "icons/tourist_castle.n.16.png"; z-index: 20; } node[historic=memorial] { icon-image: "icons/tourist_memorial.n.16.png"; z-index: 20; } node[historic=monument] { icon-image: "icons/tourist_monument.n.16.png"; z-index: 20; } node[tourism=museum] { icon-image: "icons/tourist_museum.n.16.png"; z-index: 20; } node[tourism=information] { icon-image: "icons/tourist_information.png"; z-index: 20; } node[tourism=picnic_site] { icon-image: "icons/tourist_picnic.n.16.png"; z-index: 20; } node[historic=ruins] { icon-image: "icons/tourist_ruin.n.16.png"; z-index: 20; } node[amenity=theatre] { icon-image: "icons/tourist_theatre.n.16.png"; z-index: 20; } node[tourism=theme_park] { icon-image: "icons/tourist_theme_park.n.16.png"; z-index: 20; } node[tourism=viewpoint] { icon-image: "icons/tourist_view_point.n.16.png"; z-index: 20; } node[tourism=zoo] { icon-image: "icons/tourist_zoo.n.16.png"; z-index: 20; } /* ------------------------------------------------------- Transport --------------------------------------------------------*/ node[aeroway=aerodrome] { icon-image: "icons/transport_aerodrome.n.16.png"; z-index: 20; } node[aeroway=gate] { icon-image: "icons/transport_airport_gate.n.16.png"; z-index: 20; } node[aeroway=terminal] { icon-image: "icons/transport_airport_terminal.n.16.png"; z-index: 20; } node[aeroway=helipad] { icon-image: "icons/transport_helicopter_pad.n.16.png"; z-index: 20; } node[amenity=bus_station] { icon-image: "icons/bus_station.png"; } node[highway=bus_stop] { icon-image: "icons/bus_stop.png"; z-index: 20; } node[amenity=fuel] { icon-image: "icons/fuel-18.png"; } node[amenity=car_wash] { icon-image: "icons/transport_car_wash.n.16.png"; z-index: 20; } node[amenity=bicycle_parking] { icon-image: "icons/transport_parking_bicycle.n.16.png"; z-index: 20; } node[amenity=parking] { icon-image: "icons/parking.png"; z-index: 20; } node[amenity=ferry_terminal] { icon-image: "icons/transport_port.n.16.png"; z-index: 20; } node[amenity=bicycle_rental] { icon-image: "icons/transport_rental_bicycle.n.16.png"; z-index: 20; } node[amenity=car_rental] { icon-image: "icons/car_rental-18.png"; } node[amenity=taxi] { icon-image: "icons/taxi-18.png"; } node[railway=station] { icon-image: "icons/railway_station.png"; z-index: 20; } node[railway=tram_stop] { icon-image: "icons/transport_tram_stop.n.16.png"; z-index: 20; } node[leisure=marina] { icon-image: "icons/transport_marina.n.16.png"; z-index: 20; } node[highway=mini_roundabout] { icon-image: "icons/transport_miniroundabout_anticlockwise.n.16.png"; z-index: 20; } node[highway=crossing] { icon-image: "icons/transport_zebracrossing.n.16.png"; z-index: 20; } /* Misc */ node[leisure=playground] { icon-image: "icons/amenity_playground.n.16.png"; z-index: 20; } node[leisure=sports_centre] { icon-image: "icons/sport_leisure_centre.n.16.png"; z-index: 20; } node[man_made=survey_point] { icon-image: "icons/manmade_lighthouse.png"; z-index: 20; } node[man_made=tower] { icon-image: "icons/manmade_tower.png"; z-index: 20; } /* Yes these power stations seem a little backward - but that's seemingly what the side menu uses ATM */ node[power=station] { icon-image: "icons/power_substation.n.16.png"; z-index: 20; } node[power=generator] { icon-image: "icons/power_station.png"; z-index: 20; } node[power=tower] { icon-image: "icons/power_tower_high2.n.16.png"; z-index: 20; } node|z19-[power=pole] { icon-image: "icons/power_pole.png"; z-index: 20; } node[waterway=weir] { icon-image: "icons/transport_weir.n.16.png"; z-index: 20; } node[natural=tree] { icon-image: "icons/tree.png"; } /*============================================================================================================================== ADDRESSES ==============================================================================================================================*/ node|z-16[addr:housenumber] { text: eval(""); } node|z17-[addr:housenumber] { symbol-shape: octagon; symbol-size: eval((min(length(tag("addr:housenumber")), 3) * 5) + 4); symbol-fill-color: white; text: "addr:housenumber"; text-anchor-horizontal: center; text-anchor-vertical: center; text-offset-y: -1; } node|z17-[addr:housenumber]::hn_casing { z-index: -100; symbol-shape: octagon; symbol-size: eval((min(length(tag("addr:housenumber")), 3) * 5) + 8); symbol-fill-color: black; } way[addr:interpolation] { z-index: 5; color: #B0E0E6; width: 3; dashes: 3,3; } /*============================================================================================================================== CORE LANDUSE ==============================================================================================================================*/ /* ------------------------------------------------------- Landuse --------------------------------------------------------*/ area[natural]:closed { color: #ADD6A5; width: 1; fill-color: #ADD6A5; fill-opacity: 0.2; } area[natural=beach]:closed { color: #ffdd44; width: 1; fill-color: yellow; fill-opacity: 0.2; small_area : true; } way[natural=coastline] { z-index: 5; color: black; width: 3; } area[landuse]:closed { color: #444444; width: 2; fill-color: #444444; fill-opacity: 0.3; small_area : true; } area[landuse=residential]:closed { color: lime; width: 2; fill-color: thistle; fill-opacity: 0.3; } /* ------------------------------------------------------- Buildings --------------------------------------------------------*/ area[building]:closed { color: green; width: 1; fill-color: green; fill-opacity: 0.2; small_area : true; } /* ------------------------------------------------------- Flag any Intersects between ways and landuse , way|z12-22:connection[!building] --------------------------------------------------------*/ area[landuse]:closed > node:connection { color: red; fill-color: red; fill-opacity: 0.7; symbol-shape: triangle; symbol-size: 50; symbol-fill-color: Red; symbol-fill-opacity: 0.6; symbol-stroke-color: black; symbol-stroke-opacity: 0.7; } /* ------------------------------------------------------- Flag any Intersects between ways and natural --------------------------------------------------------*/ area[natural]:closed > node:connection { color: red; fill-color: red; fill-opacity: 0.7; symbol-shape: triangle; symbol-size: 50; symbol-fill-color: Red; symbol-fill-opacity: 0.6; symbol-stroke-color: black; symbol-stroke-opacity: 0.7; } area[landuse=retail]:closed { color: #cc2222; width: 2; fill-color: #aa4422; fill-opacity: 0.15; } area[landuse=commercial]:closed { color: #D5C6C9; width: 2; fill-color: #D5C6C9; fill-opacity: 0.15; } area[landuse=military]:closed { color: #ff4444; width: 2; fill-color: #ff4444; fill-opacity: 0.2; small_area : true; } /* way[sport] should not be rendered by itself, according to wiki. Can we make it an "if all else fails"? */ area[leisure]:closed { color: #8CD6B5; width: 1; fill-color: #8CD6B5; fill-opacity: 0.2; } area[tourism]:closed { color: #F7CECE; width: 1; fill-color: #F7CECE; fill-opacity: 0.2; small_area : true; } area[historic]:closed, area[ruins]:closed { color: #F7F7DE; width: 1; fill-color: #F7F7DE; fill-opacity: 0.2; small_area : true; } area[military]:closed { color: #D6D6D6; width: 1; fill-color: #D6D6D6; fill-opacity: 0.2; small_area : true; } area[natural=water]:closed, area[waterway][waterway!=dam]:closed { color: #3434ff; width: 2; fill-color: #3434ff; fill-opacity: 0.2; small_area : true; } way[waterway=dam] { z-index: 5; color: black; width: 1; fill-color: #222222; fill-opacity: 0.1; small_area : true; } /* ------------------------------------------------------- Man Made --------------------------------------------------------*/ area[man_made]:closed { color: black; width: 2; fill-color: #222222; fill-opacity: 0.1; small_area : true; } area[man_made=reservoir_covered]:closed { color: #3434ff; width: 2; dashes: 4, 2; fill-color: #222222; fill-opacity: 0.1; small_area : true; } way[man_made=pier] { z-index: 4; color: #777; width: 3; casing-color: black; casing-width: 1; } way[man_made=pier][floating=yes] { z-index: 5; dashes: 4,2; casing-color: #444; } /* ------------------------------------------------------- Land Use --------------------------------------------------------*/ area[landuse=reservoir]:closed { color: #3434ff; width: 2; fill-color: #3434ff; fill-opacity: 0.2; small_area : true; } area[landuse=forest]:closed, area[natural=wood]:closed { color: green; width: 2; fill-color: green; fill-opacity: 0.2; small_area : true; } area[leisure=park]:closed { color: #22aa22; width: 2; fill-color: #44ff44; fill-opacity: 0.15; small_area : true; } area[leisure=garden]:closed { color: #66ff44; width: 1; fill-color: #66ff44; fill-opacity: 0.2; small_area : true; } area[leisure=pitch]:closed { z-index: 6; color: #88bb44; width: 2; fill-color: #88ff44; fill-opacity: 0.2; small_area : true; } area[landuse=recreation_ground]:closed { color: green; fill-color: green; small_area : true; } area[amenity]:closed, area[shop]:closed { color: #ADCEB5; width: 1; fill-color: #ADCEB5; fill-opacity: 0.2; } area[amenity=parking]:closed { color: #bbaa66; width: 1; fill-color: #bbaa66; fill-opacity: 0.2; } area[amenity=school]:closed { color: yellow; fill-color: yellow; fill-opacity: .2; prop_area_small_name : 1; } area[public_transport=pay_scale_area]:closed { color: gray; width: 1; fill-color: gray; fill-opacity: 0.1; } area[leisure=marina]:closed { color: pink; fill-color: pink; fill-opacity: 0.4; small_area : true; } way[leisure=slipway] { z-index: 5; color: grey; width: 3; casing-color: #3434ff; casing-width: 2; } area[leisure=golf_course]:closed { color: #44ee22; width: 2; fill-color: #44ee22; fill-opacity: 0.2; small_area : true; } way[boundary] { z-index: 5; color: #000066; width: 2; opacity: 0.6; dashes: 24,4, 4, 4; z-index: 4; } /* Perhaps should be filled, on lower zooms. */ way[boundary=national_park] { z-index: 5; color: #225500; width: 2; opacity: 0.6; dashes: 24,4, 4, 4; z-index: 4; } way[boundary=protected_area] { z-index: 5; color: #447744; width: 2; opacity: 0.6; dashes: 12,4, 4, 4; z-index: 4; } way[boundary=administrative] { z-index: 5; color: purple; width: 2; opacity: 0.2; dashes: 24,4; z-index: 4; } way[boundary=administrative][waterway] { z-index: 5; opacity: 0.8; z-index: 4; dashes: 24,4; width: 6; } area[landuse=cemetery]:closed { color: #664466; width: 2; fill-color: #664466; opacity: 0.2; small_area : true; } /* Addressing. Nodes with addresses *and* match POIs should have a poi icon, so we put addressing first */ /* Route relations */ relation[type=route] > way::route { z-index: -1; width: 13; color: #777; opacity: 0.3; linecap: none; } relation[type=route][route=bicycle][network=ncn] > way::route { z-index: -1; width: 12; color: red; opacity: 0.3; linecap: none; } relation[type=route][route=bicycle][network=rcn] > way::route { z-index: -1; width: 12; color: cyan; opacity: 0.3; linecap: none; } relation[type=route][route=bicycle][network=lcn] > way::route { z-index: -1; width: 12; color: blue; opacity: 0.3; linecap: none; } relation[type=route][route=mtb] > way::route { z-index: -1; width: 12; color: brown; opacity: 0.3; linecap: none; } relation[type=route][route=foot] > way::route { z-index: -1; width: 10; color: #80ff80; opacity: 0.6; linecap: none; } area[eval(prop(small_area))]:closed { text-color: black; font-size: 10; text: name; text-halo-color: black; text-halo-radius: 2; text-position: center; } /*============================================================================================================================== HOT Specific ==============================================================================================================================*/ node[man_made=water_well] { icon-image: "icons/bucket-18.png"; z-index: 20; } node[man_made=water_tower] { icon-image: "icons/water_tower-18.png"; z-index: 20; } node[man_made=tower]["tower:type"=communication] { icon-image: "icons/communication_tower-18.png"; } node[amenity=courthouse] { icon-image: "icons/courthouse-18.png"; } node[highway=street_lamp] { icon-image: "icons/street_lamp-18.png"; } node[office=ngo] { icon-image: "icons/ngo-18.png"; } node[office=government] { icon-image: "icons/government.png"; } /* ------------------------------------------------------- HOT Activation Boundaries --------------------------------------------------------*/ way[HOT][boundary] { z-index: 10; linecap: round; casing-linecap: round; opacity: 1.0; color: White; width: 3; left-casing-width: 2; right-casing-width: 2; left-casing-offset: 2; right-casing-offset: 2; casing-color: grey; } /*============================================================================================================================== FIXME TAGS ==============================================================================================================================*/ way[fixme],way[FIXME],way[Fixme],way[FixMe],way[FIxMe],way[FIXMe],way[FiXMe] { z-index: 100; repeat-image: "icons/fixme.png"; repeat-image-width: 40; repeat-image-height: 40; repeat-image-align: center; repeat-image-offset: 10; repeat-image-spacing: 100; repeat-image-phase: 50; } way[fixme],way[FIXME],way[Fixme],way[FixMe],way[FIxMe],way[FIXMe],way[FiXMe] { z-index: 100; icon-image: "icons/fixme.png"; icon-height: 40; icon-width: 40; } way[fixme],way[FIXME],way[Fixme],way[FixMe],way[FIxMe],way[FIXMe],way[FiXMe] { z-index: 100; repeat-image: "icons/fixme.png"; repeat-image-width: 40; repeat-image-height: 40; repeat-image-align: center; repeat-image-offset: 10; repeat-image-spacing: 100; repeat-image-phase: 50; }