Skip to content

Commit

Permalink
Handle intermittent drains and ditches,
Browse files Browse the repository at this point in the history
sending them through as `intdrain` and `intditch` respectively.
Also try and render all combinations of waterway, bridge/tunnel,
intermittent somewhat sensibly.
  • Loading branch information
Andy Townsend committed Dec 20, 2024
1 parent f645b01 commit ccc11ca
Show file tree
Hide file tree
Showing 2 changed files with 237 additions and 23 deletions.
6 changes: 3 additions & 3 deletions project.mml
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@
],
"Datasource": {
"type": "postgis",
"table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel, 'no' as bridge\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intriver')\n and (bridge is null or bridge not in ('yes','aqueduct','levee'))\n order by z_order\n ) as water_lines",
"table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel, 'no' as bridge\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intdrain','intditch','intriver')\n and (bridge is null or bridge not in ('yes','aqueduct','levee'))\n order by z_order\n ) as water_lines",
"extent": "-20037508,-20037508,20037508,20037508",
"key_field": "",
"geometry_field": "way",
Expand Down Expand Up @@ -873,7 +873,7 @@
],
"Datasource": {
"type": "postgis",
"table": "(select way,waterway,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel, 'yes' as bridge from planet_osm_line where waterway in ('river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intriver') and bridge in ('yes','aqueduct','levee') order by z_order) as waterway_bridges",
"table": "(select way,waterway,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel, 'yes' as bridge from planet_osm_line where waterway in ('river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intdrain','intditch','intriver') and bridge in ('yes','aqueduct','levee') order by z_order) as waterway_bridges",
"extent": "-20037508,-20037508,20037508,20037508",
"key_field": "",
"geometry_field": "way",
Expand Down Expand Up @@ -1680,7 +1680,7 @@
],
"Datasource": {
"type": "postgis",
"table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intriver')\n order by z_order\n ) as water_lines_text",
"table": " (select way,waterway,lock,name,case when tunnel in ('yes','culvert') then 'yes' else 'no' end as int_tunnel\n from planet_osm_line\n where waterway in ('weir','river','canal','derelict_canal','stream','drain','ditch','pipeline','intstream','intdrain','intditch','intriver')\n order by z_order\n ) as water_lines_text",
"extent": "-20037508,-20037508,20037508,20037508",
"key_field": "",
"geometry_field": "way",
Expand Down
254 changes: 234 additions & 20 deletions water.mss
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,6 @@
[zoom >= 14] {
line-width: 1.5;
line-color: white;
[waterway='stream'][zoom >= 15] {
line-width: 2.5;
}
}
}
}
Expand All @@ -149,7 +146,64 @@
line-cap: round;
}

