OsmarenderRules.xml
Jump to navigation
Jump to search
This file is a bit obsolete now. The file osm-map-features.xml does a much better job.
An OsmarenderRules.xml controls the way Osmarender does it's stuff. See Osmarender/Rules#Rule_file_grammar for details of the file structure.
You can define your own rendering rules file, but the following yields reasonably good rendering results. It supports a mixture of the commonly used class tags and some of the highway, waterway and railway tag values from Map Features.
<?xml version='1.0' encoding='UTF-8'?> <?xml-stylesheet type="text/xsl" href="osmarender.xsl"?> <rules data="data.xml" scale="2" xml-stylesheet="rules.css"> <style type="text/css"> .highway-motorway-casing { stroke-width: 5; stroke-linecap: round; stroke: #000000; } .highway-motorway-core { stroke-width: 3; stroke-linecap: round; stroke: #809BC0; } .hotel { fill: green; stroke: black; stroke-width: 1; } </style> <!-- draw residential shading first --> <rule k="abutters" v="residential"> <line style="stroke-width: 18; stroke-linecap: round; stroke: #f2f2f2;"/> </rule> <rule k="class" v="residential"> <line style="stroke-width: 18; stroke-linecap: round; stroke: #f2f2f2;"/> </rule> <!-- Shading for parking areas --> <rule k="highway" v="parking"> <line style="stroke-width: 6; stroke-linecap: round; stroke: #f3f282;"/> </rule> <!-- draw waterway casings --> <rule k="class" v="river"> <line style="stroke-width: 8; stroke-linecap: round; stroke: #aaaaaa;"/> </rule> <rule k="waterway" v="river"> <line style="stroke-width: 8; stroke-linecap: round; stroke: #aaaaaa;"/> </rule> <rule k="waterway" v="canal"> <line style="stroke-width: 4; stroke-linecap: round; stroke: #aaaaaa;"/> </rule> <!-- draw waterway cores --> <rule k="class" v="river"> <line style="stroke-width: 6; stroke-linecap: round; stroke: #89bac6;"/> </rule> <rule k="waterway" v="river"> <line style="stroke-width: 6; stroke-linecap: round; stroke: #89bac6;"/> </rule> <rule k="waterway" v="canal"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #89bac6;"/> </rule> <!-- next draw footpaths --> <rule k="class" v="path"> <line style="stroke-width: 1; stroke-linecap: round; stroke: #d79331;"/> </rule> <rule k="highway" v="footway"> <line style="stroke-width: 1; stroke-linecap: round; stroke: #d79331;"/> </rule> <!-- draw highway casings for minor roads --> <rule k="class" v="~"> <!-- Any segment without a class key --> <line style="stroke-width: 3; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="highway" v="unclassified"> <line style="stroke-width: 3; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="class" v="residential"> <line style="stroke-width: 3; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="highway" v="residential"> <line style="stroke-width: 3; stroke-linecap: round; stroke: #000000;"/> </rule> <!-- draw highway cores for minor roads --> <rule k="class" v="~"> <!-- Any segment without a class key --> <line style="stroke-width: 2; stroke-linecap: round; stroke: #E6E6E6;"/> </rule> <rule k="highway" v="unclassified"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #E6E6E6;"/> </rule> <rule k="class" v="residential"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #E6E6E6;"/> </rule> <rule k="highway" v="residential"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #E6E6E6;"/> </rule> <!-- draw railway lines --> <rule k="railway" v="rail"> <line style="stroke-width: 3; stroke-linecap: round; stroke: #000000;"/> </rule> <!-- draw highway casings for major roads --> <rule k="class" v="secondary"> <line style="stroke-width: 4; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="highway" v="secondary"> <line style="stroke-width: 4; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="class" v="primary"> <line style="stroke-width: 4; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="highway" v="primary"> <line style="stroke-width: 4; stroke-linecap: round; stroke: #000000;"/> </rule> <rule k="class" v="motorway"> <line class='highway-motorway-casing'/> </rule> <rule k="highway" v="motorway"> <line class='highway-motorway-casing'/> </rule> <!-- draw highway cores for major roads --> <rule k="class" v="secondary"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #FDBF6F;"/> </rule> <rule k="highway" v="secondary"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #FDBF6F;"/> </rule> <rule k="class" v="primary"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #7FC97F;"/> </rule> <rule k="highway" v="primary"> <line style="stroke-width: 2; stroke-linecap: round; stroke: #7FC97F;"/> <text k="ref" font-family='Verdana' font-size='10px' fill='black'/> </rule> <rule k="class" v="motorway"> <line class='highway-motorway-core'/> </rule> <rule k="highway" v="motorway"> <line class='highway-motorway-core'/> </rule> <!-- draw nodes --> <rule k="class" v="village"> <text k="name" font-family='Verdana' font-size='10px' fill='black'/> </rule> <rule k="class" v="town"> <text k="name" font-family='Verdana' font-size='14px' font-style='bold' fill='black'/> </rule> <rule k="class" v="school"> <circle r='3' fill='red' stroke='black' stroke-width='1'/> <text k="name" font-family='Verdana' font-size='10px' fill='black' x-offset='4' y-offset='4'/> </rule> <rule k="class" v="hotel"> <circle r='3' class='hotel'/> <text k="name" font-family='Verdana' font-size='10px' fill='black' x-offset='4' y-offset='4'/> </rule> <rule k="class" v="church"> <circle r='3' fill='black' stroke='black' stroke-width='1'/> <text k="name" font-family='Verdana' font-size='10px' fill='black' x-offset='4' y-offset='4'/> </rule> <rule k="class" v="historic-name"> <text k="name" font-family='Verdana' font-size='16px' fill='black' font-style='italic'/> </rule> <rule k="class" v="clockwise-roundabout"> <circle r='3' fill='white' stroke='black' stroke-width='1'/> </rule> <rule k="class" v="anti-clockwise-roundabout"> <circle r='3' fill='white' stroke='black' stroke-width='1'/> </rule> </rules>