diff --git a/cycle_routes.json b/cycle_routes.json
deleted file mode 100644
index 2709972..0000000
--- a/cycle_routes.json
+++ /dev/null
@@ -1,204 +0,0 @@
-{
- "type": "overpass",
- "name": {
- "ca": "Rutes Ciclistes",
- "cs": "Cyklotrasy",
- "de": "Radrouten",
- "en": "Cycle Routes",
- "es": "Rutas ciclistas",
- "fr": "Itinéraires vélo",
- "gl": "Rotas ciclistas",
- "hu": "Kerékpáros útvonalak",
- "it": "Percorsi ciclabili",
- "ja": "自転車ルート",
- "nb": "Sykkelruter",
- "nl": "Fietsroutes",
- "oc": "Itineraris ciclistas",
- "pl": "Trasy rowerowe",
- "pt": "Ciclovias",
- "pt-br": "Ciclorrotas",
- "ro": "Trasee ciclism",
- "ru": "Веломаршруты",
- "sr": "Трасе за бицикле",
- "tr": "Bisiklet Rotaları"
- },
- "query": {
- "6": "relation[type=route][route~\"^(|.*;)bicycle(|;.*)$\"][network~'^(|.*;)(icn)(|;.*)$']",
- "9": "relation[type=route][route~\"^(|.*;)bicycle(|;.*)$\"][network~'^(|.*;)(icn|ncn)(|;.*)$']",
- "12": "relation[type=route][route~\"^(|.*;)bicycle(|;.*)$\"][network~'^(|.*;)(icn|ncn|rcn)(|;.*)$']",
- "15": "relation[type=route][route~\"^(|.*;)bicycle(|;.*)$\"]"
- },
- "members": true,
- "feature": {
- "pre": [
- "{% set network = tags.network %}",
- "{% for n in tags.network|split(';') %}",
- "{% if n|matches('cn$') %}{% set network = n %}{% endif %}",
- "{% endfor %}"
- ],
- "title": "{% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% endif %}",
- "description": "{{ tagTrans('network', network) }}",
- "markerSymbol": "",
- "listMarkerSymbol": "{{ markerLine({ 'width': 4, 'color': const[network].color|default(const[''].color) })|raw }}",
- "priority": "{{ const[network].priority|default(4) }}",
- "styles": "",
- "style:hover": {
- "width": "0"
- },
- "style:selected": {
- "width": "0"
- }
- },
- "memberFeature": {
- "pre": [
- "{% set priority = 4 %}",
- "{% set network = '' %}",
- "{% set refs = [] %}",
- "{% set dirForward = false %}",
- "{% set dirBackward = false %}",
- "{% set hover = false %}",
- "{% set selected = false %}",
- "",
- "{% for master in masters %}",
- " {% set masterNetwork = '' %}",
- " {% for n in master.tags.network|split(';') %}",
- " {% if n|matches('cn$') %}{% set masterNetwork = n %}{% endif %}",
- " {% endfor %}",
- " {% set _p = const[masterNetwork].priority|default(4) %}",
- " {% if _p < priority %}",
- " {% set priority = _p %}",
- " {% set network = masterNetwork %}",
- " {% endif %}",
- " {% if master.tags.ref %}",
- " {% set refs = refs|merge([ master.tags.ref ]) %}",
- " {% endif %}",
- " {% if master.role == 'forward' %}{% set dirForward = true %}",
- " {% elseif master.role == 'backward' %}{% set dirBackward = true %}",
- " {% else %}{% set dirForward = true %}{% set dirBackward = true %}",
- " {% endif %}",
- " {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}",
- " {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}",
- "{% endfor %}"
- ],
- "title": "",
- "body": [
- "
Routes
",
- "",
- "{% for master in masters %}",
- " {% set masterNetwork = '' %}",
- " {% for n in master.tags.network|split(';') %}",
- " {% if n|matches('cn$') %}{% set masterNetwork = n %}{% endif %}",
- " {% endfor %}",
- " - ",
- "
",
- "
{{ markerLine({ width: 4, color: const[masterNetwork].color|default(const[''].color) })|raw }}
",
- "
",
- " ",
- "
{{ tagTrans('network', masterNetwork) }}
",
- "
{% if master.tags.ref and master.tags.name %}{{ master.tags.ref }} - {{ master.tags.name|default(master.tags.ref) }}{% elseif master.tags.ref %}{{ master.tags.ref }}{% elseif master.tags.name %}{{ master.tags.name }}{% else %}{{ trans('unnamed') }}{% endif %}
",
- "
",
- " ",
- "{% endfor %}",
- "
"
- ],
- "listExclude": "1",
- "styles": "default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}",
- "style": {
- "width": "4",
- "color": "{{ const[network].color }}",
- "opacity": "1",
- "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}",
- "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}",
- "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}",
- "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}",
- "text": "{{ refs|join(' · ') }} ",
- "textRepeat": "1",
- "textOffset": "12",
- "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}",
- "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}",
- "pattern-repeat": "35",
- "pattern-polygon": "true",
- "pattern-pixelSize": "9",
- "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}",
- "pattern-path-width": "0",
- "pattern-path-color": "{{ const[network].color }}",
- "pattern-path-fillOpacity": "1",
- "textFontWeight": "bold"
- },
- "style:hover": {
- "pane": "hover",
- "width": "4",
- "color": "black",
- "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}",
- "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}",
- "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}",
- "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}",
- "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}",
- "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}",
- "pattern-repeat": "35",
- "pattern-polygon": "true",
- "pattern-pixelSize": "9",
- "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}",
- "pattern-path-width": "0",
- "pattern-path-color": "black",
- "pattern-path-fillOpacity": "1"
- },
- "style:selected": {
- "pane": "selected",
- "width": "4",
- "color": "#3f3f3f",
- "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}",
- "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}",
- "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}",
- "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}",
- "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}",
- "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}",
- "pattern-repeat": "35",
- "pattern-polygon": "true",
- "pattern-pixelSize": "9",
- "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}",
- "pattern-path-width": "0",
- "pattern-path-color": "#3f3f3f",
- "pattern-path-fillOpacity": "1"
- }
- },
- "const": {
- "icn": {
- "color": "#ff0000",
- "priority": 0,
- "zoom": 6
- },
- "ncn": {
- "color": "#ff00ba",
- "priority": 1,
- "zoom": 9
- },
- "rcn": {
- "color": "#ba00ff",
- "priority": 2,
- "zoom": 12
- },
- "lcn": {
- "color": "#0000ff",
- "priority": 3,
- "zoom": 15
- },
- "": {
- "color": "#007fff",
- "priority": 4,
- "zoom": 15
- }
- },
- "info": [
- "",
- "{% for value, data in const %}",
- "{% if data.zoom <= map.zoom %}",
- " ",
- " | {{ markerLine({ 'width': 4, color: data.color })|raw }} | ",
- " {% if value %}{{ tagTrans('network', value) }}{% else %}{{ trans('unknown') }}{% endif %} | ",
- "
",
- "{% endif %}",
- "{% endfor %}",
- "
"
- ]
-}
diff --git a/cycle_routes.yaml b/cycle_routes.yaml
new file mode 100644
index 0000000..6d01093
--- /dev/null
+++ b/cycle_routes.yaml
@@ -0,0 +1,210 @@
+name:
+ ca: Rutes Ciclistes
+ cs: Cyklotrasy
+ de: Radrouten
+ en: Cycle Routes
+ es: Rutas ciclistas
+ fr: Itinéraires vélo
+ gl: Rotas ciclistas
+ hu: Kerékpáros útvonalak
+ it: Percorsi ciclabili
+ ja: 自転車ルート
+ nb: Sykkelruter
+ nl: Fietsroutes
+ oc: Itineraris ciclistas
+ pl: Trasy rowerowe
+ pt: Ciclovias
+ pt-br: Ciclorrotas
+ ro: Trasee ciclism
+ ru: Веломаршруты
+ sr: Трасе за бицикле
+ tr: Bisiklet Rotaları
+query:
+ 6: relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn)(|;.*)$']
+ 9: relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn|ncn)(|;.*)$']
+ 12: relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn|ncn|rcn)(|;.*)$']
+ 15: relation[type=route][route~"^(|.*;)bicycle(|;.*)$"]
+members: true
+feature:
+ pre: |-
+ {% set network = tags.network %}
+ {% for n in tags.network|split(';') %}
+ {% if n|matches('cn$') %}{% set network = n %}{% endif %}
+ {% endfor %}
+ title: |-
+ {% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% endif %}
+ description: |-
+ {{ tagTrans("network", network) }}
+ markerSymbol: ''
+ listMarkerSymbol: |-
+ {{ markerLine({ "width": 4, "color": const[network].color|default(const[""].color) })|raw }}
+ priority: |-
+ {{ const[network].priority|default(4) }}
+ styles: ''
+ style:hover:
+ width: 0
+ style:selected:
+ width: 0
+memberFeature:
+ pre: |-
+ {% set priority = 4 %}
+ {% set network = '' %}
+ {% set refs = [] %}
+ {% set dirForward = false %}
+ {% set dirBackward = false %}
+ {% set hover = false %}
+ {% set selected = false %}
+
+ {% for master in masters %}
+ {% set masterNetwork = '' %}
+ {% for n in master.tags.network|split(';') %}
+ {% if n|matches('cn$') %}{% set masterNetwork = n %}{% endif %}
+ {% endfor %}
+ {% set _p = const[masterNetwork].priority|default(4) %}
+ {% if _p < priority %}
+ {% set priority = _p %}
+ {% set network = masterNetwork %}
+ {% endif %}
+ {% if master.tags.ref %}
+ {% set refs = refs|merge([ master.tags.ref ]) %}
+ {% endif %}
+ {% if master.role == 'forward' %}{% set dirForward = true %}
+ {% elseif master.role == 'backward' %}{% set dirBackward = true %}
+ {% else %}{% set dirForward = true %}{% set dirBackward = true %}
+ {% endif %}
+ {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}
+ {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}
+ {% endfor %}
+ title: ''
+ body: |-
+ Routes
+
+ listExclude: true
+ styles: |-
+ default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}
+ style:
+ width: 4
+ color: |-
+ {{ const[network].color }}
+ opacity: 1
+ lineCap: |-
+ {% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}
+ dashArray: |-
+ {% if not dirForward or not dirBackward %}27,8{% endif %}
+ dashOffset: |-
+ {% if dirBackward %}28{% else %}0{% endif %}
+ noClip: |-
+ {% if not dirForward or not dirBackward %}true{% else %}false{% endif %}
+ text: '{{ refs|join(" · ") }} '
+ textRepeat: true
+ textOffset: 12
+ pattern: |-
+ {% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}
+ pattern-offset: |-
+ {% if dirBackward %}4{% else %}30.5{% endif %}
+ pattern-repeat: 35
+ pattern-polygon: true
+ pattern-pixelSize: 9
+ pattern-angleCorrection: |-
+ {% if dirBackward %}180{% else %}0{% endif %}
+ pattern-path-width: 0
+ pattern-path-color: |-
+ {{ const[network].color }}
+ pattern-path-fillOpacity: 1
+ textFontWeight: bold
+ style:hover:
+ pane: hover
+ width: 4
+ color: black
+ lineCap: |-
+ {% if hover == "forward" or hover == "backward" %}butt{% else %}round{% endif %}
+ dashArray: |-
+ {% if hover == "forward" or hover == "backward" %}27,8{% endif %}
+ dashOffset: |-
+ {% if hover == "backward" %}28{% else %}0{% endif %}
+ noClip: |-
+ {% if hover == "forward" or hover == "backward" %}true{% else %}false{% endif %}
+ pattern: |-
+ {% if hover == "forward" or hover == "backward" %}arrowHead{% endif %}
+ pattern-offset: |-
+ {% if hover == "backward" %}4{% else %}30.5{% endif %}
+ pattern-repeat: 35
+ pattern-polygon: true
+ pattern-pixelSize: 9
+ pattern-angleCorrection: |-
+ {% if hover == "backward" %}180{% else %}0{% endif %}
+ pattern-path-width: 0
+ pattern-path-color: black
+ pattern-path-fillOpacity: 1
+ style:selected:
+ pane: selected
+ width: 4
+ color: '#3f3f3f'
+ lineCap: |-
+ {% if selected == "forward" or selected == "backward" %}butt{% else %}round{% endif %}
+ dashArray: |-
+ {% if selected == "forward" or selected == "backward" %}27,8{% endif %}
+ dashOffset: |-
+ {% if selected == "backward" %}28{% else %}0{% endif %}
+ noClip: |-
+ {% if selected == "forward" or selected == "backward" %}true{% else %}false{% endif %}
+ pattern: |-
+ {% if selected == "forward" or selected == "backward" %}arrowHead{% endif %}
+ pattern-offset: |-
+ {% if selected == "backward" %}4{% else %}30.5{% endif %}
+ pattern-repeat: 35
+ pattern-polygon: true
+ pattern-pixelSize: 9
+ pattern-angleCorrection: |-
+ {% if selected == "backward" %}180{% else %}0{% endif %}
+ pattern-path-width: 0
+ pattern-path-color: '#3f3f3f'
+ pattern-path-fillOpacity: 1
+const:
+ icn:
+ color: '#ff0000'
+ priority: 0
+ zoom: 6
+ ncn:
+ color: '#ff00ba'
+ priority: 1
+ zoom: 9
+ rcn:
+ color: '#ba00ff'
+ priority: 2
+ zoom: 12
+ lcn:
+ color: '#0000ff'
+ priority: 3
+ zoom: 15
+ '':
+ color: '#007fff'
+ priority: 4
+ zoom: 15
+info: |-
+
+ {% for value, data in const %}
+ {% if data.zoom <= map.zoom %}
+
+ | {{ markerLine({ 'width': 4, color: data.color })|raw }} |
+ {% if value %}{{ tagTrans('network', value) }}{% else %}{{ trans('unknown') }}{% endif %} |
+
+ {% endif %}
+ {% endfor %}
+