[waterway = 'intstream'][zoom >= 13] {
[waterway = 'intstream'][zoom >= 13],
[waterway = 'intdrain'][zoom >= 13] {
[bridge = 'yes'] {
[zoom >= 14] {
bridgecasing/line-color: black;
bridgecasing/line-join: round;
bridgecasing/line-width: 3;
[zoom >= 15] { bridgecasing/line-width: 4; }
[zoom >= 17] { bridgecasing/line-width: 5; }
[zoom >= 18] { bridgecasing/line-width: 6; }
[zoom >= 19] { bridgecasing/line-width: 9; }
[zoom >= 20] { bridgecasing/line-width: 22; }
[zoom >= 21] { bridgecasing/line-width: 45; }
[zoom >= 22] { bridgecasing/line-width: 89; }
[zoom >= 23] { bridgecasing/line-width: 177; }
[zoom >= 24] { bridgecasing/line-width: 349; }
bridgeglow/line-color: white;
bridgeglow/line-join: round;
bridgeglow/line-width: 2;
[zoom >= 15] { bridgeglow/line-width: 3; }
[zoom >= 17] { bridgeglow/line-width: 4; }
[zoom >= 18] { bridgeglow/line-width: 4; }
[zoom >= 19] { bridgeglow/line-width: 7; }
[zoom >= 20] { bridgeglow/line-width: 16; }
[zoom >= 21] { bridgeglow/line-width: 30; }
[zoom >= 22] { bridgeglow/line-width: 58; }
[zoom >= 23] { bridgeglow/line-width: 118; }
[zoom >= 24] { bridgeglow/line-width: 236; }
}
}
[bridge = 'levee'] {
[zoom >= 14] {
bridgecasing/line-color: @levee-casing;
bridgecasing/line-join: round;
bridgecasing/line-width: 3;
[zoom >= 15] { bridgecasing/line-width: 4; }
[zoom >= 17] { bridgecasing/line-width: 5; }
[zoom >= 18] { bridgecasing/line-width: 6; }
[zoom >= 19] { bridgecasing/line-width: 9; }
[zoom >= 20] { bridgecasing/line-width: 22; }
[zoom >= 21] { bridgecasing/line-width: 45; }
[zoom >= 22] { bridgecasing/line-width: 89; }
[zoom >= 23] { bridgecasing/line-width: 177; }
[zoom >= 24] { bridgecasing/line-width: 349; }
bridgeglow/line-color: white;
bridgeglow/line-join: round;
bridgeglow/line-width: 2;
[zoom >= 15] { bridgeglow/line-width: 3; }
[zoom >= 17] { bridgeglow/line-width: 4; }
[zoom >= 18] { bridgeglow/line-width: 5; }
[zoom >= 19] { bridgeglow/line-width: 7; }
[zoom >= 20] { bridgeglow/line-width: 16; }
[zoom >= 21] { bridgeglow/line-width: 30; }
[zoom >= 22] { bridgeglow/line-width: 58; }
[zoom >= 23] { bridgeglow/line-width: 118; }
[zoom >= 24] { bridgeglow/line-width: 236; }
}
}
line-color: @water-color;
line-width: 1.5;
line-dasharray: 4,8;
Expand All @@ -175,9 +229,65 @@
line-width: 18;
line-dasharray: 16,32;
}
[int_tunnel = 'yes'] {
line-width: 2.5;
[zoom >= 15]{ line-width: 3.5; }
[zoom >= 17]{ line-width: 4.5; }
[zoom >= 18]{ line-width: 6; }
[zoom >= 19]{ line-width: 8; }
[zoom >= 20]{ line-width: 19; }
[zoom >= 21]{ line-width: 35; }
[zoom >= 22]{ line-width: 67; }
[zoom >= 23]{ line-width: 137; }
[zoom >= 24]{ line-width: 275; }
line-dasharray: 4,2;
a/line-width: 1;
[zoom >= 15]{ a/line-width: 2; }
[zoom >= 17]{ a/line-width: 3; }
[zoom >= 18]{ a/line-width: 4; }
[zoom >= 19]{ a/line-width: 5; }
[zoom >= 20]{ a/line-width: 11; }
[zoom >= 21]{ a/line-width: 20; }
[zoom >= 22]{ a/line-width: 39; }
[zoom >= 23]{ a/line-width: 79; }
[zoom >= 24]{ a/line-width: 159; }
a/line-color: #f3f7f7;
}
}

