wiki:Styles/Waterways

Version 6 (modified by pierzen, 2 years ago) ( diff )

optimize rendering at various zoom levels

Colors waterways features and caracteristics and flags typology errors with red triangles (ie disconnected segments, transition from river to stream). Styling of Waterways and natural features characteristics (ie. tunnel, bridge, intermitent) looks alike OSM Carto Style.

Waterways Style Symbology (NOZIP)

meta {
  title:"waterways";
  version:"1.10_2023-11-08";
  description:"Colors waterways features and caracteristics  and flags typology errors with red triangles (ie  disconnected segments, transition from river to stream). Styling of Waterways and natural features characteristics (ie. tunnel, bridge, intermitent) looks alike OSM Carto Style.";
  icon:"waterways.png";
  author:"Pierre Béland";
  watch-modified:true;
}


canvas {
    fill-color:#ffffea;
}


way  {z-index:1; width:0; casing-width:color:none;  casing-color:none; opacity:0.0;}

 node {
   z-index:1; symbol:size:0;
   symbol-stroke-color:none;
   symbol-fill-color:none;
    opacity:0.0;
    symbol-stroke-opacity:0.0;
    symbol-fill-opacity:0.0;
 }

/* Pseudo Classes */

way[waterway=rapids]  {   
   casing-width:0;    width:0;    opacity:0;    casing-opacity:0;}
way[waterway=stream], way[waterway=drain], way[waterway=ditch], way[waterway=wadi], way[waterway=yes]  {   
   set .waterway_sd;    color:blue;    casing-color:white;    casing-width:1;    width:6;    opacity:0.5;    casing-opacity:0.3;}


relation[natural=water],
area[natural=water]:closed { 
   z-index:1; color:#c2d5f0; width:2; fill-color:#c2d5f0;    
fill-opacity:0.4;
}
relation[natural=water],
area[natural=water]:closed,
area[waterway][waterway!=dam]:closed{
   set .water_area; 
   color:#c2d5f0; width:0; opacity:0; 
   fill-color:#c2d5f0; fill-opacity:0.3; 
   casing-color:none; casing-width:0; casing-opacity:0;}
relation[natural=wetland], way[natural=wetland]:closed {
   set .wetland_area; 
   color:#c2d5f0; width:0; opacity:1.0; 
   fill-opacity:1; 
   fill-image:natural_wetland.png;
   casing-width:0; casing-color:none; casing-opacity:0;
}
relation[natural=shoal], way[natural=shoal]:closed {
   set .shoal_area; 
   color:#FFFFD8; width:0; opacity:1.0; 
   fill-opacity:1; 
   fill-image:natural_shoal.png;
}
relation[natural=water] > way,
area[natural=water], 
area.wetland_area,
way[natural], 
way[coastline], 
way[place=island], 
way[place=islet]{
   set .natural_way;
   z-index:3; color:#c2d5f0; width:2; opacity:0; 
   casing-color:none; casing-width:0; casing-opacity:0;}
way[waterway=stream] > node, way[waterway=drain] > node, way[waterway=ditch] > node, way[waterway=wadi] > node, way[waterway=yes] > node 
{set .waterway_sd_node;}
way[waterway=stream] >[index=1] node, way[waterway=drain] >[index=1] node, way[waterway=ditch] >[index=1] node, way[waterway=wadi] >[index=1] node, way[waterway=yes] >[index=1] node
{set .waterway_sd_node_deb;}
way[waterway=stream] >[index=-1] node, way[waterway=drain] >[index=-1] node, way[waterway=ditch] >[index=-1] node, way[waterway=wadi] >[index=-1] node, way[waterway=yes] >[index=-1] node {   
   set .waterway_sd_node_end;     symbol-shape:pentagon;        symbol-size:6;          symbol-stroke-color:cyan;       symbol-fill-color:red;  symbol-stroke-width:2;  symbol-stroke-opacity:0.6;} 
way[waterway=stream] >[index<-1] node, way[waterway=drain] >[index<-1] node, way[waterway=ditch] >[index<-1] node, way[waterway=wadi] >[index<-1] node, way[waterway=yes] >[index<-1] node 
{ set .waterway_sd_node_nend;} 
way[waterway=river], way[waterway=canal], way[waterway=fairway] {
   set .waterway_rc;    casing-width:0.8;    width:12; }

way[waterway=pressurised][substance=water], way[tunnel][substance=water], way[man_made=pipeline][substance=water] {
   set .waterway_pressurised;    casing-width:0.8;    width:12; }

way[waterway=river] > node, way[waterway=canal] > node, way[waterway=fairway] > node {   
   set .waterway_rc_node;}
