]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/server/tm2/mapbox-studio-osm-bright.tm2/road.mss
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / server / tm2 / mapbox-studio-osm-bright.tm2 / road.mss
1 // Basic color palette, from which variations will be derived.
2 @motorway:          #fc8;
3 @main:              #fea;
4 @street:            #fff;
5 @street_limited:    #f3f3f3;
6
7 // ---------------------------------------------------------------------
8
9 // Roads are split across 3 layers: #road, #bridge, and #tunnel. Each
10 // road segment will only exist in one of the three layers. The
11 // #bridge layer makes use of Mapnik's group-by rendering mode;
12 // attachments in this layer will be grouped by layer for appropriate
13 // rendering of multi-level overpasses.
14
15 // The main road style is for all 3 road layers and divided into 2 main
16 // attachments. The 'case' attachment is 
17
18 #transportation {
19   // casing/outlines & single lines
20   ::case[zoom>=6]['mapnik::geometry_type'=2] {
21     [class='motorway'] {
22       line-join:round;
23       line-color: mix(@motorway, #800, 75);
24       #road { line-cap: round; }
25       #tunnel { line-dasharray:3,2; }
26       [zoom>=6]  { line-width:0.4; }
27       [zoom>=7]  { line-width:0.6; }
28       [zoom>=8] { line-width:1.5; }
29       [zoom>=10]  { line-width:3; }
30       [zoom>=13] { line-width:3.5;  }
31       [zoom>=14] { line-width:5; }
32       [zoom>=15] { line-width:7; }
33       [zoom>=16] { line-width:9; }
34     }
35     [class='motorway'][ramp=1][zoom>=13] {
36       line-join:round;
37       line-color: mix(@motorway, #800, 75);
38       #road { line-cap: round; }
39       #tunnel { line-dasharray:3,2; }
40       [zoom>=13] { line-width:1; }
41       [zoom>=14] { line-width:3; }
42       [zoom>=15] { line-width:5; }
43       [zoom>=16] { line-width:6.5; }
44     }
45     [class='primary'],[class='secondary'],[class='tertiary'],[class='trunk'] {
46       line-join:round;
47       line-cap: round;
48       line-color: mix(@main, #800, 75);
49       [brunnel='tunnel'] { line-dasharray:3,2; }
50       [zoom>=6] { line-width:0.2; }
51       [zoom>=7] { line-width:0.4; }
52       [zoom>=8] { line-width:1.5; }
53       [zoom>=10] { line-width:2.4; }
54       [zoom>=13] { line-width:2.5; }
55       [zoom>=14] { line-width:4; }
56       [zoom>=15] { line-width:5; }
57       [zoom>=16] { line-width:8; }
58     }
59     [class='minor'][zoom>=12] {
60       line-join:round;
61       line-cap: round;
62       [brunnel='tunnel'] { line-dasharray:3,2; }
63       line-color: @land * 0.8;
64       [zoom>=12] { line-width:0.5; }
65       [zoom>=14] { line-width:1; }
66       [zoom>=15] { line-width:4; }
67       [zoom>=16] { line-width:6.5; }
68     }
69     [class='service'][zoom>=15] {
70       line-join:round;
71       line-cap: round;
72       [brunnel='tunnel'] { line-dasharray:3,2; }
73       line-color: @land * 0.9;
74       [zoom>=15] { line-width:1; }
75       [zoom>=16] { line-width:4; }
76     }
77     [class='path'][zoom>=15] {
78       line-color: #cba;
79       line-dasharray: 2,1;
80       [zoom>=16] { line-width: 1.2; }
81       [zoom>=17] { line-width: 1.5; }
82     }
83   }
84   
85   // fill/inlines
86   ::fill[zoom>=6]['mapnik::geometry_type'=2] {
87     [class='motorway'][zoom>=8] {
88       line-join:round;
89       line-cap:round;
90       line-color:@motorway;
91       [brunnel='tunnel'] { line-color:lighten(@motorway,4); }
92       [zoom>=8] { line-width:0.5; }
93       [zoom>=10] { line-width:1; }
94       [zoom>=13] { line-width:2; }
95       [zoom>=14] { line-width:3.5; }
96       [zoom>=15] { line-width:5; }
97       [zoom>=16] { line-width:7; }
98     }
99     [class='motorway'][ramp=1][zoom>=14] {
100       line-join:round;
101       line-cap: round;
102       line-color:@motorway;
103       [brunnel='tunnel'] {  line-color:lighten(@motorway,4); }
104       [zoom>=14] { line-width:1.5; }
105       [zoom>=15] { line-width:3; }
106       [zoom>=16] { line-width:4.5; }
107     }
108     [class=~'primary|secondary|tertiary|trunk'][zoom>=8] {
109       line-join:round;
110       #road, #bridge { line-cap: round; }
111       line-color:@main;
112       [brunnel='tunnel'] { line-color:lighten(@main,4); }
113       [zoom>=8] { line-width:0.5; }
114       [zoom>=10] { line-width:1; }
115       [zoom>=13] { line-width:1.5; }
116       [zoom>=14] { line-width:2.5; }
117       [zoom>=15] { line-width:3.5; }
118       [zoom>=16] { line-width:6; }
119     }
120     [class='minor'][zoom>=15], {
121       line-join:round;
122       line-cap: round;
123       [zoom>=15] { line-width:2.5; line-color:#fff; }
124       [zoom>=16] { line-width:4; }
125     }
126     [class='service'][zoom>=16], {
127       line-join:round;
128       line-cap: round;
129       [zoom>=16] { line-width:2; line-color:#fff; }
130     }
131     [class='major_rail'] {
132       line-width: 0.4;
133       line-color: #bbb;
134       [zoom>=16] {
135         line-width: 0.75;
136         // Hatching
137         h/line-width: 3;
138         h/line-color: #bbb;
139         h/line-dasharray: 1,31;
140       }
141     }
142   }
143 }