type: overpass
query:
11: way[railway~"^(rail|narrow_gauge|subway|light_rail)$"][usage~'^(main|branch)$'];
15: way[railway~"^(rail|narrow_gauge|funicular|monorail|narrow_gauge|subway|light_rail|tram|construction|proposed|abandoned|disused|razed)$"];
feature:
pre: |-
{% set type = tags.railway %}
{% set lifecyle = 'active' %}
{% if tags.railway in ['abandoned', 'construction', 'proposed', 'disused', 'razed'] %}
{% set lifecyle = tags.railway %}
{% set type = attribute(tags, tags.railway)|default(attribute(tags, tags.railway ~ ':railway')) %}
{% endif %}
{% set color = const.types[type ~ '/' ~ tags.usage].color|default(const.types[type].color)|default(const.types.default.color) %}
{% if tags.tunnel and tags.tunnel != 'no' %}
{% set color = colorInterpolate([ color, '#ffffff' ], 0.3) %}
{% endif %}
{% 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', type) }}
{% if lifecyle != 'active' %}
({{ tagTrans('railway', lifecyle) }})
{%- endif -%}
{%- 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') }}
{% endif %}
{% if tags.usage %}{{ keyTrans('railway=rail usage') }}: {{ tagTrans('railway=rail usage', tags.usage)|default(trans('unknown')) }}
{% endif %}
{% if tags.service %}{{ keyTrans('railway=rail service') }}: {{ tagTrans('railway=rail service', tags.service ) }}
{% endif %}
{{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}
{% 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 %}
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 %}
casing,casing_layer,
{% if lifecyle != 'active' %}background,{% endif %}
{% if tags.railway == 'narrow_gauge' %}default,narrow
{% else %}default
{% endif %}
style:
width: |-
{{ width }}
zIndex: |-
{{ tags.layer|default(0) + 10 }}
color: |-
{{ color }}
opacity: 1
lineCap: |-
{{ lifecyle == 'active' ? 'round' : 'butt' }}
dashArray: |-
{{ const.lifecyle[lifecyle].dashArray }}
fill: false
style:background:
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: |-
{{ color }}
lineCap: butt
dashArray: '2,4'
info: |-
{{ markerLine(evaluate({ 'railway': railway_usage[0], 'usage': railway_usage[1] }))|raw }} | {{ tagTrans('railway', railway_usage[0]) }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', railway_usage[1]) }} |
{{ markerLine(evaluate({ "railway": k }))|raw }} | {{ tagTrans('railway', k) }} |
{{ markerLine(evaluate({ 'railway': 'rail', 'tunnel': 'yes'}))|raw }} | {{ keyTrans('tunnel') }} |
{{ markerLine(evaluate({ 'railway': 'rail', 'bridge': 'yes'}))|raw }} | {{ keyTrans('bridge') }} |
{{ markerLine(evaluate({ 'railway': k, (k): 'rail'}))|raw }} | {{ tagTrans('railway', k) }} |