From 2acd6c910a41abf381c945b4f4d0438d36eeebd8 Mon Sep 17 00:00:00 2001 From: Nathan Hartley Date: Tue, 10 Jan 2023 03:19:42 -0500 Subject: [PATCH] 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 %}