]> gerrit.simantics Code Review - simantics/district.git/blobdiff - 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
diff --git a/org.simantics.maps.server/server/tm2/mapbox-studio-osm-bright.tm2/road.mss b/org.simantics.maps.server/server/tm2/mapbox-studio-osm-bright.tm2/road.mss
new file mode 100644 (file)
index 0000000..a540b29
--- /dev/null
@@ -0,0 +1,143 @@
+// Basic color palette, from which variations will be derived.
+@motorway:          #fc8;
+@main:              #fea;
+@street:            #fff;
+@street_limited:    #f3f3f3;
+
+// ---------------------------------------------------------------------
+
+// Roads are split across 3 layers: #road, #bridge, and #tunnel. Each
+// road segment will only exist in one of the three layers. The
+// #bridge layer makes use of Mapnik's group-by rendering mode;
+// attachments in this layer will be grouped by layer for appropriate
+// rendering of multi-level overpasses.
+
+// The main road style is for all 3 road layers and divided into 2 main
+// attachments. The 'case' attachment is 
+
+#transportation {
+  // casing/outlines & single lines
+  ::case[zoom>=6]['mapnik::geometry_type'=2] {
+    [class='motorway'] {
+      line-join:round;
+      line-color: mix(@motorway, #800, 75);
+      #road { line-cap: round; }
+      #tunnel { line-dasharray:3,2; }
+      [zoom>=6]  { line-width:0.4; }
+      [zoom>=7]  { line-width:0.6; }
+      [zoom>=8] { line-width:1.5; }
+      [zoom>=10]  { line-width:3; }
+      [zoom>=13] { line-width:3.5;  }
+      [zoom>=14] { line-width:5; }
+      [zoom>=15] { line-width:7; }
+      [zoom>=16] { line-width:9; }
+    }
+    [class='motorway'][ramp=1][zoom>=13] {
+      line-join:round;
+      line-color: mix(@motorway, #800, 75);
+      #road { line-cap: round; }
+      #tunnel { line-dasharray:3,2; }
+      [zoom>=13] { line-width:1; }
+      [zoom>=14] { line-width:3; }
+      [zoom>=15] { line-width:5; }
+      [zoom>=16] { line-width:6.5; }
+    }
+    [class='primary'],[class='secondary'],[class='tertiary'],[class='trunk'] {
+      line-join:round;
+      line-cap: round;
+      line-color: mix(@main, #800, 75);
+      [brunnel='tunnel'] { line-dasharray:3,2; }
+      [zoom>=6] { line-width:0.2; }
+      [zoom>=7] { line-width:0.4; }
+      [zoom>=8] { line-width:1.5; }
+      [zoom>=10] { line-width:2.4; }
+      [zoom>=13] { line-width:2.5; }
+      [zoom>=14] { line-width:4; }
+      [zoom>=15] { line-width:5; }
+      [zoom>=16] { line-width:8; }
+    }
+    [class='minor'][zoom>=12] {
+      line-join:round;
+      line-cap: round;
+      [brunnel='tunnel'] { line-dasharray:3,2; }
+      line-color: @land * 0.8;
+      [zoom>=12] { line-width:0.5; }
+      [zoom>=14] { line-width:1; }
+      [zoom>=15] { line-width:4; }
+      [zoom>=16] { line-width:6.5; }
+    }
+    [class='service'][zoom>=15] {
+      line-join:round;
+      line-cap: round;
+      [brunnel='tunnel'] { line-dasharray:3,2; }
+      line-color: @land * 0.9;
+      [zoom>=15] { line-width:1; }
+      [zoom>=16] { line-width:4; }
+    }
+    [class='path'][zoom>=15] {
+      line-color: #cba;
+      line-dasharray: 2,1;
+      [zoom>=16] { line-width: 1.2; }
+      [zoom>=17] { line-width: 1.5; }
+    }
+  }
+  
+  // fill/inlines
+  ::fill[zoom>=6]['mapnik::geometry_type'=2] {
+    [class='motorway'][zoom>=8] {
+      line-join:round;
+      line-cap:round;
+      line-color:@motorway;
+      [brunnel='tunnel'] { line-color:lighten(@motorway,4); }
+      [zoom>=8] { line-width:0.5; }
+      [zoom>=10] { line-width:1; }
+      [zoom>=13] { line-width:2; }
+      [zoom>=14] { line-width:3.5; }
+      [zoom>=15] { line-width:5; }
+      [zoom>=16] { line-width:7; }
+    }
+    [class='motorway'][ramp=1][zoom>=14] {
+      line-join:round;
+      line-cap: round;
+      line-color:@motorway;
+      [brunnel='tunnel'] {  line-color:lighten(@motorway,4); }
+      [zoom>=14] { line-width:1.5; }
+      [zoom>=15] { line-width:3; }
+      [zoom>=16] { line-width:4.5; }
+    }
+    [class=~'primary|secondary|tertiary|trunk'][zoom>=8] {
+      line-join:round;
+      #road, #bridge { line-cap: round; }
+      line-color:@main;
+      [brunnel='tunnel'] { line-color:lighten(@main,4); }
+      [zoom>=8] { line-width:0.5; }
+      [zoom>=10] { line-width:1; }
+      [zoom>=13] { line-width:1.5; }
+      [zoom>=14] { line-width:2.5; }
+      [zoom>=15] { line-width:3.5; }
+      [zoom>=16] { line-width:6; }
+    }
+    [class='minor'][zoom>=15], {
+      line-join:round;
+      line-cap: round;
+      [zoom>=15] { line-width:2.5; line-color:#fff; }
+      [zoom>=16] { line-width:4; }
+    }
+    [class='service'][zoom>=16], {
+      line-join:round;
+      line-cap: round;
+      [zoom>=16] { line-width:2; line-color:#fff; }
+    }
+    [class='major_rail'] {
+      line-width: 0.4;
+      line-color: #bbb;
+      [zoom>=16] {
+        line-width: 0.75;
+       // Hatching
+       h/line-width: 3;
+       h/line-color: #bbb;
+       h/line-dasharray: 1,31;
+      }
+    }
+  }
+}