way[waterway=river] >[index=1] node, way[waterway=canal] >[index=1] node, way[waterway=fairway] >[index=1] node 
{set .waterway_rc_node_deb;}
way[waterway=river] >[index=-1] node, way[waterway=canal] >[index=-1] node, way[waterway=fairway] >[index=-1] node {   
   set .waterway_rc_node_end; symbol-shape:pentagon; symbol-size:6; symbol-stroke-color:cyan;   symbol-fill-color:red; symbol-stroke-width:2; symbol-stroke-opacity:0.6; }
way[waterway=river] >[index=-1]  node {   
   set .waterway_river_node_end;}

way[waterway=river] >[index<-1] node, way[waterway=canal] >[index<-1] node, way[waterway=fairway] >[index<-1] node  {   
   set .waterway_rc_node_nend;}
way.waterway_rc, way.waterway_sd {
   set .waterways; }
node.waterway_rc_node, node.waterway_sd_node {
   set .waterways_node; }
node.waterway_rc_node_deb, node.waterway_sd_node_deb {
   set .waterways_node_deb; }
node.waterway_rc_node_end, node.waterway_sd_node_end {
   set .waterways_node_end; }
node.waterway_rc_node_nend, node.waterway_sd_node_nend {
   set .waterways_node_nend; }

area.natural_way > node, way.natural_way > node
{set .natural_node;
   z-index:1; symbol:size:0;
   symbol-stroke-color:#c2d5f0;
   symbol-fill-color:none;
    opacity:0.0;
    symbol-stroke-opacity:0.0;
    symbol-fill-opacity:0.0;
}

/* ways and nodes  - distinct waterways  */   

way[waterway=river] {   
   z-index:10; color:blue;   casing-color:blue;}
