From 8ee9f4d0ad10b02992726a6297cb9ab2ce0c6860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at> Date: Tue, 1 Oct 2024 17:50:17 +0200 Subject: [PATCH] railway-rails: new category for rails only --- index.json | 3 + railway-rails.yaml | 160 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 railway-rails.yaml diff --git a/index.json b/index.json index 2d2f924..c9d4ee2 100644 --- a/index.json +++ b/index.json @@ -459,6 +459,9 @@ "tr": "Demiryolu" }, "subCategories": [ + { + "id": "railway-rails" + }, { "id": "railway-infrastructure" }, diff --git a/railway-rails.yaml b/railway-rails.yaml new file mode 100644 index 0000000..d3bccd5 --- /dev/null +++ b/railway-rails.yaml @@ -0,0 +1,160 @@ +type: overpass +query: + 11: way[railway~"^(rail|narrow_gauge|subway|light_rail)$"][usage~'^(main|branch)$']; + 13: way[railway~"^(rail|narrow_gauge|subway|light_rail|tram|abandoned|disused|razed)$"]; +feature: + pre: |- + {% set width = 2 %} + {% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %} + {% set width = 1 %} + {% elseif tags.railway in ['rail', 'narrow_gauge', 'abandoned', 'disused', 'razed'] %} + {% if tags.usage in ['main', 'branch'] %} + {% set width = 3 %} + {% else %} + {% set width = 2 %} + {% endif %} + {% endif %} + title: |- + {% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %} + {{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator')) }} + + {% if attribute(tags, 'tunnel:name') %}- {{ localizedTag(tags, 'tunnel:name') }}{% endif %} + {% if attribute(tags, 'bridge:name') %}- {{ localizedTag(tags, 'bridge:name') }}{% endif %} + description: |- + {{ tagTrans('railway', tags.railway) -}} + {%- if tags.usage %} + , {{ tagTrans('railway=rail usage', tags.usage) }} + {% endif -%} + {%- if tags.service %} + , {{ tagTrans('railway=rail service', tags.service) }} + {% endif -%} + body: |- + {% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %} + {% if tags.usage %}{{ keyTrans('railway=rail usage') }}: {{ tagTrans('railway=rail usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %} + {% if tags.service %}{{ keyTrans('railway=rail service') }}: {{ tagTrans('railway=rail service', tags.service ) }}<br/>{% endif %} + {{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/> + {% if tags.electrified == 'no' %} + {{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }} + {% elseif tags.electrified %} + {{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }} + {% endif %}<br/> + markerSign: |- + {% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X + {% endif %} + markerSymbol: false + listMarkerSymbol: line + styles: |- + {% if tags.bridge and tags.bridge != 'no' %}casing_bridge,{% endif %} + {% if const.color[tags.railway] %}casing,casing_layer,{% endif %} + {% if tags.railway in ['abandoned', 'disused', 'razed'] %}disused,{% endif %} + {% if tags.railway == 'narrow_gauge' %}default,narrow + {% else %}default + {% endif %} + style: + width: |- + {{ width }} + zIndex: |- + {{ tags.layer|default(0) + 10 }} + color: |- + {% set color = tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' ? const.color['rail/' ~ tags.usage]|default(const.color.rail) : const.color[tags.railway]|default(const.color.default) %} + + {% if tags.tunnel and tags.tunnel != 'no' %} + {{ colorInterpolate([ color, '#ffffff' ], 0.3) }} + {% else %} + {{ color }} + {% endif %} + opacity: 1 + dashArray: |- + {% if tags.railway == 'disused' %}1,5 + {% elseif tags.railway == 'abandoned' %}1,7 + {% elseif tags.railway == 'razed' %}1,9 + {% endif %} + fill: false + + style:disused: + width: |- + {{ width }} + zIndex: |- + {{ tags.layer|default(0) + 9.995 }} + color: white + opacity: 1 + fill: false + + style:casing: + color: '#ffffff' + pane: casing + width: |- + {{ width + 2 }} + + style:casing_layer: + color: '#ffffff' + zIndex: |- + {{ tags.layer|default(0) + 9.99 }} + width: |- + {{ width + 2 }} + lineCap: butt + + style:casing_bridge: + color: '#000000' + zIndex: |- + {{ tags.layer|default(0) + 9.98 }} + width: |- + {{ width + 4 }} + lineCap: butt + + style:narrow: + width: |- + {{ width + 2 }} + color: |- + {% if tags.railway == 'rail' or tags.railway == 'narrow_gauge' or tags.railway == 'disused' %} + {% if tags.usage == 'main' %}#ff8100 + {% elseif tags.usage == 'branch' %}#daca00 + {% else %}#000000 + {% endif %} + {% elseif tags.railway == 'subway' %}#0000ff + {% elseif tags.railway == 'tram' %}#ff00ff + {% elseif tags.railway == 'light_rail' %}#00BD14 + {% elseif tags.railway == 'platform' %}#3f3f3f + {% else %}#000000 + {% endif %} + lineCap: butt + dashArray: '2,4' +info: |- + <table> + <tr> + <td>{{ markerLine(evaluate({ "railway": "rail", "usage": "main" }))|raw }}</td> + <td>{{ tagTrans('railway', 'rail') }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', 'main') }}</td> + </tr> + <tr> + <td>{{ markerLine(evaluate({ "railway": "rail" }))|raw }}</td> + <td>{{ tagTrans('railway', 'rail') }}</td> + </tr> + <tr> + <td>{{ markerLine(evaluate({ "railway": "narrow_gauge" }))|raw }}</td> + <td>{{ tagTrans('railway', 'narrow_gauge') }}</td> + </tr> + <tr> + <td>{{ markerLine(evaluate({ "railway": "light_rail" }))|raw }}</td> + <td>{{ tagTrans('railway', 'light_rail') }}</td> + </tr> + <tr> + <td>{{ markerLine(evaluate({ "railway": "subway" }))|raw }}</td> + <td>{{ tagTrans('railway', 'subway') }}</td> + </tr> + {% if map.zoom >= 14 %} + <tr> + <td>{{ markerLine(evaluate({ "railway": "tram" }))|raw }}</td> + <td>{{ tagTrans('railway', 'tram') }}</td> + </tr> + {% endif %} + </table> +const: + color: + rail: '#000000' + rail/main: '#ff8100' + rail/branch: '#daca00' + subway: '#0000ff' + tram: '#ff00ff' + light_rail: '#00BD14' + platform: '#3f3f3f' + default: '#000000'