/* Osmic JOSM map paint style As this style only covers icons you will still need the default style (or any other). */ meta { title: "Osmic"; description: "Osmic icons for JOSM"; author: "nebulon42"; version: "0.1"; link: "https://github.com/gmgeo/osmic-josm-style"; } /*************************/ /* create style settings */ /*************************/ setting::hide_icons { type: boolean; label: tr("Hide icons at low zoom"); default: true; } setting::shrink_nodes { type: boolean; label: tr("Less obtrusive node symbols at low zoom"); default: true; } /*****************************/ /* building/entrance/address */ /*****************************/ node[entrance=yes] { icon-image: "icons/amenity/entrance-14.svg"; set icon_z17; icon-width: 14; } node[entrance=main] { icon-image: "icons/amenity/entrance-main-14.svg"; set icon_z17; icon-width: 14; } node[entrance=service] { icon-image: "icons/amenity/entrance-service-14.svg"; set icon_z17; icon-width: 14; } node[entrance=emergency] { icon-image: "icons/amenity/entrance-emergency-14.svg"; set icon_z17; icon-width: 14; } node[entrance=exit] { icon-image: "icons/amenity/exit-14.svg"; set icon_z17; icon-width: 12 } /****************/ /* barrier tags */ /****************/ node[barrier=bollard] { icon-image: "icons/barrier/bollard-14.svg"; set icon_z17; icon-width: 14; } node[barrier=gate] { icon-image: "icons/barrier/gate-14.svg"; set icon_z17; icon-width: 14; } node[barrier=lift_gate] { icon-image: "icons/barrier/lift-gate-14.svg"; set icon_z17; icon-width: 14; } node[barrier=cattle_grid] { icon-image: "icons/barrier/cattle-grid-14.svg"; set icon_z17; icon-width: 14; } /*************************/ /* highway tags */ /*************************/ node[highway=ford], node[ford?] { icon-image: "icons/transport/ford-18.svg"; set icon_z17; icon-width: 18; } node[highway=steps] { icon-image: "icons/barrier/steps-14.svg"; set icon_z17; icon-width: 14; } node[highway=elevator] { icon-image: "icons/transport/elevator-18.svg"; set icon_z17; icon-width: 18; } /*************************/ /* generator:source tags */ /*************************/ node[generator:source=wind] { icon-image: "icons/energy/power-wind-18.svg"; set icon_z17; icon-width: 18; } /*****************/ /* man_made tags */ /*****************/ node[man_made=lighthouse] { icon-image: "icons/outdoor/lighthouse-18.svg"; set icon_z17; icon-width: 18; } node[man_made=water_tower] { icon-image: "icons/outdoor/water-tower-18.svg"; set icon_z17; icon-width: 18; } node[man_made=windmill] { icon-image: "icons/tourism/windmill-18.svg"; set icon_z17; icon-width: 18; } node[man_made=mast] { icon-image: "icons/outdoor/mast-18.svg"; set icon_z17; icon-width: 18; } node[man_made=mast][tower:type=communication] { icon-image: "icons/outdoor/mast-communications-18.svg"; set icon_z17; icon-width: 18; } /***************/ /* office tags */ /***************/ node[office=government] { icon-image: "icons/administration/government-18.svg"; set icon_z17; icon-width: 18; } /****************/ /* leisure tags */ /****************/ node[leisure=water_park] { icon-image: "icons/sports/swimming-18.svg"; set icon_z17; icon-width: 18; } node[leisure=playground] { icon-image: "icons/amenity/playground-18.svg"; set icon_z17; icon-width: 18; } node[leisure=picnic_table] { icon-image: "icons/outdoor/table-18.svg"; set icon_z17; icon-width: 18; } /*************/ /* shop tags */ /*************/ node[shop=supermarket] { icon-image: "icons/shop/supermarket-18.svg"; set icon_z17; icon-width: 18; } node[shop=convenience] { icon-image: "icons/shop/convenience-18.svg"; set icon_z17; icon-width: 18; } node[shop=bakery] { icon-image: "icons/shop/bakery-18.svg"; set icon_z17; icon-width: 18; } node[shop=butcher] { icon-image: "icons/shop/butcher-18.svg"; set icon_z17; icon-width: 18; } node[shop=bicycle] { icon-image: "icons/shop/bicycle-18.svg"; set icon_z17; icon-width: 18; } node[shop=doityourself] { icon-image: "icons/shop/doityourself-18.svg"; set icon_z17; icon-width: 18; } node[shop=dry_cleaning], node[shop=laundry] { icon-image: "icons/shop/laundry-18.svg"; set icon_z17; icon-width: 18; } node[shop=kiosk] { icon-image: "icons/shop/kiosk-18.svg"; set icon_z17; icon-width: 18; } node[shop=beverages] { icon-image: "icons/shop/beverages-18.svg"; set icon_z17; icon-width: 18; } node[shop=alcohol] { icon-image: "icons/shop/alcohol-18.svg"; set icon_z17; icon-width: 18; } node[shop=books] { icon-image: "icons/shop/books-18.svg"; set icon_z17; icon-width: 18; } node[shop=car], node[shop=car_dealer] { icon-image: "icons/shop/car-18.svg"; set icon_z17; icon-width: 18; } node[shop=car_repair] { icon-image: "icons/shop/repair-car-18.svg"; set icon_z17; icon-width: 18; } node[shop=clothes] { icon-image: "icons/shop/clothes-18.svg"; set icon_z17; icon-width: 18; } node[shop=computer] { icon-image: "icons/shop/computer-18.svg"; set icon_z17; icon-width: 18; } node[shop=confectionery] { icon-image: "icons/shop/confectionery-18.svg"; set icon_z17; icon-width: 18; } node[shop=copyshop] { icon-image: "icons/shop/copyshop-18.svg"; set icon_z17; icon-width: 18; } node[shop=cycle_repair] { icon-image: "icons/shop/repair-bicycle-18.svg"; set icon_z17; icon-width: 18; } node[shop=electronics] { icon-image: "icons/shop/electronics-18.svg"; set icon_z17; icon-width: 18; } node[shop=furniture] { icon-image: "icons/shop/furniture-18.svg"; set icon_z17; icon-width: 18; } node[shop=florist] { icon-image: "icons/shop/florist-18.svg"; set icon_z17; icon-width: 18; } node[shop=gift] { icon-image: "icons/shop/gift-18.svg"; set icon_z17; icon-width: 18; } node[shop=greengrocer] { icon-image: "icons/shop/greengrocer-18.svg"; set icon_z17; icon-width: 18; } node[shop=garden_centre] { icon-image: "icons/shop/garden-centre-18.svg"; set icon_z17; icon-width: 18; } node[shop=hairdresser] { icon-image: "icons/shop/hairdresser-18.svg"; set icon_z17; icon-width: 18; } node[shop=hardware] { icon-image: "icons/shop/doityourself-18.svg"; set icon_z17; icon-width: 18; } node[shop=hifi] { icon-image: "icons/shop/hifi-18.svg"; set icon_z17; icon-width: 18; } node[shop=ice_cream] { icon-image: "icons/shop/ice-cream-18.svg"; set icon_z17; icon-width: 18; } node[shop=jewelry] { icon-image: "icons/shop/jewellery-18.svg"; set icon_z17; icon-width: 18; } node[shop=mobile_phone] { icon-image: "icons/shop/mobile-phone-18.svg"; set icon_z17; icon-width: 18; } node[shop=newsagent] { icon-image: "icons/shop/news-18.svg"; set icon_z17; icon-width: 18; } node[shop=optician] { icon-image: "icons/shop/optician-18.svg"; set icon_z17; icon-width: 18; } node[shop=shoes] { icon-image: "icons/shop/shoes-18.svg"; set icon_z17; icon-width: 18; } node[shop=stationery] { icon-image: "icons/shop/stationery-18.svg"; set icon_z17; icon-width: 18; } node[shop=toys] { icon-image: "icons/shop/toys-18.svg"; set icon_z17; icon-width: 18; } node[shop=pet] { icon-image: "icons/shop/pet-18.svg"; set icon_z17; icon-width: 18; } node[shop=photo] { icon-image: "icons/shop/photo-18.svg"; set icon_z17; icon-width: 18; } node[shop=car_parts] { icon-image: "icons/shop/car-parts-18.svg"; set icon_z17; icon-width: 18; } node[shop=beauty] { icon-image: "icons/shop/beauty-18.svg"; set icon_z17; icon-width: 18; } node[shop=wine] { icon-image: "icons/shop/alcohol-18.svg"; set icon_z17; icon-width: 18; } node[shop=chemist] { icon-image: "icons/shop/chemist-18.svg"; set icon_z17; icon-width: 18; } /****************/ /* amenity tags */ /****************/ node[amenity=pub] { icon-image: "icons/eat-drink/pub-18.svg"; set icon_z17; icon-width: 18; } node[amenity=biergarten] { icon-image: "icons/eat-drink/biergarten-18.svg"; set icon_z17; icon-width: 18; } node[amenity=nightclub] { icon-image: "icons/amenity/nightclub-18.svg"; set icon_z17; icon-width: 18; } node[amenity=cafe] { icon-image: "icons/eat-drink/cafe-18.svg"; set icon_z17; icon-width: 18; } node[amenity=clock] { icon-image: "icons/amenity/clock-18.svg"; set icon_z17; icon-width: 18; } node[amenity=restaurant] { icon-image: "icons/eat-drink/restaurant-18.svg"; set icon_z17; icon-width: 18; } node[amenity=food_court] { icon-image: "icons/eat-drink/restaurant-18.svg"; set icon_z17; icon-width: 18; } node[amenity=fast_food] { icon-image: "icons/eat-drink/fast-food-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bar] { icon-image: "icons/eat-drink/bar-18.svg"; set icon_z17; icon-width: 18; } node[amenity=ice_cream] { icon-image: "icons/eat-drink/ice-cream-18.svg"; set icon_z17; icon-width: 18; } node[amenity=parking] { icon-image: "icons/transport/parking-car-18.svg"; set icon_z17; icon-width: 18; } node[amenity=parking_entrance] { icon-image: "icons/transport/parking-car-18.svg"; set icon_z17; icon-width: 18; } node[amenity=parking_entrance][parking=multi-storey], node[amenity=parking][parking=multi-storey] { icon-image: "icons/transport/parking-garage-car-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bicycle_parking] { icon-image: "icons/transport/parking-bicycle-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bicycle_rental] { icon-image: "icons/transport/rental-bicycle-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bicycle_repair_station] { icon-image: "icons/amenity/repair-bicycle-18.svg"; set icon_z17; icon-width: 18; } node[amenity=car_rental] { icon-image: "icons/transport/rental-car-18.svg"; set icon_z17; icon-width: 18; } node[amenity=car_sharing] { icon-image: "icons/transport/shared-car-18.svg"; set icon_z17; icon-width: 18; } node[amenity=taxi] { icon-image: "icons/transport/taxi-18.svg"; set icon_z17; icon-width: 18; } node[amenity=fuel] { icon-image: "icons/transport/fuel-18.svg"; set icon_z17; icon-width: 18; } node[amenity=charging_station] { icon-image: "icons/transport/charging-station-18.svg"; set icon_z17; icon-width: 18; } node[amenity=telephone] { icon-image: "icons/amenity/telephone-18.svg"; set icon_z17; icon-width: 18; } node[emergency=phone] { icon-image: "icons/emergency/emergency-phone-18.svg"; set icon_z17; icon-width: 18; } node[amenity=toilets] { icon-image: "icons/amenity/toilets-18.svg"; set icon_z17; icon-width: 18; } node[amenity=recycling][recycling_type=container] { icon-image: "icons/amenity/recycling-18.svg"; set icon_z17; icon-width: 18; } node[amenity=waste_basket] { icon-image: "icons/outdoor/waste-basket-18.svg"; set icon_z17; icon-width: 18; } node[amenity=townhall] { icon-image: "icons/administration/town-hall-18.svg"; set icon_z17; icon-width: 18; } node[amenity=embassy] { icon-image: "icons/administration/embassy-18.svg"; set icon_z17; icon-width: 18; } node[amenity=drinking_water] { icon-image: "icons/outdoor/drinking-water-18.svg"; set icon_z17; icon-width: 18; } node[amenity=fountain] { icon-image: "icons/outdoor/fountain-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship] { icon-image: "icons/religious/place-of-worship-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=buddhist] { icon-image: "icons/religious/buddhist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=christian][denomination!=jehovahs_witness] { icon-image: "icons/religious/christian-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=hindu] { icon-image: "icons/religious/hinduist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=jewish] { icon-image: "icons/religious/jewish-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=muslim] { icon-image: "icons/religious/muslim-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=sikh] { icon-image: "icons/religious/sikhist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=shinto] { icon-image: "icons/religious/shintoist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=place_of_worship][religion=taoist] { icon-image: "icons/religious/taoist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=grave_yard] { icon-image: "icons/amenity/cemetery-18.svg"; set icon_z17; icon-width: 18; } node[amenity=post_office] { icon-image: "icons/amenity/post-office-18.svg"; set icon_z17; icon-width: 18; } node[amenity=post_box] { icon-image: "icons/amenity/post-office-14.svg"; set icon_z17; icon-width: 14; } node[amenity=pharmacy] { icon-image: "icons/health/pharmacy-18.svg"; set icon_z17; icon-width: 18; } node[amenity=hospital], node[amenity=clinic] { icon-image: "icons/health/hospital-18.svg"; set icon_z17; icon-width: 18; } node[amenity=doctors] { icon-image: "icons/health/doctor-18.svg"; set icon_z17; icon-width: 18; } node[amenity=dentist] { icon-image: "icons/health/dentist-18.svg"; set icon_z17; icon-width: 18; } node[amenity=library] { icon-image: "icons/amenity/library-18.svg"; set icon_z17; icon-width: 18; } node[amenity=police] { icon-image: "icons/emergency/police-18.svg"; set icon_z17; icon-width: 18; } node[amenity=fire_station] { icon-image: "icons/emergency/fire-station-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bus_station] { icon-image: "icons/transport/bus-station-18.svg"; set icon_z17; } node[amenity=ferry_terminal] { icon-image: "icons/transport/ferry-18.svg"; set icon_z17; icon-width: 18; } node[amenity=theatre] { icon-image: "icons/tourism/theatre-18.svg"; set icon_z17; icon-width: 18; } node[amenity=cinema] { icon-image: "icons/amenity/cinema-18.svg"; set icon_z17; icon-width: 18; } node[amenity=courthouse] { icon-image: "icons/administration/courthouse-18.svg"; set icon_z17; icon-width: 18; } node[amenity=prison] { icon-image: "icons/administration/prison-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bank] { icon-image: "icons/money/bank-18.svg"; set icon_z17; icon-width: 18; } node[amenity=atm] { icon-image: "icons/money/atm-18.svg"; set icon_z17; icon-width: 18; } node[amenity=bench] { icon-image: "icons/outdoor/bench-18.svg"; set icon_z17; icon-width: 18; } node[amenity=hunting_stand] { icon-image: "icons/outdoor/hunting-stand-18.svg"; set icon_z17; icon-width: 18; } node[amenity=veterinary] { icon-image: "icons/health/veterinary-18.svg"; set icon_z17; icon-width: 18; } /****************/ /* tourism tags */ /****************/ node[tourism=hotel] { icon-image: "icons/accommodation/hotel-18.svg"; set icon_z17; icon-width: 18; } node[tourism=motel] { icon-image: "icons/accommodation/motel-18.svg"; set icon_z17; icon-width: 18; } node[tourism=hostel] { icon-image: "icons/accommodation/hostel-18.svg"; set icon_z17; icon-width: 18; } node[tourism=camp_site] { icon-image: "icons/outdoor/camping-18.svg"; set icon_z17; icon-width: 18; } node[tourism=caravan_site] { icon-image: "icons/outdoor/caravan-18.svg"; set icon_z17; icon-width: 18; } node[tourism=picnic_site] { icon-image: "icons/outdoor/table-18.svg"; set icon_z17; icon-width: 18; } node[tourism=viewpoint] { icon-image: "icons/tourism/viewpoint-18.svg"; set icon_z17; icon-width: 18; } node[tourism=museum] { icon-image: "icons/tourism/museum-18.svg"; set icon_z17; icon-width: 18; } /********************/ /* information tags */ /********************/ node[tourism=information] { icon-image: "icons/tourism/information-18.svg"; set icon_z17; icon-width: 18; } node[tourism=information][information=guidepost] { icon-image: "icons/outdoor/guidepost-18.svg"; set icon_z17; icon-width: 18; } node[tourism=information][information=office] { icon-image: "icons/tourism/information-18.svg"; set icon_z17; icon-width: 18; } /*****************/ /* historic tags */ /*****************/ node[historic=castle] { icon-image: "icons/tourism/castle-fortress-18.svg"; set icon_z17; icon-width: 18; } node[historic=monument] { icon-image: "icons/tourism/monument-18.svg"; set icon_z17; icon-width: 18; } node[historic=memorial] { icon-image: "icons/tourism/memorial-18.svg"; set icon_z17; icon-width: 18; } node[historic=archaeological_site] { icon-image: "icons/tourism/archaeological-site-18.svg"; set icon_z17; icon-width: 18; } /*************************/ /* public_transport tags */ /*************************/ node[highway=bus_stop] { icon-image: "icons/transport/bus-stop-14.svg"; set icon_z17; icon-width: 14; } node[public_transport=stop_position][bus=yes] { icon-image: "icons/transport/bus-stop-14.svg"; set icon_z17; icon-width: 14; } node[public_transport=stop_position][ferry=yes] { icon-image: "icons/transport/ferry-18.svg"; set icon_z17; icon-width: 18; } node[public_transport=stop_position][tram=yes] { icon-image: "icons/transport/tram-stop-18.svg"; set icon_z17; icon-width: 18; } node[public_transport=stop_position][train=yes] { icon-image: "icons/transport/railway-halt-18.svg"; set icon_z17; icon-width: 18; } node[public_transport=platform][bus=yes] { icon-image: "icons/transport/bus-stop-14.svg"; set icon_z17; icon-width: 14; } node[public_transport=platform][ferry=yes] { icon-image: "icons/transport/ferry-18.svg"; set icon_z17; icon-width: 18; } /****************/ /* railway tags */ /****************/ node[railway=station], node[railway=tram_station] { icon-image: "icons/transport/railway-station-18.svg"; set icon_z17; icon-width: 18; } node[railway=halt] { icon-image: "icons/transport/railway-halt-18.svg"; set icon_z17; icon-width: 18; } node[railway=tram_stop] { icon-image: "icons/transport/tram-stop-18.svg"; set icon_z17; icon-width: 18; } node[railway=station][transport=subway] { icon-image: "icons/transport/metro-18.svg"; set icon_z17; icon-width: 18; } node[railway=subway_entrance] { icon-image: "icons/amenity/entrance-transport-14.svg"; set icon_z17; icon-width: 14; } /****************/ /* aeroway tags */ /****************/ node[aeroway=aerodrome] { icon-image: "icons/transport/airport-18.svg"; set icon_z17; icon-width: 18; } node[aeroway=helipad] { icon-image: "icons/transport/heliport-18.svg"; set icon_z17; icon-width: 18; } /**************/ /* sport tags */ /**************/ node[sport=swimming] { icon-image: "icons/sports/swimming-18.svg"; set icon_z17; icon-width: 18; } /****************/ /* natural tags */ /****************/ node[natural=spring] { icon-image: "icons/nature/spring-18.svg"; set icon_z17; icon-width: 18; } node[natural=saddle] { icon-image: "icons/nature/saddle-18.svg"; set icon_z17; icon-width: 18; } node[natural=peak] { icon-image: "icons/nature/peak-18.svg"; set icon_z17; icon-width: 18; } node[natural=tree] { icon-image: "icons/nature/tree-unspecified-18.svg"; set icon_z17; icon-width: 18; } node[natural=tree][type=conifer], node[natural=tree][leaf_type=needleleaved] { icon-image: "icons/nature/tree-coniferous-18.svg"; set icon_z17; icon-width: 18; } node[natural=tree][type=broad_leaved], node[natural=tree][leaf_type=broadleaved] { icon-image: "icons/nature/tree-deciduous-18.svg"; set icon_z17; icon-width: 18; } /*****************/ /* waterway tags */ /*****************/ node[waterway=waterfall] { icon-image: "icons/nature/waterfall-18.svg"; set icon_z17; icon-width: 18; } /****************************************/ /* zoom levels and general node display */ /****************************************/ /* Summary of different zoom levels: (any zoom) place=* and a few natural icons with their text is shown |z-15 untagged way nodes are hidden completely |z16- fixme=* and note=* symbols |z17- normal POI icons (without text), street name along highway=* ways |z18- text for normal POI icons is shown * text size and node size is adapted according to zoom level (see style source below) * maxspeed icons should not be distinguishable from POIs with "icon-image" property */ node { text: auto; } node|z-16[setting("hide_icons")], node|z17-[!is_prop_set("icon-image")][setting("hide_icons")]!.maxspeedclass, node[!is_prop_set("icon-image")][!setting("hide_icons")]!.maxspeedclass { symbol-size: 2; symbol-shape: square; symbol-stroke-color: node_standard#ffff00; major-z-index: 4.95; /* put node squares above line text */ } way > node|z-15[setting("shrink_nodes")]!:tagged { symbol-shape: none; } node:connection { symbol-stroke-color: node_connection#ffff00; } node:tagged { symbol-stroke-color: none; symbol-fill-color: node_tagged#00ffff; } way > node|z16[setting("shrink_nodes")]!:tagged { symbol-size: 1; } node|z17[setting("shrink_nodes")] { symbol-size: 4; } way > node|z17[setting("shrink_nodes")] { symbol-size: 2; } node|z17[setting("shrink_nodes")]:connection { symbol-size: 4; } node|z18[setting("shrink_nodes")] { symbol-size: 4; } way > node|z18[setting("shrink_nodes")] { symbol-size: 3; } node|z18[setting("shrink_nodes")]:connection { symbol-size: 5; } node|z19-[setting("shrink_nodes")] { symbol-size: 4; } way > node|z19-[setting("shrink_nodes")] { symbol-size: 4; } node|z19-[setting("shrink_nodes")]:connection { symbol-size: 6; } node[!setting("shrink_nodes")] { symbol-size: 4; } way > node[!setting("shrink_nodes")] { symbol-size: 4; } node[!setting("shrink_nodes")]:connection { symbol-size: 6; } node|z-16[setting("hide_icons")].icon_z17!.icon_z0, relation|z-16[type=restriction][setting("hide_icons")] { icon-image: none; } node|z-17[setting("hide_icons")]!.text_z0 { text: none; }