way.waterway_pressurised  {   
   z-index:10; color:blue;   casing-color:#FFFF66;}
way[waterway=drain] {z-index:5; color:#3434ff; width:1; }
way[waterway=fairway] {z-index:10; color:blue; casing-color:#ffffb3;}

way[place=island],
way[place=islet] { 
   z-index:2; color:#c2d5f0; width:2; fill-color:white;fill-opacity:0.2; opacity:1;}

way|z6-10[waterway=dam]!:closed { 
   z-index:16; color:black; width:4; opacity:0.4; casing-width:4; casing-color:#c2d5f0; casing-opacity:0.4;
}
way|z11-[waterway=dam]!:closed { 
   z-index:16; color:black; width:6; opacity:0.8; casing-width:6; casing-color:#c2d5f0; casing-opacity:0.6;
}
relation|z6-10[waterway=dam] > way:closed, area|z6-10[waterway=dam]:closed { 
   z-index:16; color:black; width:1; fill-color:#222222; fill-opacity:0.3;}
relation|z11-[waterway=dam] > way:closed, area|z11-[waterway=dam]:closed { 
   z-index:16; color:black; width:2; fill-color:#222222; fill-opacity:0.4;}
way|z1-6[waterway=weir] { 
   z-index:16; color:black; width:2; opacity:0.5; }

way|z7-[waterway=weir] { 
   z-index:16; color:black; width:4; opacity:1; casing-width:6; casing-color:#c2d5f0; casing-opacity:0.7; dashes:32, 12;}

/* ways styles by zoom-level */

way|z1-10.natural_way {
   z-index:1; width:1; color:#c2d5f0;  casing-width:; casing-color:none; opacity:0.8; casing-opacity:0; }

way|z12-15.natural_way
{
   z-index:1; casing-width:0;    width:2; color:#98b9e6;   opacity:0.8; }
way|z16-.natural_way
{
   z-index:1; casing-width:0;    width:3; color:#6f9ddc;   opacity:0.8; }
   
area.wetland_area {
   z-index:2; 
   color:#c2d5f0;   opacity:0.5;
   width:2;
}

way|z1-13.waterway_sd {z-index:5; casing-width:1.3;   width:0.7;}
way|z14-15.waterway_sd {z-index:5; casing-width:1.3;   width:3.3; opacity:1.0}
way|z16-.waterway_sd {z-index:5; casing-width:1.3;   width:3.3; opacity:1.0}
way|z1-13.waterway_rc {z-index:10; casing-width:0.5;  width:0.5; opacity:1;}
way|z14-15.waterway_rc {z-index:10; casing-width:1.7;   width:1.7; opacity:1; casing-opacity:1;}
way|z16-.waterway_rc {z-index:10; casing-width:2;   width:2.5; opacity:1; casing-opacity:1;}

way|z1-13[waterway=fairway] {z-index:10; casing-width:0.5;  width:1; opacity:1;}
way|z14-15[waterway=fairway] {z-index:10; casing-width:0.5;   width:0.7; opacity:1; casing-opacity:1;}
way|z14-[waterway=fairway] {z-index:10; casing-width:4;  width:2.5; color:blue;  casing-color:#b3b3ff; opacity:1; casing-opacity:1;}

way|z6-10[waterway=canal]  { 
        z-index:10; width:1; color:white; opacity:1;
        casing-color:blue; casing-width:1;casing-opacity:1;
        dashes:22, 8, 22;
}
way|z11-13[waterway=canal]  { 
        z-index:10; width:3; color:white; opacity:1;
        casing-color:blue; casing-width:1.5;casing-opacity:1;
        dashes:22, 8, 22;
}
way|z14-[waterway=canal]  { 
        z-index:10; width:4; color:white; opacity:1;
        casing-color:blue; casing-width:3;casing-opacity:1;
        dashes:22, 8, 22;
}
        
way[waterway=canal][lock]  {   
        z-index:10; dashes:6,12;}
way[waterway=lock_gate]  {   
        z-index:10; dashes:6,12;
   color:orange;
   casing-color:blue;
   casing-width:3;
   width:8;}

way[tunnel][tunnel!=no][tunnel!=abandoned]  {
   set .way_tunnel;
}
way[bridge][bridge!=no] {
   set .way_bridge;
}
way[tunnel=abandoned], way[bridge=abandoned], way[waterway=canal][abandoned=yes], way[tunnel][abandoned=yes], way[bridge][abandoned=yes], way[waterway=pressurised][substance=water][abandoned=yes], way[tunnel][substance=water][abandoned=yes], way[man_made=pipeline][substance=water][abandoned=yes] {
   set .way_abandoned;
}
way[intermittent][intermittent!=no], way[waterway=wadi] {
   set .way_intermittent;
}
area[intermittent][intermittent!=no] {
   set .area_intermittent;
}

way|z6-.waterway_pressurised  {
   z-index:16; width:5; color:#6680ff; opacity:1; casing-color:#ffccff; casing-width:4; casing-opacity:1; }
way|z6-13.waterways[tunnel],
way|z6-13.waterway_pressurised[location=underground],
way|z6-13.waterway_pressurised[tunnel] {
   z-index:10; left-casing-offset:eval(-(prop("width")+(8)));
   left-casing-color:blue; left-casing-width:2;  left-casing-dashes:28,8; left-casing-opacity:0.8; 
   right-casing-offset:eval(-(prop("width")+(8)));
   right-casing-color:blue; right-casing-width:2; right-casing-dashes:28,8; right-casing-opacity:0.8;
}
way|z14-.waterways[tunnel],
way|z14-.waterway_pressurised[location=underground],
way|z14-.waterway_pressurised[tunnel] {
   z-index:10; left-casing-offset:eval(-(prop("width")+(13)));   left-casing-color:blue; left-casing-width:3;  left-casing-dashes:28,8; left-casing-opacity:0.5; 
   right-casing-offset:eval(-(prop("width")+(13))); right-casing-color:blue; right-casing-width:3; right-casing-dashes:28,8; right-casing-opacity:0.5;
}
way|z6-13.waterways.way_bridge,
way|z6-13.waterway_pressurised.way_bridge {   
   z-index:21; 
   left-casing-offset:eval(-(prop("width")+(8)));
   left-casing-color:black; left-casing-width:2; left-casing-opacity:0.8; 
   right-casing-offset:eval(-(prop("width")+(8)));
   right-casing-color:black; right-casing-width:2; right-casing-opacity:0.8;
}
way|z14-.waterways.way_bridge,
way|z14-.waterway_pressurised.way_bridge {   
   z-index:21;  left-casing-offset:eval(-(prop("width")+(16))); left-casing-color:black; left-casing-width:3; left-casing-opacity:0.8;
   right-casing-offset:eval(-(prop("width")+(16))); right-casing-color:black; right-casing-width:3; right-casing-opacity:0.8;
}

way|z6-[natural=water][water=canal][tunnel]{
   z-index:2; width:2; color:white; casing-color:blue; casing-dashes:28,8;opacity:0.6; casing-opacity:1;
}
way|z6-[natural=water][water=canal][bridge=aqueduct]{
   z-index:20; width:2; color:black; opacity:0.6;
}
way|z14-[waterway=rapids] {   
   color:blue;
   casing-color:white;    casing-width:2;    width:7;    opacity:0.5;    casing-opacity:0.3;    dashes:6,12,6;}

/* way attributes applied at the end  */

area[natural=water].area_intermittent:closed, area[waterway=dock][dock=drydock]:closed { 
   z-index:1; color:#c2d5f0; width:2; 
   fill-color:#ffffaa;  fill-image:natural_intermittent.png;
   opacity:1; fill-opacity:1;
}
way|z6-10.waterways.way_intermittent {
   z-index:10; 
   left-casing-offset:-2;   left-casing-color:blue; left-casing-width:8;  left-casing-dashes:5,5; left-casing-opacity:0.3; 
   right-casing-offset:-2; right-casing-color:blue; right-casing-width:8; right-casing-dashes:5,5; right-casing-opacity:0.3;
}
way|z11-13.waterways.way_intermittent {
   z-index:10; left-casing-offset:-2;   left-casing-color:blue; left-casing-width:8;  left-casing-dashes:5,5; left-casing-opacity:0.3; 
   right-casing-offset:-2; right-casing-color:blue; right-casing-width:8; right-casing-dashes:5,5; right-casing-opacity:0.3;
}
way|z14-.waterways.way_intermittent {
   z-index:10; left-casing-offset:-2;   left-casing-color:blue; left-casing-width:10;  left-casing-dashes:5,5; left-casing-opacity:0.3; 
   right-casing-offset:-2; right-casing-color:blue; right-casing-width:10; right-casing-dashes:5,5; right-casing-opacity:0.3;
}

way|z6-.way_abandoned {
   z-index:21;
   left-casing-offset:eval(-(prop("width")+(8)));
   left-casing-color:red; left-casing-width:4;  left-casing-dashes:4,3; left-casing-opacity:0.6; 
   right-casing-offset:eval(-(prop("width")+(8)));
   right-casing-color:red; right-casing-width:4; right-casing-dashes:4,3; right-casing-opacity:0.6;
}

/* Nodes styles  */

node|z1-11 {
    z-index:1; symbol-fill-color:none;
    symbol-stroke-color:#808080;
    symbol-shape:square; 
        width:0;
        symbol-size:0; 
        symbol-stroke-width:0 ; 
    symbol-fill-opacity:0.0;
        symbol-stroke-opacity:0;
}

node|z12-14 {
    z-index:1; symbol-shape:square; 
        symbol-size:1;  
    symbol-stroke-color:#3434ff;
        symbol-fill-color:#ffff66;
        symbol-fill-opacity:0.4;
        symbol-stroke-width:0.9;
        symbol-stroke-opacity:0.5;
}
node|z15-16 {
    z-index:1; symbol-shape:square; symbol-size:6;      
        opacity:1;
    symbol-stroke-color:#3434ff;
        symbol-fill-color:#ffff66;
        symbol-fill-opacity:0.8;
        symbol-stroke-width:2;
        symbol-stroke-opacity:0.5;
}
node|z17- {
    z-index:1; symbol-shape:square; symbol-size:9;      
        opacity:1;
    symbol-stroke-color:#333333;
        symbol-fill-color:#ffff3399;
        symbol-fill-opacity:0.8;
        symbol-stroke-width:2.5;
        symbol-stroke-opacity:0.6;
}
node|z8-13[waterway=dam] {
  z-index:10;
  symbol-size:5;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:1;
  symbol-fill-color:#adadad;
  symbol-stroke-opacity:0.6;
  symbol-fill-opacity:1;
}
node|z14-16[waterway=dam] {
  z-index:10;
  symbol-size:14;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:1.5;
  symbol-fill-color:#adadad;
  symbol-stroke-opacity:0.6;
  symbol-fill-opacity:1;
}
node|z17-[waterway=dam] {
  z-index:10;
  symbol-size:22;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:2;
  symbol-fill-color:#adadad;
  symbol-stroke-opacity:1;
  symbol-fill-opacity:1;
}
node|z6-10[waterway=weir] {
  z-index:10;
  symbol-size:8;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:1;
  symbol-fill-color:#6f9ddc;
  symbol-stroke-opacity:1;
  symbol-fill-opacity:0.4;
}
node|z11-12[waterway=weir] {
  z-index:10;
  symbol-size:11;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:1.5;
  symbol-fill-color:#6f9ddc;
  symbol-stroke-opacity:0.6;
  symbol-fill-opacity:0.4;
}
node|z13-[waterway=weir] {
  z-index:10;
  symbol-size:20;
  symbol-shape:circle;
  symbol-stroke-color:#333333;
  symbol-stroke-width:2;
  symbol-fill-color:#6f9ddc;
  symbol-stroke-opacity:1;
  symbol-fill-opacity:0.4;
}

node|z11-13.waterways_node_deb
{
  z-index:10; symbol-shape:square;
  symbol-size:4;
  symbol-fill-color:#cc00cc;
  symbol-fill-opacity:0.8;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:0.5;
  symbol-stroke-opacity:1;}
node|z14-16.waterways_node_deb
{
  z-index:10; symbol-shape:square;
  symbol-size:9;
  symbol-fill-color:#cc00cc;
  symbol-fill-opacity:1;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:1.5;
  symbol-stroke-opacity:1;}
node|z17-.waterways_node_deb
{
  z-index:10; symbol-shape:square;
  symbol-size:16;
  symbol-fill-color:#cc00cc;
  symbol-fill-opacity:1;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:1.5;
  symbol-stroke-opacity:1;}

way[waterway=canal] > node|z16- {   
  z-index:10; symbol-size:10;
  symbol-shape:circle;
  symbol-fill-color:white;
  symbol-fill-opacity:1.0;
  symbol-stroke-width:2;
  symbol-stroke-color:red;}
node|z11-12[waterway=lock_gate] {   
  z-index:11; symbol-shape:circle; 
  symbol-size:11;
  symbol-stroke-color:navy;
  symbol-stroke-width:4;
  symbol-fill-color:red;
  symbol-fill-opacity:0.8; symbol-stroke-opacity:0.8;
}
node|z13-[waterway=lock_gate] {   
  z-index:21; symbol-shape:circle; 
  symbol-size:20;
  symbol-stroke-color:navy;
  symbol-stroke-width:7;
  symbol-fill-color:red;
  symbol-fill-opacity:0.8; symbol-stroke-opacity:0.8;
}

/* flags  */

way|z6-[waterway=yes]  { 
        z-index:5; color:red; opacity:0.9;casing-color:white;
}

/* flag end-node on natural way - not working properly
node.waterways_node_end.natural_node,
node.waterways_node_end!.waterway_node_nend {
    z-index:15; symbol-shape:triangle;  opacity:1; symbol-size:25; symbol-stroke-color:red; symbol-fill-color:red; symbol-stroke-width:5; symbol-stroke-opacity:0.3; }

node.waterways_node_end.natural_node!.waterways_node_deb
{
  z-index:15; symbol-shape:triangle;
  simbol-size:22;
  symbol-fill-color:red;
  symbol-fill-opacity:1;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:0.6;
  symbol-stroke-opacity:1;}

*/
node.waterways_node_end!:connection {
  z-index:15; symbol-shape:triangle;
  symbol-fill-color:red;
  symbol-fill-opacity:0;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:1;
  symbol-stroke-opacity:0;
}
node|z1-10.waterways_node_end!:connection {
   z-index:15; symbol-size:6; symbol-fill-opacity:0.3;
}
node|z11-13.waterways_node_end!:connection {
   z-index:15; symbol-size:10; symbol-fill-opacity:0.6;
}
node|z14-.waterways_node_end!:connection {
   z-index:15; symbol-size:26; symbol-fill-opacity:0.7;
   symbol-stroke-opacity:0.6;
}

node.waterway_river_node_end.waterway_sd_node_nend {
  z-index:15; symbol-shape:triangle;
  symbol-size:0;
  symbol-fill-color:red;
  symbol-fill-opacity:0.3;
  symbol-stroke-color:#00ffff;
  symbol-stroke-width:1;
  symbol-stroke-opacity:0;
}
node|z1-10.waterway_river_node_end.waterway_sd_node_nend {
   z-index:15; symbol-size:4; symbol-fill-opacity:0.3;}
node|z11-13.waterway_river_node_end.waterway_sd_node_nend {
   z-index:15; symbol-size:10; symbol-fill-opacity:0.3; symbol-stroke-opacity:0.6;}
node|z14-.waterway_river_node_end.waterway_sd_node_nend {
   z-index:15; symbol-size:28;  symbol-fill-opacity:0.7; symbol-stroke-width:3; symbol-stroke-opacity:0.6;}

/* ways-nodes selected */

way:selected { 
   z-index:15; width:15;  casing-width:3; color:red;
}
node|z14-:connection:selected {
  z-index:15; symbol-stroke-color:crimson;
  symbol-stroke-width:5;
  symbol-fill-color:yellow;
}
node|z1-13.natural_node_connection {
        z-index:1; symbol-size:0;
        symbol-stroke-width:0;
        symbol-stroke-color:none;
        symbol-fill-color:none;
}
node|z14-.natural_node_connection {
        z-index:1; symbol-size:10;
        symbol-stroke-width:2;
}

Styles_Waterways-style.mapcss, Styles_Waterways.zip

Attachments (25)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.