From 2acd6c910a41abf381c945b4f4d0438d36eeebd8 Mon Sep 17 00:00:00 2001 From: Nathan Hartley Date: Tue, 10 Jan 2023 03:19:42 -0500 Subject: [PATCH 1/4] Added paddling categories. --- paddling.yaml | 5 ++ paddling_amenities.yaml | 99 ++++++++++++++++++++++++++++++++++++++ paddling_hazards.yaml | 75 +++++++++++++++++++++++++++++ paddling_routes.yaml | 102 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 281 insertions(+) create mode 100644 paddling.yaml create mode 100644 paddling_amenities.yaml create mode 100644 paddling_hazards.yaml create mode 100644 paddling_routes.yaml diff --git a/paddling.yaml b/paddling.yaml new file mode 100644 index 0000000..27db952 --- /dev/null +++ b/paddling.yaml @@ -0,0 +1,5 @@ +type: index +subCategories: + - id: paddling_amenities + - id: paddling_hazards + - id: paddling_routes diff --git a/paddling_amenities.yaml b/paddling_amenities.yaml new file mode 100644 index 0000000..2c3ef2a --- /dev/null +++ b/paddling_amenities.yaml @@ -0,0 +1,99 @@ +type: overpass +name: + en: Paddling Amenities +query: + '14': |- + ( + node["canoe"="put_in"]; + node["leisure"="slipway"]; + way["canoe"="portage"]; + nwr[shop~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; + nwr[rental~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; + nwr["canoe_rental"="yes"]; + nwr["kayak_rental"="yes"]; + nwr["standup_paddleboard_rental"="yes"]; + nwr["dinghy_rental"="yes"]; + nwr["pedalboat_rental"="yes"]; + ) +feature: + pre: |- + {% if tags.canoe %} + {% set key = 'canoe' %} + {% set value = tags.canoe %} + {% elseif tags.leisure %} + {% set key = 'leisure' %} + {% set value = tags.leisure %} + {% elseif tags.shop %} + {% set key = 'shop' %} + {% set value = tags.shop %} + {% elseif tags.rental or tags.canoe_rental or tags.kayak_rental or tags.standup_paddleboard_rental or tags.dingy_rental or tags.pedalboat_rental %} + {% set key = 'shop' %} + {% set value = 'rental' %} + {% endif %} + + {% set constIndex = (key ~ "=" ~ value) %} + {% set item = const[constIndex] %} + + title: | + {{ localizedTag(tags, 'name') }} + {% if attribute(tags, 'ref') %} + ( {{ localizedTag(tags, 'ref') }} ) + {% endif %} + description: | + {{ tagTrans(key, value) }} + body: |- + {% if constIndex in ['canoe=put_in', 'leisure=slipway','canoe=portage'] %} +
+
{{ keyTrans('Description') }}
+
{{ localizedTag(tags, 'description') }}
+ +
{{ keyTrans('Surface') }}
+
{{ attribute(tags, 'surface') ? tagTrans('surface', attribute(tags, 'surface')) : '' }}
+ +
{{ keyTrans('Operator') }}
+
{{ attribute(tags, 'operator') ? tagTrans('operator', attribute(tags, 'operator')) : '' }}
+ +
{{ keyTrans('Access') }}
+
{{ attribute(tags, 'access') ? tagTrans('access', attribute(tags, 'access')) : '' }}
+ +
{{ keyTrans('Fee') }}
+
{{ attribute(tags, 'fee') ? tagTrans('fee', attribute(tags, 'fee')) : '' }}
+ +
{{ keyTrans('Wheelchair') }}
+
{{ attribute(tags, 'wheelchair') ? tagTrans('wheelchair', attribute(tags, 'wheelchair')) : '' }}
+ +
{{ trans('Photos') }}
+
+
    + {% if attribute(tags, 'mapillary') %} +
  • Mapillary
  • + {% endif %} +
+
+
+ {% endif %} + markerSign: '{{ item[''sign''] }}' + + priority: |- + {% if item is defined %} + {{ item['priority'] }} + {% else %} + 10 + {% endif %} + +const: + canoe=put_in: + sign: πŸ›Ά + priority: 0 + leisure=slipway: + sign: 🚣🏻 + priority: 1 + canoe=portage: + sign: 🚢🏻 + priority: 2 + shop=boat: + sign: πŸ›’ + priority: 3 + shop=rental: + sign: πŸ›’ + priority: 3 \ No newline at end of file diff --git a/paddling_hazards.yaml b/paddling_hazards.yaml new file mode 100644 index 0000000..2b21c73 --- /dev/null +++ b/paddling_hazards.yaml @@ -0,0 +1,75 @@ +type: overpass +name: + en: Paddling Hazards +query: + '13': |- + ( + nwr[waterway~"^(dam|weir|waterfall|rapids|lock|lock_gate|sluice_gate)$"]; + ) +feature: + pre: |- + {% if tags.waterway %} + {% set key = 'waterway' %} + {% set value = tags.waterway %} + {% endif %} + + {% set constIndex = (key ~ "=" ~ value) %} + {% set item = const[constIndex] %} + + title: | + {{ item['sign'] }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} + description: | + {{ tagTrans(key, value) }} + body: |- +
+
{{ keyTrans('Description') }}
+
{{ localizedTag(tags, 'description') }}
+ + {% if attribute(tags, 'operator') %} +
{{ keyTrans('Operator') }}
+
{{ attribute(tags, 'operator') ? tagTrans('operator', attribute(tags, 'operator')) : '' }}
+ {% endif %} + +
{{ trans('Photos') }}
+
+
    + {% if attribute(tags, 'mapillary') %} +
  • Mapillary
  • + {% endif %} +
+
+ +
+ + markerSign: '⚠️' + + priority: |- + {% if const[constIndex] is defined %} + {{ const[constIndex]['priority'] }} + {% else %} + 10 + {% endif %} + +const: + waterway=dam: + sign: '🦫' + priority: 0 + waterway=weir: + sign: '🦫' + priority: 0 + waterway=waterfall: + sign: '🌊' + priority: 0 + waterway=rapids: + sign: '🌊' + priority: 0 + waterway=lock: + sign: 'πŸšͺ' + priority: 1 + waterway=lock_gate: + sign: 'πŸšͺ' + priority: 1 + waterway=sluice_gate: + sign: '🦫' + priority: 0 + diff --git a/paddling_routes.yaml b/paddling_routes.yaml new file mode 100644 index 0000000..2d61e26 --- /dev/null +++ b/paddling_routes.yaml @@ -0,0 +1,102 @@ +type: overpass +name: + en: Paddling Routes +query: + '4': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn)(|;.*)$'] + '6': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn)(|;.*)$'] + '8': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn)(|;.*)$'] + '10': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn|lpn)(|;.*)$'] + '13': (relation[type=route][route~"^(|.*;)canoe(|;.*)$"] +members: true +feature: + pre: |- + {% set network = tags.network %} + {% for n in tags.network|split(';') %} + {% if n|matches('pn$') %}{% set network = n %}{% endif %} + {% endfor %} + priority: '{{ const[network].priority|default(4) }}' + description: '{% if network %}{{ tagTrans(''network'', network) }}{% endif %}' + listMarkerSymbol: '{{ markerLine({ ''width'': 4, ''color'': const[network|default('''')].color|default(const[''''].color) })|raw }}' + title: '{% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% endif %}' + styles: '' + markerSymbol: '' +memberFeature: + pre: |- + {% set priority = 4 %} + {% set network = '' %} + {% set refs = [] %} + + {% for master in masters %} + {% set masterNetwork = '' %} + {% for n in master.tags.network|split(';') %} + {% if n|matches('pn$') %}{% 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 %} + {% endfor %} + body: |- +

Routes

+ + listExclude: '1' + style: + color: '{{ const[network].color }}' + width: 4 + opacity: 1 + text: '{{ refs|join('' Β· '') }} ' + textRepeat: '1' + textOffset: '12' + textFontWeight: bold +const: + ipn: + color: '#ff0000' + priority: 0 + zoom: 10 + npn: + color: '#ff00ba' + priority: 1 + zoom: 11 + rpn: + color: '#ba00ff' + priority: 2 + zoom: 12 + lpn: + color: '#0000ff' + priority: 3 + zoom: 14 + '': + color: '#007fff' + priority: 4 + zoom: 14 +info: |- + + {% for value, data in const %} + {% if data.zoom <= map.zoom %} + + + + + {% endif %} + {% endfor %} +
{{ markerLine({ 'width': 4, color: data.color })|raw }}{% if value %}{{ tagTrans('network', value) }}{% else %}{{ trans('unknown') }}{% endif %}
From 79695347df3121d04794df080bb3b424c267be62 Mon Sep 17 00:00:00 2001 From: Nathan Hartley Date: Tue, 10 Jan 2023 18:24:49 -0500 Subject: [PATCH 2/4] Improved marker contrast and removed markers for portage way segments in the water.. --- paddling_amenities.yaml | 122 ++++++++++++++++------------------------ paddling_hazards.yaml | 8 +-- 2 files changed, 53 insertions(+), 77 deletions(-) diff --git a/paddling_amenities.yaml b/paddling_amenities.yaml index 2c3ef2a..4e61569 100644 --- a/paddling_amenities.yaml +++ b/paddling_amenities.yaml @@ -1,99 +1,75 @@ type: overpass name: - en: Paddling Amenities + en: Paddling Hazards query: - '14': |- + '13': |- ( - node["canoe"="put_in"]; - node["leisure"="slipway"]; - way["canoe"="portage"]; - nwr[shop~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; - nwr[rental~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; - nwr["canoe_rental"="yes"]; - nwr["kayak_rental"="yes"]; - nwr["standup_paddleboard_rental"="yes"]; - nwr["dinghy_rental"="yes"]; - nwr["pedalboat_rental"="yes"]; + nwr[waterway~"^(dam|weir|waterfall|rapids|lock|lock_gate|sluice_gate)$"]; ) feature: pre: |- - {% if tags.canoe %} - {% set key = 'canoe' %} - {% set value = tags.canoe %} - {% elseif tags.leisure %} - {% set key = 'leisure' %} - {% set value = tags.leisure %} - {% elseif tags.shop %} - {% set key = 'shop' %} - {% set value = tags.shop %} - {% elseif tags.rental or tags.canoe_rental or tags.kayak_rental or tags.standup_paddleboard_rental or tags.dingy_rental or tags.pedalboat_rental %} - {% set key = 'shop' %} - {% set value = 'rental' %} + {% if tags.waterway %} + {% set key = 'waterway' %} + {% set value = tags.waterway %} {% endif %} {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} - title: | - {{ localizedTag(tags, 'name') }} - {% if attribute(tags, 'ref') %} - ( {{ localizedTag(tags, 'ref') }} ) - {% endif %} + {{ item['sign'] }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} description: | {{ tagTrans(key, value) }} body: |- - {% if constIndex in ['canoe=put_in', 'leisure=slipway','canoe=portage'] %} -
-
{{ keyTrans('Description') }}
-
{{ localizedTag(tags, 'description') }}
- -
{{ keyTrans('Surface') }}
-
{{ attribute(tags, 'surface') ? tagTrans('surface', attribute(tags, 'surface')) : '' }}
- +
+
{{ keyTrans('Description') }}
+
{{ localizedTag(tags, 'description') }}
+ + {% if attribute(tags, 'operator') %}
{{ keyTrans('Operator') }}
{{ attribute(tags, 'operator') ? tagTrans('operator', attribute(tags, 'operator')) : '' }}
+ {% endif %} -
{{ keyTrans('Access') }}
-
{{ attribute(tags, 'access') ? tagTrans('access', attribute(tags, 'access')) : '' }}
- -
{{ keyTrans('Fee') }}
-
{{ attribute(tags, 'fee') ? tagTrans('fee', attribute(tags, 'fee')) : '' }}
- -
{{ keyTrans('Wheelchair') }}
-
{{ attribute(tags, 'wheelchair') ? tagTrans('wheelchair', attribute(tags, 'wheelchair')) : '' }}
- -
{{ trans('Photos') }}
-
-
    - {% if attribute(tags, 'mapillary') %} -
  • Mapillary
  • - {% endif %} -
-
-
- {% endif %} - markerSign: '{{ item[''sign''] }}' +
{{ trans('Photos') }}
+
+
    + {% if attribute(tags, 'mapillary') %} +
  • Mapillary
  • + {% endif %} +
+
+
+ markerSign: '⚠️' + markerSymbol: | + {{ markerPointer({ fillColor: '#FFFFFF' }) }} + listMarkerSymbol: | + {{ markerCircle({ fillColor: '#FFFFFF' }) }} priority: |- - {% if item is defined %} - {{ item['priority'] }} + {% if const[constIndex] is defined %} + {{ const[constIndex]['priority'] }} {% else %} 10 {% endif %} - const: - canoe=put_in: - sign: πŸ›Ά + waterway=dam: + sign: '🦫' + priority: 0 + waterway=weir: + sign: '🦫' + priority: 0 + waterway=waterfall: + sign: '🌊' + priority: 0 + waterway=rapids: + sign: '🌊' priority: 0 - leisure=slipway: - sign: 🚣🏻 + waterway=lock: + sign: 'πŸšͺ' priority: 1 - canoe=portage: - sign: 🚢🏻 - priority: 2 - shop=boat: - sign: πŸ›’ - priority: 3 - shop=rental: - sign: πŸ›’ - priority: 3 \ No newline at end of file + waterway=lock_gate: + sign: 'πŸšͺ' + priority: 1 + waterway=sluice_gate: + sign: '🦫' + priority: 0 + diff --git a/paddling_hazards.yaml b/paddling_hazards.yaml index 2b21c73..4e61569 100644 --- a/paddling_hazards.yaml +++ b/paddling_hazards.yaml @@ -15,7 +15,6 @@ feature: {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} - title: | {{ item['sign'] }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} description: | @@ -40,16 +39,17 @@ feature: - markerSign: '⚠️' - + markerSymbol: | + {{ markerPointer({ fillColor: '#FFFFFF' }) }} + listMarkerSymbol: | + {{ markerCircle({ fillColor: '#FFFFFF' }) }} priority: |- {% if const[constIndex] is defined %} {{ const[constIndex]['priority'] }} {% else %} 10 {% endif %} - const: waterway=dam: sign: '🦫' From 5dff12960b971d5fb45f517321f3134f2a8fbec8 Mon Sep 17 00:00:00 2001 From: Nathan Hartley Date: Tue, 10 Jan 2023 19:15:39 -0500 Subject: [PATCH 3/4] Switched to icons found in Font Awesome Free. --- paddling_amenities.yaml | 123 +++++++++++++++++++++++++--------------- paddling_hazards.yaml | 22 +++---- 2 files changed, 88 insertions(+), 57 deletions(-) diff --git a/paddling_amenities.yaml b/paddling_amenities.yaml index 4e61569..021bc92 100644 --- a/paddling_amenities.yaml +++ b/paddling_amenities.yaml @@ -1,75 +1,106 @@ type: overpass name: - en: Paddling Hazards + en: Paddling Amenities query: - '13': |- + '14': |- ( - nwr[waterway~"^(dam|weir|waterfall|rapids|lock|lock_gate|sluice_gate)$"]; + node["canoe"="put_in"]; + node["leisure"="slipway"]; + way["canoe"="portage"]; + nwr[shop~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; + nwr[rental~"^(boat)$"]["boat:type"~"^(.*;|)canoe|kayak|standup_paddleboard|dinghy|pedalboat(|;.*)$"]; + nwr["canoe_rental"="yes"]; + nwr["kayak_rental"="yes"]; + nwr["standup_paddleboard_rental"="yes"]; + nwr["dinghy_rental"="yes"]; + nwr["pedalboat_rental"="yes"]; ) feature: pre: |- - {% if tags.waterway %} + {% if tags.canoe == 'portage' and ( not attribute(tags, 'surface') or attribute(tags, 'surface') == 'water' ) %} {% set key = 'waterway' %} - {% set value = tags.waterway %} + {% set value = 'portage' %} + {% elseif tags.canoe %} + {% set key = 'canoe' %} + {% set value = tags.canoe %} + {% elseif tags.leisure %} + {% set key = 'leisure' %} + {% set value = tags.leisure %} + {% elseif tags.shop %} + {% set key = 'shop' %} + {% set value = 'shop' %} + {% elseif tags.rental or tags.canoe_rental or tags.kayak_rental or tags.standup_paddleboard_rental or tags.dingy_rental or tags.pedalboat_rental %} + {% set key = 'shop' %} + {% set value = 'rental' %} {% endif %} {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} title: | - {{ item['sign'] }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} + {{ localizedTag(tags, 'name') }} + {% if attribute(tags, 'ref') %} + ( {{ localizedTag(tags, 'ref') }} ) + {% endif %} description: | {{ tagTrans(key, value) }} body: |- -
-
{{ keyTrans('Description') }}
-
{{ localizedTag(tags, 'description') }}
- - {% if attribute(tags, 'operator') %} + {% if constIndex in ['canoe=put_in', 'leisure=slipway','canoe=portage'] %} +
+
{{ keyTrans('Description') }}
+
{{ localizedTag(tags, 'description') }}
+ +
{{ keyTrans('Surface') }}
+
{{ attribute(tags, 'surface') ? tagTrans('surface', attribute(tags, 'surface')) : '' }}
+
{{ keyTrans('Operator') }}
{{ attribute(tags, 'operator') ? tagTrans('operator', attribute(tags, 'operator')) : '' }}
- {% endif %} -
{{ trans('Photos') }}
-
-
    - {% if attribute(tags, 'mapillary') %} -
  • Mapillary
  • - {% endif %} -
-
+
{{ keyTrans('Access') }}
+
{{ attribute(tags, 'access') ? tagTrans('access', attribute(tags, 'access')) : '' }}
-
- markerSign: '⚠️' +
{{ keyTrans('Fee') }}
+
{{ attribute(tags, 'fee') ? tagTrans('fee', attribute(tags, 'fee')) : '' }}
+ +
{{ keyTrans('Wheelchair') }}
+
{{ attribute(tags, 'wheelchair') ? tagTrans('wheelchair', attribute(tags, 'wheelchair')) : '' }}
+ +
{{ trans('Photos') }}
+
+
    + {% if attribute(tags, 'mapillary') %} +
  • Mapillary
  • + {% endif %} +
+
+
+ {% endif %} + markerSign: '{{ item[''sign''] | raw }}' markerSymbol: | - {{ markerPointer({ fillColor: '#FFFFFF' }) }} + {% if item['sign'] %}{{ markerPointer({ fillColor: '#FFFFFF' }) }}{% endif %} listMarkerSymbol: | - {{ markerCircle({ fillColor: '#FFFFFF' }) }} + {% if item['sign'] %}{{ markerCircle({ fillColor: '#FFFFFF' }) }}{% endif %} priority: |- - {% if const[constIndex] is defined %} - {{ const[constIndex]['priority'] }} + {% if item is defined %} + {{ item['priority'] }} {% else %} 10 {% endif %} const: - waterway=dam: - sign: '🦫' - priority: 0 - waterway=weir: - sign: '🦫' + canoe=portage: + sign: + priority: 2 + canoe=put_in: + sign: priority: 0 - waterway=waterfall: - sign: '🌊' - priority: 0 - waterway=rapids: - sign: '🌊' - priority: 0 - waterway=lock: - sign: 'πŸšͺ' - priority: 1 - waterway=lock_gate: - sign: 'πŸšͺ' + leisure=slipway: + sign: priority: 1 - waterway=sluice_gate: - sign: '🦫' - priority: 0 - + shop=shop: + sign: + priority: 3 + shop=rental: + sign: + priority: 3 + waterway=portage: + sign: + priority: 2 \ No newline at end of file diff --git a/paddling_hazards.yaml b/paddling_hazards.yaml index 4e61569..821276c 100644 --- a/paddling_hazards.yaml +++ b/paddling_hazards.yaml @@ -16,7 +16,7 @@ feature: {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} title: | - {{ item['sign'] }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} + {{ item['sign'] | raw }} {{ localizedTag(tags, 'name') | default(localizedTag(tags, 'key')) | default(localizedTag(tags, 'ref')) }} description: | {{ tagTrans(key, value) }} body: |- @@ -39,11 +39,11 @@ feature: - markerSign: '⚠️' + markerSign: markerSymbol: | - {{ markerPointer({ fillColor: '#FFFFFF' }) }} + {{ markerPointer({ fillColor: '#ff6700' }) }} listMarkerSymbol: | - {{ markerCircle({ fillColor: '#FFFFFF' }) }} + {{ markerCircle({ fillColor: '#ff6700' }) }} priority: |- {% if const[constIndex] is defined %} {{ const[constIndex]['priority'] }} @@ -52,24 +52,24 @@ feature: {% endif %} const: waterway=dam: - sign: '🦫' + sign: priority: 0 waterway=weir: - sign: '🦫' + sign: priority: 0 waterway=waterfall: - sign: '🌊' + sign: priority: 0 waterway=rapids: - sign: '🌊' + sign: priority: 0 waterway=lock: - sign: 'πŸšͺ' + sign: priority: 1 waterway=lock_gate: - sign: 'πŸšͺ' + sign: priority: 1 waterway=sluice_gate: - sign: '🦫' + sign: priority: 0 From 7265e86fcbe4b2f47bf7cfbd423158a4d8b37009 Mon Sep 17 00:00:00 2001 From: Nathan Hartley Date: Tue, 10 Jan 2023 19:45:57 -0500 Subject: [PATCH 4/4] Adjusted zoom levels. --- paddling_hazards.yaml | 2 +- paddling_routes.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/paddling_hazards.yaml b/paddling_hazards.yaml index 821276c..1dbac71 100644 --- a/paddling_hazards.yaml +++ b/paddling_hazards.yaml @@ -2,7 +2,7 @@ type: overpass name: en: Paddling Hazards query: - '13': |- + '12': |- ( nwr[waterway~"^(dam|weir|waterfall|rapids|lock|lock_gate|sluice_gate)$"]; ) diff --git a/paddling_routes.yaml b/paddling_routes.yaml index 2d61e26..7e553eb 100644 --- a/paddling_routes.yaml +++ b/paddling_routes.yaml @@ -2,11 +2,11 @@ type: overpass name: en: Paddling Routes query: - '4': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn)(|;.*)$'] - '6': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn)(|;.*)$'] - '8': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn)(|;.*)$'] - '10': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn|lpn)(|;.*)$'] - '13': (relation[type=route][route~"^(|.*;)canoe(|;.*)$"] + '2': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn)(|;.*)$'] + '4': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn)(|;.*)$'] + '6': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn)(|;.*)$'] + '8': relation[type=route][route~"^(|.*;)canoe(|;.*)$"][network~'^(|.*;)(ipn|npn|rpn|lpn)(|;.*)$'] + '10': (relation[type=route][route~"^(|.*;)canoe(|;.*)$"] members: true feature: pre: |-