From e3528075f7b7ae046b52e31a65a1ab5df0d292bb Mon Sep 17 00:00:00 2001 From: scarapella Date: Sun, 21 Dec 2025 09:36:23 -0500 Subject: [PATCH 1/5] Adding wild ice skating amenities/trails to the outdoors category including * places to access skating (slipways or waterway access points where ice_skates=*) * ice skating trails (piste:type=ice_skate or waterways with ice_skates=*) * kluning trails (highways with ice_skates=kluning or kluning=*) Non-wild venues (e.g. ice rinks) are ignored as they are well covered already under leisure and/or sport categories. --- ice_skating.yaml | 209 +++++++++++++++++++++++++++++++++++++++++++++++ outdoor.json | 3 + 2 files changed, 212 insertions(+) create mode 100644 ice_skating.yaml diff --git a/ice_skating.yaml b/ice_skating.yaml new file mode 100644 index 0000000..4b10ad2 --- /dev/null +++ b/ice_skating.yaml @@ -0,0 +1,209 @@ +name: + ca: Patinatge sobre gel + cs: Bruslení + de: Eislaufen + en: Ice Skating + es: Patinaje sobre hielo + fr: Patinage sur glace + gl: Patinaxe sobre xeo + hu: Korcsolyázás + it: Pattinaggio sul ghiaccio + ja: アイススケート + nb: Skøyter + nl: Schaatsen + oc: Patinatge sus glaç + pl: Łyżwiarstwo + pt: Patinagem no gelo + pt-br: Patinação no gelo + ro: Patinaj pe gheață + ru: Катание на коньках + sr: Клизање + tr: Buz pateni +type: overpass +query: + # Ice rinks are intentionally excluded here as they are covered already by leisure.json and/or sport.json + # TODO: add ice skating relations when there is more than one in the world + '10': |- + ( + way["piste:type"="ice_skate"]; + way[waterway][ice_skates][ice_skates!=kluning]; + + node[leisure=slipway][ice_skates]; + node[waterway=access_point][ice_skates]; + + way[highway][ice_skates=kluning]; + way[highway][kluning]; + ) +feature: + pre: |- + {% if attribute(tags, 'piste:type') == 'ice_skate' %} + {% set key = 'piste:type' %} + {% set value = 'ice_skate' %} + {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates %} + {% set key = 'piste:type' %} + {% set value = 'ice_skate' %} + {% elseif type == 'way' and tags.highway and tags.ice_skates == 'kluning' %} + {% set key = 'ice_skates' %} + {% set value = 'kluning' %} + {% elseif type == 'way' and tags.highway and tags.kluning %} + {% set key = 'ice_skates' %} + {% set value = 'kluning' %} + {% elseif tags.waterway == 'access_point' and tags.ice_skates %} + {% set key = 'waterway' %} + {% set value = 'access_point' %} + {% elseif tags.leisure == 'slipway' and tags.ice_skates %} + {% set key = 'leisure' %} + {% set value = 'slipway' %} + {% endif %} + + {% set constIndex = (key ~ "=" ~ value) %} + {% set item = const[constIndex] %} + + {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged'] %} + {% set restricted_access_value = tags.ice_skates %} + {% elseif tags.access and tags.access in ['no','private','discouraged'] %} + {% set restricted_access_value = tags.access %} + {% endif %} + title: | + {% if attribute(tags, "piste:name") %} + {{ localizedTag(tags, 'piste:name') }} + {% else %} + {{ localizedTag(tags, 'name') }} + {% endif %} + {% if attribute(tags, 'ref') %} + ( {{ localizedTag(tags, 'ref') }} ) + {% endif %} + listDetails: |- + {%if attribute(tags, 'waterbody:name')%} + {{ localizedTag(tags, 'waterbody:name') }} + {% endif %} + description: | + {{ tagTrans(key, value) }} + body: |- + + markerSign: '{{ item[''sign''] | raw }}' + markerSymbol: |- + {% if item.symbol=='pointer' %} + {% if restricted_access_value %} + {{ markerPointer({ fillColor: '#7F7F7F' }) }} + {% else %} + {{ markerPointer({ fillColor: '#AA99DD' }) }} + {% endif %} + {% endif %} + listMarkerSymbol: |- + {% if item.symbol == 'pointer' %} + {% if restricted_access_value %} + {{ markerCircle({ fillColor: '#7F7F7F' }) }} + {% else %} + {{ markerCircle({ fillColor: '#AA99DD' }) }} + {% endif %} + {% elseif item.symbol == 'polygon' %} + polygon + {% elseif item.symbol == 'line' %} + line + {% endif %} + style: + width: '{{ item.style.width }}' + color: |- + {% if restricted_access_value %} + #7F7F7F + {% else %} + {{ item.style.color }} + {% endif %} + text: |- + {% if item.text %} + {% if attribute(tags, "piste:name") %} + {{ localizedTag(tags, 'piste:name') }} + {% elseif attribute(tags, "name") %} + {{ localizedTag(tags, 'name') }} + {% endif %} + {% endif %} + textRepeat: '1' + lineCap: round + dashArray: |- + {% if restricted_access_value %}5,5{% endif %} + priority: |- + {% if item is defined %} + {{ item['priority'] }} + {% else %} + 10 + {% endif %} +const: + piste:type=ice_skate: + symbol: line + style: + width: 4 + color: '#AA99DD' + text: true + priority: 0 + ice_skates=kluning: #To align better with either typical access restrictions or pistes, this tag should be more like a piste:type=kluning or a highway with access ice_skates=kluning. However ice_skates=kluning is the *documented* tagging for now. + symbol: line + style: + width: 4 + color: '#998888' + text: true + priority: 0 + waterway=access_point: + symbol: pointer + sign: + priority: 0 + leisure=slipway: + symbol: pointer + sign: + priority: 0 + \ No newline at end of file diff --git a/outdoor.json b/outdoor.json index f6d4f67..6d302db 100644 --- a/outdoor.json +++ b/outdoor.json @@ -30,6 +30,9 @@ }, { "id": "paddling" + }, + { + "id": "ice_skating" } ] } From e2092032263bd632009bcf75744c32cde01fa327 Mon Sep 17 00:00:00 2001 From: scarapella Date: Sun, 21 Dec 2025 09:36:23 -0500 Subject: [PATCH 2/5] Adding wild ice skating amenities/trails to the outdoors category including * places to access skating (slipways or waterway access points where ice_skates=*) * ice skating trails (piste:type=ice_skate or waterways with ice_skates=*) * kluning trails (highways with ice_skates=kluning or kluning=*) Non-wild venues (e.g. ice rinks) are ignored as they are well covered already under leisure and/or sport categories. --- ice_skating.yaml | 217 +++++++++++++++++++++++++++++++++++++++++++++++ outdoor.json | 3 + 2 files changed, 220 insertions(+) create mode 100644 ice_skating.yaml diff --git a/ice_skating.yaml b/ice_skating.yaml new file mode 100644 index 0000000..3556599 --- /dev/null +++ b/ice_skating.yaml @@ -0,0 +1,217 @@ +name: + ca: Patinatge sobre gel + cs: Bruslení + de: Eislaufen + en: Ice Skating + es: Patinaje sobre hielo + fr: Patinage sur glace + gl: Patinaxe sobre xeo + hu: Korcsolyázás + it: Pattinaggio sul ghiaccio + ja: アイススケート + nb: Skøyter + nl: Schaatsen + oc: Patinatge sus glaç + pl: Łyżwiarstwo + pt: Patinagem no gelo + pt-br: Patinação no gelo + ro: Patinaj pe gheață + ru: Катание на коньках + sr: Клизање + tr: Buz pateni +type: overpass +query: + # Ice rinks are intentionally excluded here as they are covered already by leisure.json and/or sport.json + # TODO: add ice skating relations when there is more than one in the world + '10': |- + ( + way["piste:type"="ice_skate"]; + way[waterway][ice_skates]; + + node[leisure=slipway][ice_skates]; + node[waterway=access_point][ice_skates]; + + way[highway][ice_skates=kluning]; + way[highway][kluning]; + ) +feature: + pre: |- + {% if attribute(tags, 'piste:type') == 'ice_skate' %} + {% set key = 'piste:type' %} + {% set value = 'ice_skate' %} + {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates %} + {% set key = 'piste:type' %} + {% set value = 'ice_skate' %} + {% elseif type == 'way' and tags.highway and tags.ice_skates == 'kluning' %} + {% set key = 'ice_skates' %} + {% set value = 'kluning' %} + {% elseif type == 'way' and tags.highway and tags.kluning %} + {% set key = 'ice_skates' %} + {% set value = 'kluning' %} + {% elseif tags.waterway == 'access_point' and tags.ice_skates %} + {% set key = 'waterway' %} + {% set value = 'access_point' %} + {% elseif tags.leisure == 'slipway' and tags.ice_skates %} + {% set key = 'leisure' %} + {% set value = 'slipway' %} + {% endif %} + + {% set constIndex = (key ~ "=" ~ value) %} + {% set item = const[constIndex] %} + + {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged'] %} + {% set restricted_access_value = tags.ice_skates %} + {% elseif tags.access and tags.access in ['no','private','discouraged'] %} + {% set restricted_access_value = tags.access %} + {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates and tags.ice_skates == 'kluning' %} + {% set restricted_access_value = tags.ice_skates %} + {% endif %} + title: | + {% if attribute(tags, "piste:name") %} + {{ localizedTag(tags, 'piste:name') }} + {% else %} + {{ localizedTag(tags, 'name') }} + {% endif %} + {% if attribute(tags, 'ref') %} + ( {{ localizedTag(tags, 'ref') }} ) + {% endif %} + listDetails: |- + {%if attribute(tags, 'waterbody:name')%} + {{ localizedTag(tags, 'waterbody:name') }} + {% endif %} + description: | + {{ tagTrans(key, value) }} + body: |- + + markerSign: '{{ item[''sign''] | raw }}' + markerSymbol: |- + {% if item.symbol=='pointer' %} + {% if restricted_access_value %} + {{ markerPointer({ fillColor: '#7F7F7F' }) }} + {% else %} + {{ markerPointer({ fillColor: '#AA99DD' }) }} + {% endif %} + {% endif %} + listMarkerSymbol: |- + {% if item.symbol == 'pointer' %} + {% if restricted_access_value %} + {{ markerCircle({ fillColor: '#7F7F7F' }) }} + {% else %} + {{ markerCircle({ fillColor: '#AA99DD' }) }} + {% endif %} + {% elseif item.symbol == 'polygon' %} + polygon + {% elseif item.symbol == 'line' %} + line + {% endif %} + style: + width: '{{ item.style.width }}' + color: |- + {% if restricted_access_value %} + #7F7F7F + {% else %} + {{ item.style.color }} + {% endif %} + text: |- + {% if item.text %} + {% if attribute(tags, "piste:name") %} + {{ localizedTag(tags, 'piste:name') }} + {% elseif attribute(tags, "name") %} + {{ localizedTag(tags, 'name') }} + {% endif %} + {% endif %} + textRepeat: '1' + lineCap: round + dashArray: |- + {% if restricted_access_value %}5,5{% endif %} + priority: |- + {% if item is defined %} + {{ item['priority'] }} + {% else %} + 10 + {% endif %} +const: + piste:type=ice_skate: + symbol: line + style: + width: 4 + color: '#AA99DD' + text: true + priority: 0 + ice_skates=kluning: #To align better with either typical access restrictions or pistes, this tag should be more like a piste:type=kluning or a highway with access ice_skates=kluning. However ice_skates=kluning is the *documented* tagging for now. + symbol: line + style: + width: 4 + color: '#998888' + text: true + priority: 0 + waterway=access_point: + symbol: pointer + sign: + priority: 0 + leisure=slipway: + symbol: pointer + sign: + priority: 0 + \ No newline at end of file diff --git a/outdoor.json b/outdoor.json index f6d4f67..6d302db 100644 --- a/outdoor.json +++ b/outdoor.json @@ -30,6 +30,9 @@ }, { "id": "paddling" + }, + { + "id": "ice_skating" } ] } From 5322e9fdd031a0a246c9fdf5a59e1b5f1576bbce Mon Sep 17 00:00:00 2001 From: "Sean P. Carapella" <73687678+scarapella@users.noreply.github.com> Date: Sun, 21 Dec 2025 12:22:33 -0500 Subject: [PATCH 3/5] Delete .github directory removed accidental addition --- .github/copilot-instructions.md | 44 --------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md deleted file mode 100644 index 5587f53..0000000 --- a/.github/copilot-instructions.md +++ /dev/null @@ -1,44 +0,0 @@ -# Copilot instructions for openstreetbrowser-categories-main - -This file gives succinct, actionable guidance for AI coding agents working in this package. - -- **Big picture**: this package defines map category descriptors as YAML files. Each category YAML contains metadata for the UI (localized `name`), an Overpass-style `query`, a `feature` Jinja template (controls title/description/marker/style) and a `const` section mapping tag-derived keys (e.g. `piste:type=ice_skate`) to rendering details. - -- **Key files/locations**: - - Category examples: `ice_skating.yaml` (root of this package). - - Translations helper: `lang/README.md` (contains rules for copying translation entries into categories). - -- **YAML + Jinja pattern**: - - Templates use Jinja-like expressions inside YAML block scalars (`feature.pre`, `feature.title`, `feature.body`, etc.). - - Common template helpers used in files: `attribute(tags, '...')`, `localizedTag(tags, '...')`, `tagTrans(key,value)`, `keyTrans(...)`, and `markerPointer()` / `markerCircle()` helpers. - - Be careful with quoting and nested braces; preserve existing whitespace and indentation when editing. - -- **Query conventions**: - - `type` is frequently `overpass` and `query` holds Overpass QL blocks. Look at `ice_skating.yaml` for examples combining `way[...]`, `node[...]`, and boolean filters. - - Category queries intentionally avoid overlap with other category packages (see inline comments). When updating queries, maintain such exclusions and add TODO comments for unresolved tagging patterns. - -- **Rendering conventions**: - - `const` keys use `tag=value` strings (e.g. `piste:type=ice_skate`) to map to `symbol`, `style`, `sign`, and `priority`. - - `feature.pre` usually resolves which `key`/`value` pair applies and sets `constIndex = (key ~ "=" ~ value)` to lookup `const[constIndex]`. - - `markerSign` may include raw HTML (icons). `markerSymbol`/`listMarkerSymbol` choose display helpers based on `item.symbol`. - - Respect `restricted_access_value` logic: values like `no`, `private`, `discouraged` should gray-out markers (`#7F7F7F`) and change behavior in templates. - -- **When adding a new category YAML**: - - Copy an existing file (e.g. `ice_skating.yaml`) as the minimal scaffold: `name`, `type`, `query`, `feature`, `const`. - - Implement `feature.pre` to deterministically set `key` and `value` then lookup `const` via the `constIndex` pattern. - - Keep UI strings via `localizedTag` / `tagTrans` rather than hardcoding text. - -- **Project-specific patterns for AI**: - - Prefer read-only edits first: update `const` styles or `feature` templates without changing query logic unless necessary. - - Preserve TODO comments in queries — they encode tagging ambiguity and cross-package concerns. - - Use existing helper names (`markerPointer`, `markerCircle`, `tagTrans`) rather than inventing new ones. - -- **Testing / validation (discoverable)**: - - There are no unit tests in this package. Validate changes by comparing rendered template outputs in a running OpenStreetBrowser instance (manual step outside this package). - - For syntax safety, run a YAML linter and ensure Jinja blocks remain properly indented and quoted. - -- **Examples to inspect**: - - `ice_skating.yaml`: demonstrates query composition, `feature.pre` logic, `const` mappings, localized `name`, and marker styling. - - `lang/README.md`: describes how translations in `lang/` are applied to categories. - -If anything here is unclear or you want the instructions tailored to a different contributor workflow, tell me which parts to expand or examples to add. From 0787aeeb99e81b469bc2fdfd777c754603f13aa9 Mon Sep 17 00:00:00 2001 From: scarapella Date: Tue, 23 Dec 2025 12:57:18 -0500 Subject: [PATCH 4/5] Adding a few tweaks to ice_skating * indicate informal access * add detailed sub-icons to lables * consider 'unknown' as a form of restricted access --- ice_skating.yaml | 55 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/ice_skating.yaml b/ice_skating.yaml index 3556599..bda5848 100644 --- a/ice_skating.yaml +++ b/ice_skating.yaml @@ -23,7 +23,7 @@ type: overpass query: # Ice rinks are intentionally excluded here as they are covered already by leisure.json and/or sport.json # TODO: add ice skating relations when there is more than one in the world - '10': |- + '9': |- ( way["piste:type"="ice_skate"]; way[waterway][ice_skates]; @@ -59,9 +59,13 @@ feature: {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} - {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged'] %} + {% if tags.informal and tags.informal in ['yes','unknown'] %} + {% set informal_value = tags.informal %} + {% endif %} + + {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged','unknown'] %} {% set restricted_access_value = tags.ice_skates %} - {% elseif tags.access and tags.access in ['no','private','discouraged'] %} + {% elseif tags.access and tags.access in ['no','private','discouraged','unknown'] %} {% set restricted_access_value = tags.access %} {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates and tags.ice_skates == 'kluning' %} {% set restricted_access_value = tags.ice_skates %} @@ -79,7 +83,10 @@ feature: {%if attribute(tags, 'waterbody:name')%} {{ localizedTag(tags, 'waterbody:name') }} {% endif %} - description: | + description: |- + {% if item.detailSign %} + {{ item.detailSign | raw }} + {% endif %} {{ tagTrans(key, value) }} body: |-
    @@ -107,6 +114,14 @@ feature: {% endif %} + {% if attribute(tags, 'informal') %} +
  • + + {{ keyTrans('informal') }}: + {{ tagTrans('informal', attribute(tags, 'informal'))}} +
  • + {% endif %} + {% if attribute(tags, 'access') %}
  • @@ -148,17 +163,21 @@ feature: markerSymbol: |- {% if item.symbol=='pointer' %} {% if restricted_access_value %} - {{ markerPointer({ fillColor: '#7F7F7F' }) }} + {{ markerPointer({ fillColor: item.style.color_restricted }) }} + {% elseif informal_value %} + {{ markerPointer({ fillColor: item.style.color_informal }) }} {% else %} - {{ markerPointer({ fillColor: '#AA99DD' }) }} + {{ markerPointer({ fillColor: item.style.color }) }} {% endif %} {% endif %} listMarkerSymbol: |- {% if item.symbol == 'pointer' %} {% if restricted_access_value %} - {{ markerCircle({ fillColor: '#7F7F7F' }) }} + {{ markerCircle({ fillColor: item.style.color_restricted }) }} + {% elseif informal_value %} + {{ markerCircle({ fillColor: item.style.color_informal }) }} {% else %} - {{ markerCircle({ fillColor: '#AA99DD' }) }} + {{ markerCircle({ fillColor: item.style.color }) }} {% endif %} {% elseif item.symbol == 'polygon' %} polygon @@ -169,7 +188,9 @@ feature: width: '{{ item.style.width }}' color: |- {% if restricted_access_value %} - #7F7F7F + {{ item.style.color_restricted }} + {% elseif informal_value %} + {{ item.style.color_informal }} {% else %} {{ item.style.color }} {% endif %} @@ -197,6 +218,8 @@ const: style: width: 4 color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' text: true priority: 0 ice_skates=kluning: #To align better with either typical access restrictions or pistes, this tag should be more like a piste:type=kluning or a highway with access ice_skates=kluning. However ice_skates=kluning is the *documented* tagging for now. @@ -204,14 +227,26 @@ const: style: width: 4 color: '#998888' + color_informal: '#DD9999' + color_restricted: '#7F7F7F' text: true priority: 0 waterway=access_point: symbol: pointer sign: + detailSign: + style: + color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' priority: 0 leisure=slipway: symbol: pointer sign: - priority: 0 + detailSign: + style: + color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' + priority: 0 \ No newline at end of file From 774500c7a60728bdee25286faa2baa3f7066f090 Mon Sep 17 00:00:00 2001 From: scarapella Date: Tue, 23 Dec 2025 12:57:18 -0500 Subject: [PATCH 5/5] Adding a few tweaks to ice_skating * indicate informal access * add detailed sub-icons to lables * consider 'unknown' as a form of restricted access --- ice_skating.yaml | 95 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 73 insertions(+), 22 deletions(-) diff --git a/ice_skating.yaml b/ice_skating.yaml index 3556599..1b3c433 100644 --- a/ice_skating.yaml +++ b/ice_skating.yaml @@ -23,7 +23,7 @@ type: overpass query: # Ice rinks are intentionally excluded here as they are covered already by leisure.json and/or sport.json # TODO: add ice skating relations when there is more than one in the world - '10': |- + '9': |- ( way["piste:type"="ice_skate"]; way[waterway][ice_skates]; @@ -59,9 +59,13 @@ feature: {% set constIndex = (key ~ "=" ~ value) %} {% set item = const[constIndex] %} - {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged'] %} + {% if tags.informal and tags.informal in ['yes','unknown'] %} + {% set informal_value = tags.informal %} + {% endif %} + + {% if tags.ice_skates and tags.ice_skates in ['no','private','discouraged','unknown'] %} {% set restricted_access_value = tags.ice_skates %} - {% elseif tags.access and tags.access in ['no','private','discouraged'] %} + {% elseif tags.access and tags.access in ['no','private','discouraged','unknown'] %} {% set restricted_access_value = tags.access %} {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates and tags.ice_skates == 'kluning' %} {% set restricted_access_value = tags.ice_skates %} @@ -79,14 +83,17 @@ feature: {%if attribute(tags, 'waterbody:name')%} {{ localizedTag(tags, 'waterbody:name') }} {% endif %} - description: | + description: |- + {% if item.detailSign %} + {{ item.detailSign | raw }} + {% endif %} {{ tagTrans(key, value) }} body: |-
      {% if attribute(tags, 'waterbody:name') %}
    • - {{ tagTrans('natural', 'water') }}: + {{ tagTrans('natural', 'water') }}: {{ localizedTag(tags, 'waterbody:name') }}
    • {% endif %} @@ -94,7 +101,7 @@ feature: {% if attribute(tags, 'surface') %}
    • - {{ keyTrans('Surface') }}: + {{ keyTrans('surface') }}: {{ attribute(tags, 'surface') ? tagTrans('surface', attribute(tags, 'surface')) : '' }}
    • {% endif %} @@ -102,29 +109,29 @@ feature: {% if attribute(tags, 'operator') %}
    • - {{ keyTrans('operator') }}: + {{ keyTrans('operator') }}: {{ tagTrans('operator', attribute(tags, 'operator')) }}
    • {% endif %} - {% if attribute(tags, 'access') %} + {% if attribute(tags, 'informal') %}
    • - {{ keyTrans('access') }}: - {{ tagTrans('access', attribute(tags, 'access'))}} + {{ keyTrans('informal') }}: + {{ tagTrans('informal', attribute(tags, 'informal'))}}
    • {% endif %} {% if attribute(tags, 'ice_skates') and tags.ice_skates != 'kluning'%}
    • - {{ keyTrans('ice_skates') }}: + {{ keyTrans('ice_skates') }}: {{ tagTrans('access', attribute(tags, 'ice_skates')) }}
    • {% elseif type == 'way' and tags.waterway and tags.waterway != 'access_point' and tags.ice_skates and tags.ice_skates == 'kluning' %}
    • - {{ keyTrans('ice_skates') }}: + {{ keyTrans('ice_skates') }}: {{ tagTrans('access', 'no') }}
    • {% endif %} @@ -132,33 +139,61 @@ feature: {% if attribute(tags, 'kluning') and tags.kluning %}
    • - {{ keyTrans('kluning') }}: + {{ keyTrans('kluning') }}: {{ tagTrans('access', attribute(tags, 'kluning')) }}
    • {% elseif tags.highway and tags.ice_skates=='kluning' %}
    • - {{ keyTrans('kluning') }}: + {{ keyTrans('kluning') }}: {{ tagTrans('access', 'yes') }}
    • {% endif %} + {% if attribute(tags, 'access') %} +
    • + + {{ keyTrans('access') }}: + {{ tagTrans('access', attribute(tags, 'access'))}} +
    • + {% endif %} + + {% if attribute(tags, 'fee') %} +
    • + + {{ keyTrans('fee') }}: + {{ tagTrans('fee', attribute(tags, 'fee')) }} +
    • + {% endif %} + + {% if attribute(tags,'ice_skates:description') %} +
    • + + {{ localizedTag(tags, 'ice_skates:description') }} +
    • + {% endif %} + {% if attribute(tags,'wheelchair:description') %} +
    • + + {{ localizedTag(tags, 'wheelchair:description') }} +
    • + {% endif %}
    markerSign: '{{ item[''sign''] | raw }}' markerSymbol: |- {% if item.symbol=='pointer' %} {% if restricted_access_value %} - {{ markerPointer({ fillColor: '#7F7F7F' }) }} + {{ markerPointer({ fillColor: item.style.color_restricted }) }} {% else %} - {{ markerPointer({ fillColor: '#AA99DD' }) }} + {{ markerPointer({ fillColor: item.style.color }) }} {% endif %} {% endif %} listMarkerSymbol: |- {% if item.symbol == 'pointer' %} {% if restricted_access_value %} - {{ markerCircle({ fillColor: '#7F7F7F' }) }} + {{ markerCircle({ fillColor: item.style.color_restricted }) }} {% else %} - {{ markerCircle({ fillColor: '#AA99DD' }) }} + {{ markerCircle({ fillColor: item.style.color }) }} {% endif %} {% elseif item.symbol == 'polygon' %} polygon @@ -169,7 +204,9 @@ feature: width: '{{ item.style.width }}' color: |- {% if restricted_access_value %} - #7F7F7F + {{ item.style.color_restricted }} + {% elseif informal_value %} + {{ item.style.color_informal }} {% else %} {{ item.style.color }} {% endif %} @@ -197,21 +234,35 @@ const: style: width: 4 color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' text: true - priority: 0 + priority: 1 ice_skates=kluning: #To align better with either typical access restrictions or pistes, this tag should be more like a piste:type=kluning or a highway with access ice_skates=kluning. However ice_skates=kluning is the *documented* tagging for now. symbol: line style: width: 4 color: '#998888' + color_informal: '#DD9999' + color_restricted: '#7F7F7F' text: true - priority: 0 + priority: 1 waterway=access_point: symbol: pointer sign: + detailSign: + style: + color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' priority: 0 leisure=slipway: symbol: pointer sign: - priority: 0 + detailSign: + style: + color: '#AA99DD' + color_informal: '#948CAE' + color_restricted: '#7F7F7F' + priority: 0 \ No newline at end of file