User:Ivanatora/Maperitive Rules
Jump to navigation
Jump to search
Changelog
Version 1.0
Actual up to 24.04.2011. The goal of this ruleset is to be as close to Mapnik it could be (with some additions). What I have tweaked in Default.txt:
- added areas: aerodrome, orchard, farmland, quarry
- added lines: power (line and minor_line are with the same rules)
- added points: tower (for power)
- added styles for different track types based on tracktyp=grade* tag
- removed styles for gps tracks and routes
- name for areas - changed min-zoom text render from 17 to 14, so you will have more names
- railway - min-zoom set from 13 to 8, so you will have more railways
- added shields with ref for trunk, primary, secondary and tertiary roads starting respectively at zoom level 7, 7, 9 and 11
- residential and unclassified - reduced widths at zoom 15+ to look more like Mapnik
TODO
- fix the look of the shields
- add shields for relations "ref"s because most of the road tagging is done at relation level
- search for a way to add proper texture for fill in landuse=quarry
- search for a way to render power lines voltage in the "X kV" format instead of "X000"
Ruleset
// Version 1.0 @ 24.04.2011 features points, areas parking : amenity=parking postbox : amenity=post_box postoffice : amenity=post_office telephone : amenity=telephone fire station : amenity=fire_station police station : amenity=police recycling : amenity=recycling church : amenity=place_of_worship AND religion=christian drinking water : amenity=drinking_water bank : amenity=bank atm : amenity=atm toilets : amenity=toilets library : amenity=library tree : natural=tree // school : amenity=school bus stop : highway=bus_stop mini roundabout : highway=mini_roundabout gate : barrier=gate tourism viewpoint : tourism=viewpoint tourism hotel : tourism=hotel tourism museum : tourism=museum amenity pub : amenity=pub amenity fast_food : amenity=fast_food aerodrome : aeroway=aerodrome // These are not shown on Mapnik puffin : crossing_ref=puffin memorial : historic=memorial areas beach : natural=beach building : building=yes water : natural=water OR waterway=riverbank OR landuse=reservoir OR landuse=basin village green : landuse=village_green forest : landuse=forest OR natural=wood farm : landuse=farm grass : landuse=grass fell : natural=fell glacier : natural=glacier national park : boundary=national_park allotments : landuse=allotments academic : node[@isOneOf(amenity, university, college, school)] area[@isOneOf(amenity, university, college, school)] meadow : natural=meadow OR landuse=meadow nature reserve : leisure=nature_reserve playground : leisure=playground car park: amenity=parking track : leisure=track graveyard : amenity=grave_yard OR landuse=cemetery military : landuse=military OR military=barracks park : leisure=park leisure garden : leisure=garden leisure pitch : leisure=pitch leisure stadium : leisure=stadium landuse retail : landuse=retail landuse industrial : landuse=industrial commercial area : landuse=commercial residential area : landuse=residential aeroway apron : aeroway=apron aeroway terminal : aeroway=terminal orchard : landuse=orchard farmland : landuse=farmland quarry : landuse=quarry lines oneway : oneway=yes OR oneway=true OR oneway=-1 coastline : natural=coastline river : waterway=river stream : waterway=stream canal : waterway=canal drain : waterway=drain railway : railway=rail line barrier : barrier=wall OR barrier=fence highway motorway : highway=motorway highway motorway link : highway=motorway_link highway trunk : highway=trunk highway trunk link: highway=trunk_link highway primary link : highway=primary_link highway primary : highway=primary highway secondary : highway=secondary highway tertiary : highway=tertiary highway unclassified : highway=unclassified highway residential : highway=residential highway service : highway=service highway pedestrian : highway=pedestrian highway track : highway=track highway footway : highway=footway highway cycleway : highway=cycleway highway path : highway=path highway private : access=private AND highway highway steps : highway=steps bridge foot : bridge=yes AND (foot=yes OR highway=footway) historic citywalls : historic=citywalls OR historic=city_wall power_line : power=line OR power=minor_line aeroway runway : aeroway=runway aeroway taxiway : aeroway=taxiway boundary country : boundary=administrative AND (admin_level=2 OR admin_level=4) AND NOT natural=coastline boundary province : boundary=administrative AND admin_level=6 boundary municipal : boundary=administrative AND admin_level=8 contour major : contour[@isMulti(elevation, 50)] contour minor : contour[@isMulti(elevation, 10) and not @isMulti(elevation, 50)] // Routes // route ncn : relation[type=route AND route=bicycle AND network=ncn] route byway : relation[type=route AND route=bicycle AND network="National Byway"] route foot : relation[type=route AND route=foot] points place city : place=city place town : place=town place village : place=village place hamlet : place=hamlet place suburb : place=suburb hospital : amenity=hospital diy : shop=doityourself hair dresser : shop=hairdresser supermarket : shop=supermarket convenience : shop=convenience bakery : shop=bakery restaurant : amenity=restaurant cafe : amenity=cafe pharmacy : amenity=pharmacy peak : natural=peak tower : power=tower OR power=pole properties map-background-color : #F1EEE8 map-background-opacity : 1 map-sea-color : #B5D0D0 font-weight : bold font-family : Verdana text-max-width : 7 text-halo-width : 25% text-halo-opacity : 0.75 text-align-horizontal : center text-align-vertical : center font-stretch : 0.9 map.rendering.lflp.min-buffer-space : 5 map.rendering.lflp.max-allowed-corner-angle : 40 rules target : $featuretype(point) if : place* define font-weight : bold if : *city define font-size : 6:8;14:20 min-zoom : 6 max-zoom : 14 elseif : *town define font-size : 9:8;12:10;20:20 min-zoom : 9 elseif : *village define font-size : 12:10;20:20 min-zoom : 12 elseif : *hamlet define font-size : 14:8;20:16 min-zoom : 14 elseif : *suburb define font-size : 13:10;20:20 min-zoom : 13 text-color : white black 50% draw : text target : playground define fill-color : #CCFEF0 line-style : none draw : fill define line-color : #ADCCB5 line-width : 1 draw : line define min-zoom : 17 draw : text target : $featuretype(area) define line-style : none line-width : 1 if : forest define min-zoom : 9 fill-color : #8DC56C elseif : beach define min-zoom : 10 fill-color : #FEFEC0 elseif : farm define min-zoom : 9 fill-color : #E9D8BD elseif : fell define fill-color : #C5FF5B black 10% elseif : water define fill-color : #B5D0D0 elseif : residential area define fill-color : #DCDCDC elseif : grass define fill-color : #CFECA8 elseif : allotments define fill-color : #C8B084 elseif : meadow define fill-color : #CFECA8 elseif : nature reserve define fill-color : #ABDE96 elseif : car park define fill-color : #F6EEB7 elseif : park define fill-color : #C0F6B0 elseif : leisure garden define fill-color : #CFECA8 elseif : graveyard define fill-color : #A9CAAE elseif : building define fill-color : #BCA9A9 elseif : leisure pitch define fill-color : #89D2AE elseif : leisure stadium define fill-color : #33CC99 elseif : track define fill-color : #74DCBA elseif : village green define fill-color : #CFECA8 elseif : landuse retail define fill-color : #F0D9D9 line-color : #F4A19E draw : line elseif : landuse industrial define fill-color : #DFD1D6 elseif : commercial area define fill-color : #EFC8C8 elseif : military define fill-color : #FE9898 elseif : aeroway* define fill-color : #E9D1FE elseif : orchard define fill-color : #9fd790 elseif : farmland define fill-color : #e9d8be elseif : aerodrome define fill-color : #e9e8e3 line-style : solid line-color : #b3b3b0 black 10% elseif : quarry define fill-color : white line-style : solid line-color : #b3b3b0 black 10% fill-hatch : diagonalcross fill-hatch-color : #cccccc elseif : glacier define fill-color : #DDECEC line-style : dash line-color : #DDECEC black 10% else stop draw : fill define min-zoom : 14 draw : text target : aeroway runway define min-zoom : 11 line-color : #BBBBCC line-width : 11:2;15:20 draw : line target : aeroway taxiway define min-zoom : 11 line-color : #BBBBCC line-width : 11:1;15:6 draw : line target : glacier define min-zoom : 10 text-color : #A3A3FE draw : text target : academic define fill-color : #F0F0D8 line-style : none draw : fill define line-color : #E5D2CC line-width : 1 draw : line // draw : text target : boundary* define line-color : #9E1A99 line-opacity : 0.5 if : boundary country define line-width : 6:1;9:3;10:6 elseif : boundary province define min-zoom : 4 line-width : 4:1;11:3 line-style : dash elseif : boundary municipal define min-zoom : 12 line-width : 12:1;14:2 line-style : dash draw : line target : national park define fill-color : #8DC56C fill-opacity : 0.2 line-style : none draw : fill define line-color : #8DC56C black 20% line-opacity : 0.5 line-width : 3 line-style : dash font-size : 3:3;12:12 text-color : green font-weight : normal draw : line draw : text target : peak define shape : triangle shape-size : 12 fill-color : #D08F55 line-style : none min-zoom : 11 draw : shape define text : @if(name, name @if(ele, "\n(" ele ")"), ele) text-color : #ae4242 min-zoom : 13 font-size : 10 text-max-width : 10 text-offset-vertical : 100% text-align-vertical : near draw : text target : tower define min-zoom: 14 shape : diamond shape-size : 14:2;20:12 line-width : 1 fill-opacity: 0.1 draw : shape target : railway define min-zoom : 8 line-color : gray line-width : 2 draw : line define min-zoom : 13 line-style : dashlong line-color : white line-width : 2 border-style : solid border-color : gray border-width : 25% draw : line define min-zoom : 6 max-zoom : 13 line-style : none line-color : white black 30% line-width : 6:1;8:1;12:1.5 draw : line target : highway private define min-zoom : 15 line-width : 4 line-style : dash line-color : #F7D4D4 draw : line target : highway* define font-size : 15:7;18:10 font-weight : bold for : oneway=yes OR oneway=true define min-zoom : 15 shape : custom shape-def : 60,0,20,-40,20,-15,-60,-15,-60,15,20,15,20,40;Z shape-size : 12 shape-aspect : 0.75 shape-spacing : 6 fill-color : #6C70D4 line-style : none for : oneway=-1 define angle : 180 draw : shape define line-style : solid if : *motorway* if : *link define line-width : 7:1;12:3;13:4;16:5;18:6 else define line-width : 7:1;9:2;12:3;13:7;16:10;18:12 define min-zoom : 12 line-color : #849BBD border-style : solid border-color : #849BBD black 20% border-width : 15% draw : line define min-zoom : 7 max-zoom : 12 border-style : none draw : line define min-zoom : 10 max-zoom : 20 font-family : Tahoma text-align-horizontal : center text-align-vertical : center text : ref font-size : 12 text-color : #fcfcfb text-halo-width : 0 shape : custom shape-def : p:#809bc0;pw:5;f:#809bc0;m:-10,-10;l:10,-10;a:10,10,10,10;l:-10,10;a:10,10,-10,-10;z;p:#fcfcfb;pw:2;m:-10,-10;l:10,-10;a:10,10,10,10;l:-10,10;a:10,10,-10,-10;z shield-padding-left : 5 shield-padding-right : 5 shield-padding-top : 7 shield-padding-bottom : 7 shield-resize-mode : free draw : shield elseif : *trunk* define min-zoom : 12 line-color : #96D296 line-width : 11:1;13:2;15:10;18:12 border-style : solid border-color : #96D296 black 20% border-width : 15% draw : line define min-zoom : 7 max-zoom : 12 border-style : none draw : line define min-zoom: 7 text : ref fill-opacity : 0.2 font-size : 12 draw : shield elseif : *primary* define min-zoom : 11 line-color : #ECA2A3 line-width : 11:2;12:2;15:10;18:12 border-style : solid border-color : #ECA2A3 black 20% border-width : 15% draw : line define min-zoom : 7 max-zoom : 11 border-style : none draw : line define text : ref min-zoom : 7 max-zoom : 20 fill-opacity : 0.2 font-size : 12 draw : shield elseif : *secondary define min-zoom : 12 line-color : #FDD6A4 line-width : 10:1;11:2;13:2;15:10;18:12 border-style : solid border-color : #CAA36F border-width : 5% draw : line define min-zoom : 8.5 max-zoom : 12 border-style : none draw : line define text : ref min-zoom : 9 max-zoom : 20 fill-opacity : 0.2 font-size : 12 draw : shield elseif : *tertiary define min-zoom : 13 line-color : #FEFEB2 line-width : 10:1;13:2;15:10;18:12 border-style : solid border-color : #FEFEB2 black 20% border-width : 15% draw : line define min-zoom : 10 max-zoom : 13 line-color : white black 25% border-style : none draw : line define min-zoom : 15 max-zoom : 20 draw : text elseif : *service define min-zoom : 13 line-color : white line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6 border-style : solid border-color : #FEFEB2 black 20% border-width : 15% draw : line elseif : *pedestrian define min-zoom : 13 line-color : #EDEDED line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6 border-style : solid border-color : #B1B1B1 black 20% border-width : 15% draw : line elseif : $regex("(.*residential)|(.*unclassified)") define min-zoom : 13 line-color : white line-width : 12:1;13:1.5;15:5;18:8 border-style : solid border-color : white black 50% border-width : 20% draw : line define min-zoom : 10 max-zoom : 13 border-style : none line-color : white black 25% draw : line define min-zoom : 15 max-zoom : 20 draw : text elseif : *track define min-zoom : 13 line-color : #9D7517 line-width : 1.5 line-style : dash border-style : solid border-color : white border-width : 100% border-opacity : 0.3 for : tracktype=grade1 define line-style: solid for : tracktype=grade2 define line-style: dashlong for : tracktype=grade3 define line-style: dash for : tracktype=grade4 define line-style: dashdot for : tracktype=grade5 define line-style: dashdotdot draw : line elseif : *footway define min-zoom : 13 line-color : #F68474 line-width : 1.5 line-style : dot border-style : solid border-color : white border-width : 100% border-opacity : 0.3 draw : line draw : text elseif : *cycleway define min-zoom : 13 line-color : blue line-width : 1.5 line-style : dot border-style : solid border-color : white border-width : 100% border-opacity : 0.3 draw : line elseif : *path define min-zoom : 13 line-color : #6E7C6D line-width : 1.5 line-style : dash border-style : solid border-color : white border-width : 100% border-opacity : 0.3 draw : line else stop target : highway steps define min-zoom : 16 shape : custom shape-def : -1,1, -1,-1, 1,-1, 1,1;Z shape-spacing : 2 shape-size : 16:1;20:3 shape-aspect : 3 fill-color : #F98072 line-style : none draw : shape target : line barrier define min-zoom : 13 line-color : black line-width : 1 draw : line target : bridge foot define min-zoom : 13 line-color : white line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:5;18:6 border-style : solid border-color : #FEFEB2 black 20% border-width : 15% draw : line draw : text target : historic citywalls define min-zoom : 13 line-color : #8D968D line-width : 7:0.6;9:1;10:1.2;12:2.5;13:3;16:10 draw : line draw : text define target : river define line-color : #B5D0D0 line-width : 7:1;12:2;14:5 draw : line target : canal define min-zoom : 12 line-color : #B5D0D0 line-width : 12:1;17:8 draw : line target : drain define min-zoom : 13 line-color : #B5D0D0 line-width : 1 draw : line target : stream define min-zoom : 13 line-color : #B5D0D0 line-width : 13:1;15:2 draw : line target: parking define icon-image : icons/SJJB/png/transport_parking.n.32.png min-zoom : 15 icon-width : 16 draw : icon target: bus stop define icon-image : icons/SJJB/png/transport_bus_stop.n.32.png min-zoom : 15 icon-width : 16 draw : icon target: postbox define icon-image : icons/SJJB/png/amenity_post_box.n.32.png min-zoom : 16 icon-width : 16 draw : icon define min-zoom : 17 text : collection_times draw : text target: postoffice define icon-image : icons/SJJB/png/amenity_post_office.p.32.png min-zoom : 16 icon-width : 16 draw : icon target: telephone define icon-image : icons/SJJB/png/amenity_telephone.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: fire station define icon-image : icons/SJJB/png/amenity_firestation.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: hospital define icon-image : icons/SJJB/png/health_hospital.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: police station define icon-image : icons/SJJB/png/amenity_police.n.32 min-zoom : 16 icon-width : 16 draw : icon target: cafe define icon-image : icons/SJJB/png/food_cafe.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: recycling define icon-image : icons/SJJB/png/amenity_recycling.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: supermarket define icon-image : icons/SJJB/png/shopping_supermarket.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: diy define icon-image : icons/SJJB/png/shopping_diy.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: convenience define icon-image : icons/SJJB/png/shopping_convenience.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: mini roundabout define icon-image : icons/SJJB/png/transport_roundabout_anticlockwise.p.32.png min-zoom : 16 icon-width : 9 draw : icon target: church define icon-image : icons/SJJB/png/place_of_worship_christian3.glow.32.png min-zoom : 16 icon-width : 16 draw : text draw : icon target: drinking water define icon-image : icons/SJJB/png/food_drinkingtap.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: bank define icon-image : icons/SJJB/png/money_bank2.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: atm define icon-image : icons/SJJB/png/money_atm2.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: restaurant define icon-image : icons/SJJB/png/food_restaurant.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: hair dresser define icon-image : icons/SJJB/png/shopping_hairdresser.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: toilets define icon-image : icons/SJJB/png/amenity_toilets.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: pharmacy define icon-image : icons/SJJB/png/health_pharmacy.p.32.png min-zoom : 16 icon-width : 16 draw : icon target: library define icon-image : icons/SJJB/png/amenity_library.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: bakery define icon-image : icons/SJJB/png/shopping_bakery.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: tree define icon-image : http://svn.openstreetmap.org/applications/rendering/mapnik/symbols/tree2.png min-zoom : 16 icon-width : 6 draw : icon target: memorial define icon-image : icons/SJJB/png/tourist_memorial.n.32.png min-zoom : 16 icon-width : 16 draw : icon target: school define icon-image : icons/SJJB/png/education_school.n.32.png min-zoom : 16 icon-width : 16 draw : icon draw : text target : puffin define icon-image : icons/SJJB/png/transport_traffic_lights.p.32.png min-zoom : 16 icon-width : 16 draw : icon target : gate define icon-image : http://svn.openstreetmap.org/applications/rendering/mapnik/symbols/gate2.png min-zoom : 16 icon-width : 7 draw : icon target : tourism* define min-zoom : 17 text-color : #2B80FE draw : text if : *hotel define icon-image : icons/SJJB/png/accommodation_hotel2.n.32.png min-zoom : 16 icon-width : 16 elseif : *viewpoint define icon-image : icons/SJJB/png/tourist_view_point.p.32.png min-zoom : 16 icon-width : 16 elseif : *museum define icon-image : icons/SJJB/png/tourist_museum.n.32.png min-zoom : 16 icon-width : 16 else stop draw : icon target : amenity* define min-zoom : 17 text-color : #856951 draw : text define min-zoom : 16 icon-width : 16 if : *pub define icon-image : icons/SJJB/png/food_pub.n.32.png elseif : *fast_food define icon-image : icons/SJJB/png/food_fastfood2.n.32.png else stop draw : icon target : power_line define min-zoom: 14 line-width: 1 line-color : #5c5c5c for : power=line define min-zoom : 13 draw : line define text : voltage draw : text target: contour* define line-color : #7f3300 line-opacity : 0.35 curved : true if : *major define min-zoom : 9 line-width : 11:0.1;11.9:1;12:2 else define min-zoom : 12 line-width : 1 draw : contour target: coastline define line-color : #B5D0D0 line-width : 2 draw : line