123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775 |
- /*
- * This file is part of OsmInEdit, released under ISC license (see LICENSE.md)
- *
- * Copyright (c) Adrien Pavie 2019
- * Copyright (c) Daimler AG 2019
- *
- * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
- meta {
- title: 'OsmInEdit indoor map stylesheet';
- }
- /****************************************************************************
- * Labels
- */
- *[name],
- *[ref] {
- font-family: Arial;
- font-size: 12;
- font-weight: bold;
- text-color: black;
- text-offset: 6; /** Half of the font-size **/
- }
- line[name],
- line[ref] {
- text-position: line;
- }
- /****************************************************************************
- * Default rules
- */
- node, way {
- symbol-size: 24;
- color: #8EBEFF;
- opacity: 1;
- fill-color: white;
- fill-opacity: 0.7;
- }
- line {
- color: #8EBEFF;
- opacity: 1;
- }
- relation[type=multipolygon] way {
- width: 0;
- opacity: 0;
- }
- /****************************************************************************
- * Indoor structures
- */
- /*
- * Labelled features
- */
- *[indoor][ref],
- *[buildingpart][ref],
- *[room][ref] {
- text: ref;
- }
- *[indoor][name],
- *[buildingpart][name],
- *[room][name],
- *[public_transport=platform][name],
- *[railway=platform][name],
- area[highway][name],
- relation[type=multipolygon][highway][name] {
- text: name;
- }
- /*
- * Surface of objects
- */
- /** Rooms **/
- area[indoor=room],
- area[buildingpart=room],
- area[room],
- relation[type=multipolygon][indoor=room],
- relation[type=multipolygon][buildingpart=room],
- relation[type=multipolygon][room] {
- fill-color: #E0E0E0;
- fill-opacity: 0.5;
- z-index: -5;
- }
- /** Walls **/
- area[indoor=wall][area=yes],
- relation[type=multipolygon][indoor=wall] {
- fill-color: #444444;
- fill-opacity: 0.9;
- z-index: -2;
- }
- /** Areas (travelling spaces) **/
- area[indoor=~/area|corridor|level/],
- area[buildingpart=~/corridor|hall/],
- area[room=~/corridor|hall|entry|gallery|collection|entrance/],
- area[highway=~/pedestrian|footway|corridor/],
- area[railway=platform],
- area[public_transport=platform],
- area[shop=mall],
- relation[type=multipolygon][indoor=~/area|corridor|level/],
- relation[type=multipolygon][buildingpart=~/corridor|hall/],
- relation[type=multipolygon][room=~/corridor|hall|entry|gallery|collection|entrance/],
- relation[type=multipolygon][highway=~/pedestrian|footway|corridor/],
- relation[type=multipolygon][railway=platform],
- relation[type=multipolygon][public_transport=platform],
- relation[type=multipolygon][shop=mall] {
- fill-color: #EEEEEE;
- fill-opacity: 0.5;
- z-index: -6;
- }
- /** Restricted room/areas **/
- area[indoor=~/room|area|corridor/][access=~/private|no/],
- area[buildingpart][access=~/private|no/],
- area[room=technical],
- relation[type=multipolygon][indoor=~/room|area|corridor/][access=~/private|no/],
- relation[type=multipolygon][buildingpart][access=~/private|no/],
- relation[type=multipolygon][room=technical]{
- fill-color: #A2A2A2;
- }
- /*
- * Walls of objects
- */
- /** Hard wall **/
- area[indoor=room],
- area[buildingpart=~/room|hall/],
- area[room],
- *[indoor=column],
- *[indoor=wall],
- area[building],
- area[building:part],
- relation[type=multipolygon][indoor=~/room|corridor/],
- relation[type=multipolygon][buildingpart=~/room|corridor|hall/],
- relation[type=multipolygon][room],
- relation[type=multipolygon][building],
- relation[type=multipolygon][building:part] {
- color: #444444;
- opacity: 1;
- width: 7;
- }
- /** No wall **/
- area[indoor=~/area|corridor/],
- area[buildingpart=corridor],
- area[railway=platform],
- area[public_transport=platform],
- area[indoor=level],
- area[highway=~/pedestrian|footway|corridor/],
- relation[type=multipolygon][indoor=~/area|corridor/],
- relation[type=multipolygon][railway=platform],
- relation[type=multipolygon][public_transport=platform],
- relation[type=multipolygon][indoor=level],
- relation[type=multipolygon][highway=~/pedestrian|footway|corridor/] {
- color: #AAAAAA;
- opacity: 1;
- width: 0.5;
- }
- /** Pillars **/
- *[indoor=column],
- *[man_made=pillar],
- *[building:part=column] {
- fill-color: #999999;
- fill-opacity: 0.5;
- }
- /*
- * Room/area icons
- */
- area[room],
- area[area][area!=yes],
- relation[type=multipolygon][room],
- relation[type=multipolygon][area][area!=yes] {
- icon-image-aliases: '"amphitheatre": "auditorium", "reception": "administration", "refectory": "restaurant", "checkroom": "locker"';
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- area[room],
- relation[type=multipolygon][room] {
- icon-image: url('room_$[room].png');
- }
- area[area][area!=yes],
- relation[type=multipolygon][area][area!=yes] {
- icon-image: url('room_$[area].png');
- }
- /*
- * Doors
- */
- node[door][door!=no],
- node[entrance] {
- color: #003F05;
- fill-color: #00AB0D;
- opacity: 1;
- fill-opacity: 1;
- width: 5;
- symbol-size: 14;
- }
- line[door][door!=no],
- line[entrance] {
- color: #006804;
- opacity: 1;
- width: 12;
- linecap: none;
- }
- /** Passages **/
- node[door=no] {
- color: #AAAAAA;
- fill-color: #EEEEEE;
- opacity: 1;
- width: 1;
- symbol-size: 14;
- icon-opacity: 0;
- }
- line[door=no] {
- color: #AAAAAA;
- fill-color: #EEEEEE;
- opacity: 1;
- width: 12;
- linecap: none;
- icon-opacity: 0;
- }
- /*
- * Vertical passages
- */
- /** General definition **/
- area[buildingpart=verticalpassage],
- area[buildingpart:verticalpassage],
- area[room=~/stairs|escalator/],
- area[indoor=elevator],
- area[highway=~/elevator|lift|steps/],
- area[stairs=yes] {
- color: #7495DA;
- fill-color: #AEBDDA;
- opacity: 1;
- fill-opacity: 0.5;
- width: 2.5;
- z-index: -1;
- }
- /** Icons **/
- *[buildingpart=verticalpassage],
- *[buildingpart:verticalpassage],
- *[room=~/stairs|escalator/],
- *[indoor=elevator],
- *[highway=elevator],
- *[stairs=yes] {
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- *[buildingpart:verticalpassage=elevator],
- *[indoor=elevator],
- *[highway=~/elevator|lift/] {
- icon-image: url('highway_elevator.png');
- }
- *[buildingpart:verticalpassage=stairway],
- *[room=stairs],
- *[stairs=yes],
- area[highway=steps] {
- icon-image: url('highway_steps.png');
- }
- *[buildingpart:verticalpassage=escalator],
- *[room=escalator],
- *[conveying=yes],
- area[conveying=~/yes|forward|backward|reversible/] {
- icon-image: url('passage_escalator.png');
- }
- /** Emergency stairs **/
- area[buildingpart=verticalpassage][access=emergency],
- area[room=stairs][access=emergency],
- area[stairs=yes][access=emergency] {
- color: #009262;
- fill-color: #C0FFCB;
- icon-image: url('emergency_stairs.png');
- }
- /*
- * Building delimitation
- */
- area[building],
- area[building:part],
- relation[type=multipolygon][building],
- relation[type=multipolygon][building:part] {
- fill-color: #D4CACA;
- fill-opacity: 0.6;
- z-index: -10;
- width: 5;
- color: #8F5467;
- }
- /** Gradins **/
- area[building:part=tier],
- relation[type=multipolygon][building:part=tier] {
- color: #B4ADB3;
- opacity: 1;
- width: 1;
- fill-color: #BABABA;
- fill-opacity: 0.5;
- z-index: -4;
- }
- /****************************************************************************
- * Road objects
- */
- line[highway] {
- color: #9E8747;
- opacity: 1;
- width: 10;
- linecap: none;
- }
- line[highway=footway] {
- color: #C97582;
- dashes: 10,3;
- }
- line[highway=steps] {
- color: #5B8D62;
- dashes: 8,3;
- }
- /** Escalator **/
- line[conveying=~/yes|forward|backward|reversible/] {
- color: #848484;
- dashes: 8,3;
- }
- line[conveying=~/yes|forward|backward|reversible/][highway!=footway] {
- icon-image: url('passage_escalator.png');
- }
- /****************************************************************************
- * Barriers
- */
- *[barrier] {
- icon-image: url('barrier_$[barrier].png');
- color: #5B5B5B;
- opacity: 1;
- fill-opacity: 0.5;
- fill-color: #5B5B5B;
- linecap: none;
- }
- node[barrier] {
- fill-color: white;
- fill-opacity: 0.7;
- }
- line[barrier] {
- width: 6;
- icon-image: none;
- }
- *[barrier=hedge] {
- color: #8CD16E;
- }
- *[barrier=shelf] {
- color: #DBA0A0;
- fill-color: #DBA0A0;
- }
- /****************************************************************************
- * Railway
- */
- way[railway=~/rail|subway|light_rail|monorail|narrow_gauge|tram/] {
- color: #888888;
- opacity: 1;
- width: 15;
- linecap: none;
- dashes: 5,5;
- }
- *[railway=~/platform|subway_entrance/] {
- icon-image: url('railway_$[railway].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- node[railway] {
- color: #888888;
- }
- /****************************************************************************
- * Aeroways
- */
- *[aeroway] {
- icon-image: url('aeroway_$[aeroway].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- node[aeroway] {
- color: #0092DA;
- }
- /****************************************************************************
- * Labels
- */
- *[name][amenity] {
- text-color: #3E3E3E;
- }
- *[name][shop] {
- text-color: #AC39AC;
- }
- *[name][tourism] {
- text-color: #0099E4;
- }
- /****************************************************************************
- * Public transport objects
- */
- *[highway=bus_stop] {
- icon-image: url('highway_bus_stop.png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- color: #0092DA;
- }
- /****************************************************************************
- * Amenities
- */
- /** All amenities **/
- *[amenity][amenity!=showcase] {
- fill-color: #FFDAAD;
- opacity: 1;
- fill-opacity: 0.5;
- icon-image: url('amenity_$[amenity].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- text: name;
- }
- node[amenity] {
- color: #734A08;
- fill-opacity: 0.8;
- fill-color: white;
- }
- /** Comfort amenities **/
- *[amenity=toilets],
- *[public_transport=waiting_area],
- *[room=waiting],
- *[area=waiting] {
- fill-color: #E3C8E3;
- }
- /** Small amenities **/
- *[amenity=~/atm|photo_booth|post_box|piano|telephone|parking_space/] {
- color: #FFBA66;
- }
- /** Large, landuse-like, amenities **/
- area[amenity=~/school|college|university|hospital|parking/],
- area[leisure=sports_centre],
- area[public_transport=station] {
- z-index: -9;
- }
- /** Independant amenities **/
- *[amenity=~/parking|parking_space|taxi|bus_station|shelter/] {
- color: #E0BF96;
- width: 1;
- }
- /** Parking for disabled people **/
- *[amenity=parking_space][wheelchair=yes],
- *[amenity=parking_space][capacity:disabled] {
- icon-image: url('parking_disabled.png');
- }
- /** Toilets **/
- *[amenity=toilets][female=~/yes|only|designated/][!male],
- *[amenity=toilets][female=~/yes|only|designated/][male=no] {
- icon-image: url('amenity_toilets_women.png');
- }
- *[amenity=toilets][male=~/yes|only|designated/][!female],
- *[amenity=toilets][male=~/yes|only|designated/][female=no] {
- icon-image: url('amenity_toilets_men.png');
- }
- *[amenity=toilets][wheelchair=~/yes|only|designated/] {
- icon-image: url('amenity_toilets_disabled.png');
- }
- /****************************************************************************
- * Shops
- */
- *[shop] {
- icon-image: url('shop_$[shop].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- opacity: 1;
- text: name;
- }
- node[shop] {
- color: #AC39AC;
- }
- *[shop][!name][brand] {
- text: brand;
- }
- area[shop] {
- fill-color: #FFDAAD;
- fill-opacity: 0.5;
- }
- /** Store departements **/
- *[department] {
- fill-color: #FFCFCC;
- color: #D29494;
- fill-opacity: 0.5;
- z-index: -4;
- opacity: 1;
- width: 0.5;
- }
- /****************************************************************************
- * Tourism-related objects
- */
- *[tourism=~/aquarium|artwork|attraction|gallery|hostel|hotel|motel|museum/],
- *[information=~/office|map/] {
- icon-image: url('tourism_$[tourism].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- color: #BF9962;
- fill-color: #FFF6AD;
- opacity: 1;
- fill-opacity: 0.5;
- text: name;
- }
- /** Glass cabinet **/
- *[indoor=glass_cabinet] {
- color: #A2CCC8;
- fill-color: #E3F3F5;
- opacity: 1;
- fill-opacity: 0.5;
- width: 2;
- z-index: -1;
- }
- /** Showcase **/
- *[amenity=showcase] {
- color: #A2CCC8;
- fill-color: #A2CCC8;
- opacity: 1;
- fill-opacity: 0.5;
- width: 2;
- z-index: -1;
- }
- /** Historic elements **/
- *[historic] {
- text: name;
- }
- node[historic] {
- color: #8E7409;
- }
- way[historic],
- relation[type=multipolygon][historic] {
- color: #C0B0A2;
- opacity: 0.5;
- width: 0.5;
- fill-color: #C0B0A2;
- z-index: -1;
- }
- *[historic=tomb] {
- icon-image: url('historic_tomb.png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- *[historic=artifact] {
- icon-image: url('tourism_archaeological.png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- /** Grass **/
- area[landuse=grass],
- relation[type=multipolygon][landuse=grass] {
- opacity: 0;
- width: 0;
- fill-color: #CFECA8;
- fill-opacity: 0.5;
- z-index: -1;
- }
- /****************************************************************************
- * Craft/office
- */
- *[craft] {
- color: #FFDAAD;
- fill-color: #FFDAAD;
- fill-opacity: 0.5;
- }
- *[office] {
- color: #299CEA;
- fill-color: #299CEA;
- fill-opacity: 0.5;
- }
- /****************************************************************************
- * Railway
- */
- *[railway=buffer_stop] {
- icon-image: url('railway_$[railway].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- /****************************************************************************
- * Emergency
- */
- *[emergency] {
- icon-image: url('emergency_$[emergency].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- node[emergency] {
- color: #FA0032;
- }
- /****************************************************************************
- * Man made
- */
- *[man_made=~/surveillance|lamp|street_lamp/] {
- icon-image: url('man_made_$[man_made].png');
- icon-image-aliases: '"street_lamp": "lamp"';
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- /****************************************************************************
- * Natural
- */
- *[natural=~/tree/] {
- icon-image: url('natural_$[natural].png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- }
- way[natural] {
- color: #1E6B00;
- width: 5;
- }
- node[natural] {
- color: #1F6C02;
- }
- /****************************************************************************
- * Signaletics
- */
- *[advertising] {
- color: #5B5B5B;
- opacity: 1;
- icon-image: url('pub_$[advertising].png');
- icon-image-aliases: '"sign": "poster_box", "wall_painting": "poster_box"';
- }
- *[advertising=billboard][support=pole] {
- icon-image: url('pub_$[advertising]_$[support].png');
- }
- *[pole=landmark_sign] {
- icon-image: url('pole_landmark_sign.png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- text: ref;
- }
- *[highway=milestone] {
- icon-image: url('poi_point_of_interest.png');
- icon-width: 16;
- icon-height: 16;
- icon-opacity: 1;
- text: name;
- }
- *:active {
- color: red;
- fill-color: red;
- }
|