source: subversion/applications/rendering/osmarender6/osm-map-features-z9.xml @ 6087

Last change on this file since 6087 was 6087, checked in by bobkare, 12 years ago

Added rendering of place=island and place=islet. Rendered like city and village respectively to z12, and place=island as town in lowzoom

File size: 18.4 KB
Line 
1<?xml version='1.0' encoding='UTF-8'?>
2<?xml-stylesheet type="text/xsl" href="osmarender.xsl"?>
3
4<!-- This file should be used with Osmarender 4 -->
5<!-- This file implements a sub-set of the items described at http://wiki.openstreetmap.org/index.php/Map_Features -->
6
7<!-- A scale of 0.1 will make fat roads on a small map, a scale of 5 will draw very thin roads on a large scale map -->
8<!-- minimumMapWidth/Height is in kilometres -->
9<!-- Set javaScript="no" if you want an svg file that contains no javascript.  This is so that you can upload it to Wikipedia etc -->
10<rules
11    xmlns:xlink="http://www.w3.org/1999/xlink"
12    xmlns:svg="http://www.w3.org/2000/svg"
13    data="data.osm"
14    svgBaseProfile="full"
15    scale="1"
16    symbolScale="1"
17    minimumMapWidth="1"
18    minimumMapHeight="1"
19    withOSMLayers="yes"
20    withUntaggedSegments="no"
21    showScale="no"
22    showGrid="no"
23    showBorder="no"
24    showLicense="no"
25    interactive="no">
26
27    <!--bounds_mkr1-->
28    <!--bounds_mkr2-->
29
30    <!-- Select all nodes and ways (unless they have an osmarender:render=no tag) -->
31    <rule e="node|way" k="osmarender:render" v="~|yes">
32
33        <!-- Draw land areas first -->
34        <rule e="way" k="natural" v="land">
35            <area class='natural-land' />
36        </rule>
37
38        <!-- Landuse -->
39        <!-- render all landuse in the same colour so it doesn't look too psychadelic -->
40        <rule e="way" k="landuse" v="residential|retail|industrial|commercial|cemetery">
41            <area class='landuse-all'/>
42        </rule>
43
44
45        <!-- Natural features -->
46        <rule e="way" k="natural" v="coastline">
47            <area class='natural-coastline'/>
48        </rule>
49        <rule e="way" k="landuse|natural" v="forest|wood">
50            <area class='landuse-wood'/>
51        </rule>
52        <rule e="way" k="landuse" v="field|village_green|meadow">
53            <area class='landuse-field'/>
54        </rule>
55        <rule e="way" k="amenity" v="school|college|university">
56            <area class='landuse-all'/>
57        </rule>
58        <rule e="way" k="leisure" v="park|playing_fields|garden|pitch|golf_course|common|green">
59            <area class='leisure-park'/>
60        </rule>
61        <rule e="way" k="leisure" v="stadium|sports_centre">
62            <area class='leisure-stadium'/>
63        </rule>
64
65
66        <!-- Airports and runways -->
67
68        <!-- Raceways and racetracks -->
69        <rule e="way" k="landuse" v="raceway">
70            <rule e="way" k="use_status" v="~">
71                <area class='landuse-raceway' />
72            </rule>
73        </rule>
74
75        <!-- Man-made areas -->
76        <rule e="way" k="sport" v="*">
77            <area class='sport'/>
78        </rule>
79        <rule e="way" k="aeroway" v="terminal">
80            <area class='building-block'/>
81        </rule>
82
83
84        <!-- Waterways, lakes and ponds -->
85        <rule e="way" k="waterway" v="riverbank">
86            <area class='waterway-riverbank'/>
87        </rule>
88        <rule e="way" k="waterway" v="river">
89            <line class='waterway-river-core'/>
90        </rule>
91        <rule e="way" k="waterway" v="canal">
92            <line class='waterway-canal-core'/>
93        </rule>
94        <rule e="way" k="waterway" v="dock">
95            <area class='natural-water' />
96        </rule>
97        <rule e="way" k="natural" v="water|pond|lake">
98            <area class='natural-water' />
99        </rule>
100        <rule e="way" k="landuse" v="reservoir">
101            <area class='natural-water' />
102        </rule>
103        <rule e="way" k="landuse" v="basin">
104            <area class='natural-water' />
105        </rule>
106
107        <!-- Paths in tunnels -->
108        <!-- Paths not in tunnels -->
109
110        <!-- Highway cores (not in tunnel) -->
111        <rule e="way" k="tunnel" v="~|false|no">
112            <addclass e="way" k="bridge" v="yes|true" class="round">
113                <rule e="way" k="highway" v="raceway">
114                    <rule e="way" k="use_status" v="~">
115                        <line class='highway-raceway-core' />
116                    </rule>
117                </rule>
118                <rule e="way" k="highway" v="secondary">
119                    <line class='highway-core highway-secondary-core' />
120                </rule>
121                <rule e="way" k="highway" v="primary|primary_link">
122                    <line class='highway-core highway-primary-core' />
123                </rule>
124                <rule e="way" k="highway" v="trunk|trunk_link">
125                    <line class='highway-core highway-trunk-core' />
126                </rule>
127                <rule e="way" k="highway" v="motorway_link">
128                    <line class='highway-core highway-motorway-link-core' />
129                </rule>
130                <rule e="way" k="highway" v="motorway">
131                    <line class='highway-core highway-motorway-core' />
132                </rule>
133            </addclass>
134        </rule>
135
136        <!-- Highway cores in tunnels -->
137        <rule e="way" k="tunnel" v="true|yes">
138            <rule e="way" k="highway" v="service">
139                <tunnel width="10" class='highway-core highway-service-core' />
140            </rule>
141            <rule e="way" k="highway" v="secondary">
142                <tunnel width="30" class='highway-core highway-secondary-core' />
143            </rule>
144            <rule e="way" k="highway" v="primary|primary_link">
145                <tunnel width="30" class='highway-core highway-primary-core' />
146            </rule>
147            <rule e="way" k="highway" v="trunk|trunk_link">
148                <tunnel width="40" class='highway-core highway-trunk-core' />
149            </rule>
150            <rule e="way" k="highway" v="motorway|motorway_link">
151                <tunnel width="40" class='highway-core highway-motorway-core' />
152            </rule>
153        </rule>
154
155        <!-- highway motorway-junctions -->
156        <rule e="node" k="highway" v="motorway_junction">
157          <circle r="7" class="highway-motorway-junction" />
158          <text k="name" class='highway-motorway-junction-caption' dy='-2px' />
159          <text k="ref" class='highway-motorway-junction-caption' dy='+5px' />
160        </rule>
161
162
163        <!-- Railway lines -->
164        <rule e="way" k="railway" v="rail">
165            <line class='railway-rail' />
166        </rule>
167
168
169        <!-- Airfields and airports -->
170        <rule e="way" k="aeroway" v="runway">
171            <line class='aeroway-runway-core'/>
172        </rule>
173        <rule e="node" k="aeroway" v="airport">
174            <symbol xlink:href="#airport" width='200px' height='200px' transform='translate(-100,-100)' />
175        </rule>
176
177
178        <!-- Non-pysical routes -->
179        <rule e="way" k="route" v="ferry">
180            <line class='route-ferry' />
181        </rule>
182
183    </rule> <!-- k="osmarender:render" v="~|yes" -->
184
185    <!-- ==================================== Layer 5 ================================== -->
186    <rule e="node|way" k="osmarender:render" v="~|yes" layer="5">
187   
188                <!-- Non-physical boundaries -->
189                <rule e="way" k="boundary" v="administrative" layer="5">
190                        <rule e="way" k="border_type" v="state" layer="5">
191                                <line class="boundary boundary-administrative-state-casing" />
192                                <line class="boundary boundary-administrative-state-core" />
193                        </rule> 
194                        <else>
195                                <line class="boundary boundary-administrative-state-core" />
196                        </else> 
197                </rule>
198       
199        <!-- Place names  -->
200        <rule e="node" k="place" v="island" layer="5">
201            <text k="name" class='island-caption' />
202        </rule>
203        <rule e="node" k="place" v="continent" layer="5">
204            <text k="name" class='continent-caption' />
205        </rule>
206        <rule e="node" k="place" v="country" layer="5">
207            <text k="name" class='country-caption' />
208        </rule>
209        <rule e="node" k="place" v="state" layer="5">
210            <text k="name" class='state-caption' />
211        </rule>
212        <rule e="node" k="place" v="region" layer="5">
213            <text k="name" class='region-caption' />
214        </rule>
215        <rule e="node" k="place" v="county" layer="5">
216            <text k="name" class='county-caption' />
217        </rule>
218        <rule e="node" k="place" v="city" layer="5">
219            <text k="name" class='city-caption' />
220        </rule>
221        <rule e="node" k="place" v="town" layer="5">
222            <text k="name" class='town-caption' />
223        </rule>
224    </rule> <!-- End Layer 5 -->
225
226
227
228    <!-- SVG Definitions - markers, symbols etc go here -->
229    <defs>
230
231        <style id="styles" type="text/css" xmlns="http://www.w3.org/2000/svg">
232            .debug {
233                stroke-width: 0.1px;
234                stroke-linecap: round;
235                stroke: gray;
236                /* marker-end: url(#segment-direction); */
237            }
238
239            .highway-core {
240                stroke-linecap: butt;
241                stroke-linejoin: round;
242                fill: none;
243            }
244
245            .highway-motorway-junction {
246            fill: yellow;
247            stroke: #4D5D73;
248            stroke-width: 3px;
249            }
250           
251            .highway-motorway-junction-caption {
252            fill: black;
253            stroke: blue;
254            stroke-width: 0.2px;
255            font-family: "DejaVu Sans",sans-serif;
256            font-size: 10px;
257            font-weight: bold;
258            display: none;
259            }
260           
261             /* Highways - street specific style */
262
263            .highway-motorway-core {
264                stroke-width: 50px;
265                stroke: #809BC0;
266            }
267
268            .highway-motorway-link-core {
269                stroke-width: 50px;
270                stroke: #809BC0;
271            }
272
273            .highway-trunk-core {
274                stroke-width: 36px;
275                stroke: #7fc97f;
276            }
277
278            .highway-primary-core {
279                stroke-width: 20px;
280                stroke: #e46d71;
281            }
282
283            .highway-secondary-core {
284                stroke-width: 16px;
285                stroke: #FDBF6F;
286            }
287
288            .highway-service-core {
289                stroke-width: 4px;
290                stroke: #ffffff;
291            }
292
293
294            .round {
295                stroke-linecap: round;
296            }
297
298
299            /* Mini roundabouts */
300
301            /* Aeroways */
302            .aeroway-runway-core {
303                stroke-width: 5px;
304                stroke-linecap: butt;
305                stroke-linejoin: round;
306                stroke: #d4dcbd;
307                fill: none;
308            }
309
310            /* Waterways */
311            .waterway-riverbank {
312                fill: #b5d6f1;
313                stroke: #aaaaaa;
314                stroke-width: 0px;
315            }
316
317            .waterway-river-core {
318                stroke-width: 12px;
319                stroke-linecap: butt;
320                stroke-linejoin: round;
321                stroke: #b5d6f1;
322                fill: none;
323            }
324
325            .waterway-canal-core {
326                stroke-width: 12px;
327                stroke-linecap: butt;
328                stroke-linejoin: round;
329                stroke: #b5d6f1;
330                fill: none;
331            }
332
333            .railway-rail {
334                stroke-width: 50px;
335                stroke-linecap: butt;
336                stroke-linejoin: round;
337                stroke: #666666;
338                fill: none;
339            }
340
341            /* Ferry */
342            .route-ferry {
343                stroke-width: 30px;
344                stroke-dasharray: 3,2;
345                stroke-linecap: butt;
346                stroke-linejoin: round;
347                stroke: #777777;
348                fill: none;
349            }
350
351
352            /* Place names */
353            .continent-caption {
354                fill: black;
355                stroke: white;
356                stroke-width: 0.6px;
357                font-family: "DejaVu Sans",sans-serif;
358                font-size: 500px;
359                font-weight: bold;
360                text-anchor: middle;
361            }
362
363            .country-caption {
364                fill: black;
365                stroke: white;
366                stroke-width: 0.5px;
367                font-family: "DejaVu Sans",sans-serif;
368                font-size: 380px;
369                font-weight: bold;
370                text-anchor: middle;
371            }
372
373            .state-caption {
374                fill: black;
375                stroke: white;
376                stroke-width: 0.5px;
377                font-family: "DejaVu Sans",sans-serif;
378                font-size: 160px;
379                font-weight: bold;
380                text-anchor: middle;
381            }
382
383            .region-caption {
384                fill: black;
385                stroke: white;
386                stroke-width: 0.4px;
387                font-family: "DejaVu Sans",sans-serif;
388                font-size: 140px;
389                font-weight: bold;
390                text-anchor: middle;
391            }
392
393            .county-caption {
394                fill: black;
395                stroke: white;
396                stroke-width: 0.4px;
397                font-family: "DejaVu Sans",sans-serif;
398                font-size: 120px;
399                font-weight: bold;
400                text-anchor: middle;
401            }
402
403            .city-caption {
404                fill: black;
405                stroke: none;
406                stroke-width: 0.4px;
407                font-family: "DejaVu Sans",sans-serif;
408                font-size: 400px;
409                font-weight: bold;
410                text-anchor: middle;
411            }
412
413            .town-caption {
414                fill: black;
415                stroke: none;
416                font-family: "DejaVu Sans",sans-serif;
417                font-size: 200px;
418                opacity: 0.9;
419                font-weight: normal;
420                text-anchor: middle;
421            }
422
423            .island-caption {
424                fill: black;
425                stroke: none;
426                font-family: "DejaVu Sans",sans-serif;
427                font-size: 200px;
428                opacity: 0.9;
429                font-weight: normal;
430                text-anchor: middle;
431            }
432
433            /* Natural */
434            .natural-water {
435                fill: #b5d6f1;
436                stroke: #aaaaaa;
437                stroke-width: 0px;
438            }
439
440            .natural-coastline {
441                fill: #b5d6f1;
442                stroke: #b5d6f1;
443                stroke-width: 15px;
444            }
445
446            .natural-land {
447                fill: #ffffff;
448                stroke: #e0e0e0;
449                stroke-width: 10px;
450            }
451
452
453            /* Landuse */
454            .landuse-all {
455                stroke: none;
456                fill: #f0f0f0;
457            }
458
459            .landuse-wood {
460                fill: #72bf81;
461                stroke: #6fc18e;
462                stroke-width: 2px;
463            }
464
465            .landuse-field {
466                fill: #bde3cb;
467                stroke: #6fc13d;
468                stroke-width: 2px;
469            }
470
471
472            /* Leisure */
473            .leisure-park {
474                fill: #c7f1a3;
475                stroke: #6fc18e;
476                stroke-width: 2px;
477            }
478
479            .leisure-stadium {
480                fill: #bde3cb;
481                stroke: #6fc18e;
482                stroke-width: 2px;
483            }
484
485            .sport {
486                fill: #bde3cb;
487                stroke: #6fc18e;
488                stroke-width: 2px;
489            }
490
491                        /* Non-physical boundaries */
492            .boundary {
493                stroke-linecap: butt;
494                stroke-linejoin: round;
495                fill: none;
496            }
497
498                        .boundary-administrative-state-casing {
499                                stroke-width: 80px;
500                                stroke: #ffff00;
501                                opacity: 0.5;
502                }
503
504                        .boundary-administrative-state-core {
505                                stroke-width: 16px;
506                                stroke: #f9574b;
507                                stroke-dasharray: 80, 16, 16, 16;
508                        }
509
510                        /* Racetracks */
511                        .highway-raceway-core {
512                          stroke-width: 1.5px;
513                          stroke-linecap: butt;
514                          stroke-linejoin: round;
515                          fill: none;
516                          stroke: #f0f0f0;
517                          }
518
519                        .landuse-raceway {
520                          stroke-width: 0.3px;
521                          stroke-linecap: butt;
522                          stroke-linejoin: round;
523                          fill: #f0f0f0;
524                          stroke: #101010;
525                          }
526
527
528            /* Tourism */
529
530            /* Building */
531
532            /* Map decoration */
533            .map-grid-line {
534                fill: none;
535                stroke: #8080ff;
536                stroke-width: 0.1px;
537                stroke-opacity: 0.5;
538            }
539
540            .map-border-casing {
541                fill: none;
542                stroke: #8080ff;
543                stroke-width: 3px;
544                stroke-miterlimit: 4;
545                stroke-dasharray: none;
546                stroke-opacity: 1;
547                stroke-linecap: round;
548            }
549
550            .map-border-core {
551                fill: none;
552                fill-opacity: 1;
553                fill-rule: nonzero;
554                stroke: #ffffff;
555                stroke-width: 2px;
556                stroke-miterlimit: 0;
557                stroke-dashoffset: -0.5px;
558                stroke-opacity: 1;
559            }
560
561            .map-scale-casing {
562                fill: none;
563                stroke: #8080ff;
564                stroke-width: 4px;
565                stroke-linecap: butt;
566            }
567
568            .map-scale-core {
569                fill: none;
570                stroke: #ffffff;
571                stroke-width: 3px;
572                stroke-linecap: butt;
573            }
574
575            .map-scale-bookend {
576                fill: none;
577                stroke: #8080ff;
578                stroke-width: 1px;
579                stroke-linecap: butt;
580            }
581
582            .map-scale-caption {
583                font-family: "DejaVu Sans",sans-serif;
584                font-size: 10px;
585                fill: #8080ff;
586            }
587
588            <!-- map background must be the same for all zooms or else empty tile detection will fail -->
589            .map-background {
590                fill: #f8f8f8;
591                stroke: none;
592            }
593
594            .map-title {
595                font-family: "DejaVu Sans",sans-serif;
596                font-size: 20px;
597                text-anchor: middle;
598                fill: black;
599            }
600
601            .map-title-background {
602                fill: white;
603            }
604
605            .map-marginalia-background {
606                fill: white;
607            }
608        </style>
609
610        <svg:symbol
611          id="airport"
612          viewBox="0 0 10 10"
613          fill="black"
614          fill-opacity="1"
615          fill-rule="evenodd"
616          stroke="none">
617            <svg:path d="M 9.2,5 C 9.2,4.5 9.8,3.2 10,3 L 9,3 L 8,4 L 5.5,4 L 8,0 L 6,0 L 3,4 C 2,4 1,4.2 0.5,4.5 C 0,5 0,5 0.5,5.5 C 1,5.8 2,6 3,6 L 6,10 L 8,10 L 5.5,6 L 7.8,6 L 9,7 L 10,7 C 9.8,6.8 9.2,5.5 9.2,5 z " />
618        </svg:symbol>
619
620    </defs>
621</rules>
Note: See TracBrowser for help on using the repository browser.