[waterway = 'intriver'][zoom >= 13] {
[bridge = 'yes'] {
[zoom >= 14] {
bridgecasing/line-color: black;
bridgecasing/line-join: round;
bridgecasing/line-width: 6;
[zoom >= 15] { bridgecasing/line-width: 7; }
[zoom >= 17] { bridgecasing/line-width: 11; }
[zoom >= 18] { bridgecasing/line-width: 13; }
[zoom >= 19] { bridgecasing/line-width: 25; }
[zoom >= 20] { bridgecasing/line-width: 49; }
[zoom >= 21] { bridgecasing/line-width: 96; }
[zoom >= 22] { bridgecasing/line-width: 192; }
[zoom >= 23] { bridgecasing/line-width: 383; }
[zoom >= 24] { bridgecasing/line-width: 761; }
}
}
[bridge = 'levee'] {
[zoom >= 14] {
bridgecasing/line-color: @levee-casing;
bridgecasing/line-join: round;
bridgecasing/line-width: 6;
[zoom >= 15] { bridgecasing/line-width: 7; }
[zoom >= 17] { bridgecasing/line-width: 11; }
[zoom >= 18] { bridgecasing/line-width: 13; }
[zoom >= 19] { bridgecasing/line-width: 25; }
[zoom >= 20] { bridgecasing/line-width: 49; }
[zoom >= 21] { bridgecasing/line-width: 96; }
[zoom >= 22] { bridgecasing/line-width: 192; }
[zoom >= 23] { bridgecasing/line-width: 383; }
[zoom >= 24] { bridgecasing/line-width: 761; }
}
}
line-color: @water-color;
line-width: 3;
line-dasharray: 4,8;
Expand All @@ -203,6 +313,23 @@
line-width: 500;
line-dasharray: 320,640;
}
[int_tunnel = 'yes'] {
line-dasharray: 4,2;
line-cap: butt;
line-join: miter;
a/line-color: #f3f7f7;
a/line-width: 1;
[zoom >= 14] { a/line-width: 2; }
[zoom >= 15] { a/line-width: 3; }
[zoom >= 17] { a/line-width: 7; }
[zoom >= 18] { a/line-width: 8; }
[zoom >= 19] { a/line-width: 15; }
[zoom >= 20] { a/line-width: 29; }
[zoom >= 21] { a/line-width: 57; }
[zoom >= 22] { a/line-width: 113; }
[zoom >= 23] { a/line-width: 225; }
[zoom >= 24] { a/line-width: 449; }
}
}

[waterway = 'canal'][zoom >= 12],
Expand Down Expand Up @@ -466,6 +593,103 @@
}
}

