]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/server/tm2/mapbox-studio-light.tm2/style.mss
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / server / tm2 / mapbox-studio-light.tm2 / style.mss
diff --git a/org.simantics.maps.server/server/tm2/mapbox-studio-light.tm2/style.mss b/org.simantics.maps.server/server/tm2/mapbox-studio-light.tm2/style.mss
new file mode 100644 (file)
index 0000000..80bd0a1
--- /dev/null
@@ -0,0 +1,126 @@
+// Languages: name (local), name_en, name_fr, name_es, name_de
+@name: '[name]';
+
+// Fonts //
+@sans: 'Arial Unicode MS Regular';
+@sans_bold: 'Arial Unicode MS Bold';
+
+/*
+This style is designed to be easily recolored by adjusting the color
+variables below. For predicatable feature relationships,
+maintain or invert existing value (light to dark) scale.
+*/
+
+// Color palette //
+@road:  #fff;
+@land:  #eee;
+
+@fill1: #fff;
+@fill2: #bbb;
+@fill3: #777;
+@fill4: #000;
+
+@text: #777;
+
+Map { background-color: @land; }
+
+// Political boundaries //
+#boundary[admin_level=2] {
+  line-join: round;
+  line-color: mix(@fill3,@fill2,50);
+  line-width: 1;
+  [zoom>=5] { line-width: 1.4; }
+  [zoom>=6] { line-width: 1.8; }
+  [zoom>=8] { line-width: 2; }
+  [zoom>=10] { line-width: 3; }
+  [disputed=1] { line-dasharray: 4,4; }
+}
+
+#boundary[admin_level>2][admin_level<=4] {
+  line-join: round;
+  line-color: @fill2;
+  line-width: 1;
+  line-dasharray: 3,2;
+  [zoom>=6] { line-width: 1.5; }
+  [zoom>=8] { line-width: 1.8; }
+}
+
+// Land Features //
+#landuse[class='cemetery'],
+#park,
+#landcover[class='wood'],
+#landcover[class='wetland'] {
+  polygon-fill: darken(@land,3);
+  [zoom>=15] { polygon-fill:mix(@land,@fill4,95); }
+}
+
+#landuse[class='pitch'],
+#landcover[class='sand'] { 
+  polygon-fill: mix(@land,@fill4,90);
+}
+
+#landuse[class='hospital'],
+#landuse[class='industrial'],
+#landuse[class='school'] { 
+  polygon-fill: mix(@land,@fill1,95);
+}
+
+#building { 
+  polygon-fill: mix(@fill2,@land,25);
+  [zoom>=16]{ polygon-fill: mix(@fill2,@land,50);}
+}
+
+#aeroway {
+  ['mapnik::geometry_type'=3][class!='apron'] { 
+    polygon-fill: mix(@fill2,@land,25);
+    [zoom>=16]{ polygon-fill: mix(@fill2,@land,50);}
+  }
+  ['mapnik::geometry_type'=2] { 
+    line-color: mix(@fill2,@land,25);
+    line-width: 1;
+    [zoom>=13][class='runway'] { line-width: 4; }
+    [zoom>=16] {
+      [class='runway'] { line-width: 6; }
+      line-width: 3;
+      line-color: mix(@fill2,@land,50);
+    }
+  }
+}
+
+// Water Features //
+#water {
+  ::shadow {
+    polygon-fill: mix(@land,@fill4,75);
+  }
+  ::fill {
+    // a fill and overlay comp-op lighten the polygon-
+    // fill from ::shadow.
+    polygon-fill: @land;
+    comp-op: soft-light;
+    // blurring reveals the polygon fill from ::shadow around
+    // the edges of the water
+    image-filters: agg-stack-blur(10,10);
+  }
+}
+
+// Water color is calculated by sampling the resulting color from
+// the soft-light comp-op in the #water layer style above. 
+@water: #d1d1d1;
+
+#waterway {
+  [class='river'],
+  [class='canal'] {
+    line-color: @water;
+    line-width: 0.5;
+    [zoom>=12] { line-width: 1; }
+    [zoom>=14] { line-width: 2; }
+    [zoom>=16] { line-width: 3; }
+  }
+  [class='stream'] {
+    line-color: @water;
+    line-width: 0.5;
+    [zoom>=14] { line-width: 1; }
+    [zoom>=16] { line-width: 2; }
+    [zoom>=18] { line-width: 3; }
+  }
+}