[waterway = 'intditch'] {
[zoom >= 14] {
[bridge = 'yes'] {
[zoom >= 14] {
bridgecasing/line-color: black;
bridgecasing/line-join: round;
bridgecasing/line-width: 3;
[zoom >= 15] { bridgecasing/line-width: 4; }
[zoom >= 17] { bridgecasing/line-width: 5; }
[zoom >= 18] { bridgecasing/line-width: 6; }
[zoom >= 19] { bridgecasing/line-width: 9; }
[zoom >= 20] { bridgecasing/line-width: 22; }
[zoom >= 21] { bridgecasing/line-width: 45; }
[zoom >= 22] { bridgecasing/line-width: 89; }
[zoom >= 23] { bridgecasing/line-width: 177; }
[zoom >= 24] { bridgecasing/line-width: 349; }
bridgeglow/line-color: white;
bridgeglow/line-join: round;
bridgeglow/line-width: 2;
[zoom >= 15] { bridgeglow/line-width: 3; }
[zoom >= 17] { bridgeglow/line-width: 4; }
[zoom >= 18] { bridgeglow/line-width: 4; }
[zoom >= 19] { bridgeglow/line-width: 7; }
[zoom >= 20] { bridgeglow/line-width: 16; }
[zoom >= 21] { bridgeglow/line-width: 30; }
[zoom >= 22] { bridgeglow/line-width: 58; }
[zoom >= 23] { bridgeglow/line-width: 118; }
[zoom >= 24] { bridgeglow/line-width: 236; }
}
}
[bridge = 'levee'] {
[zoom >= 14] {
bridgecasing/line-color: @levee-casing;
bridgecasing/line-join: round;
bridgecasing/line-width: 3;
[zoom >= 15] { bridgecasing/line-width: 4; }
[zoom >= 17] { bridgecasing/line-width: 5; }
[zoom >= 18] { bridgecasing/line-width: 6; }
[zoom >= 19] { bridgecasing/line-width: 9; }
[zoom >= 20] { bridgecasing/line-width: 22; }
[zoom >= 21] { bridgecasing/line-width: 45; }
[zoom >= 22] { bridgecasing/line-width: 89; }
[zoom >= 23] { bridgecasing/line-width: 177; }
[zoom >= 24] { bridgecasing/line-width: 349; }
bridgeglow/line-color: white;
bridgeglow/line-join: round;
bridgeglow/line-width: 2;
[zoom >= 15] { bridgeglow/line-width: 3; }
[zoom >= 17] { bridgeglow/line-width: 4; }
[zoom >= 18] { bridgeglow/line-width: 4; }
[zoom >= 19] { bridgeglow/line-width: 7; }
[zoom >= 20] { bridgeglow/line-width: 16; }
[zoom >= 21] { bridgeglow/line-width: 30; }
[zoom >= 22] { bridgeglow/line-width: 58; }
[zoom >= 23] { bridgeglow/line-width: 118; }
[zoom >= 24] { bridgeglow/line-width: 236; }
}
}
line-width: 1;
line-dasharray: 4,8;
line-color: @water-color;
[zoom >= 15] { line-width: 2; }
[zoom >= 17]{ line-width: 3; }
[zoom >= 18]{ line-width: 4; }
[zoom >= 19]{ line-width: 5; }
[zoom >= 20]{ line-width: 11; }
[zoom >= 21]{ line-width: 20; }
[zoom >= 22]{ line-width: 39; }
[zoom >= 23]{ line-width: 79; }
[zoom >= 24]{ line-width: 159; }
[int_tunnel = 'yes'] {
line-width: 2.5;
[zoom >= 15]{ line-width: 3.5; }
[zoom >= 17]{ line-width: 4.5; }
[zoom >= 18]{ line-width: 6; }
[zoom >= 19]{ line-width: 8; }
[zoom >= 20]{ line-width: 19; }
[zoom >= 21]{ line-width: 35; }
[zoom >= 22]{ line-width: 67; }
[zoom >= 23]{ line-width: 137; }
[zoom >= 24]{ line-width: 275; }
line-dasharray: 4,2;
a/line-width: 1;
[zoom >= 15]{ a/line-width: 2; }
[zoom >= 17]{ a/line-width: 3; }
[zoom >= 18]{ a/line-width: 4; }
[zoom >= 19]{ a/line-width: 5; }
[zoom >= 20]{ a/line-width: 11; }
[zoom >= 21]{ a/line-width: 20; }
[zoom >= 22]{ a/line-width: 39; }
[zoom >= 23]{ a/line-width: 79; }
[zoom >= 24]{ a/line-width: 159; }
a/line-color: #f3f7f7;
}
}
}

[waterway = 'derelict_canal'][zoom >= 12] {
line-width: 1.5;
line-color: #b5e4d0;
Expand Down Expand Up @@ -542,9 +766,13 @@
[zoom >= 20] { text-size: 18; }
}

[waterway = 'stream'],
[waterway = 'intriver'],
[waterway = 'intstream'] {
[waterway = 'stream'],
[waterway = 'intstream'],
[waterway = 'drain'],
[waterway = 'intdrain'],
[waterway = 'ditch'],
[waterway = 'intditch'] {
[zoom >= 15] {
text-name: "[name]";
text-size: 10;
Expand All @@ -558,20 +786,6 @@
}
}

[waterway = 'drain'],
[waterway = 'ditch'] {
[zoom >= 15] {
text-name: "[name]";
text-face-name: @oblique-fonts;
text-size: 10;
[zoom >= 20] { text-size: 18; }
text-fill: @water-text;
text-spacing: 600;
text-placement: line;
text-halo-radius: 1;
}
}

[waterway = 'canal'][zoom >= 14] {
text-name: "[name]";
text-size: 10;
Expand Down

0 comments on commit ccc11ca

Please sign in to comment.