diff --git a/footways.yaml b/footways.yaml new file mode 100644 index 0000000..a19c23b --- /dev/null +++ b/footways.yaml @@ -0,0 +1,245 @@ +query: + 15: | + ( + way[highway~"^(footway|pedestrian|steps|path)$"]; + way[highway=cycleway][foot~"^(yes|designated)$"]; + way[footway]; + way[sidewalk~"^(yes|both|left|right|no|none)$"]; + way["sidewalk:left"~"(yes|no|separate)$"]; + way["sidewalk:right"~"(yes|no|separate)$"]; + way["sidewalk:both"~"(yes|no|separate)$"]; + nwr["railway"="platform"]; + node[highway=crossing]; + ) +feature: + pre: | + {% set sides = ['default'] %} + {% set sidewalk_left = null %}{% set sidewalk_right = null %} + {% set category = tags.highway %} + + {% if attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['yes', 'both', 'left', 'both', 'right'] or tags.footway == 'sidewalk' %} + {% set category = 'sidewalk' %} + {% endif %} + + {% if tags.highway in ['pedestrian', 'footway','steps','path','cycleway'] %} + {% set sides = sides|merge(['main']) %} + {% endif %} + + {% if tags.railway in ['platform'] %} + {% set sides = sides|merge(['main']) %} + {% set category = 'platform' %} + {% endif %} + + {% set foot = false %} + {% if tags.highway not in ['pedestrian', 'footway', 'path'] and tags.foot in ['yes', 'designated'] %} + {% set foot = tags.foot %} + {% set sides = sides|merge(['foot']) %} + {% endif %} + + {% if tags.footway == 'crossing' %} + {% set category = 'crossing' %} + {% endif %} + + {% if attribute(tags, 'sidewalk:both') %} + {% set sidewalk_left = attribute(tags, 'sidewalk:both') %} + {% set sides = sides|merge(['leftr', 'rightr']) %} + {% endif %} + + {% if attribute(tags, 'sidewalk:left') %} + {% set sidewalk_left = attribute(tags, 'sidewalk:left') %} + {% set sides = sides|merge(['leftr']) %} + {% endif %} + + {% if attribute(tags, 'sidewalk:left') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['left', 'both'] %} + {% set sidewalk_left = 'yes' %} + {% set sides = sides|merge(['leftr', 'left']) %} + {% endif %} + + {% if attribute(tags, 'sidewalk:right') %} + {% set sidewalk_right = attribute(tags, 'sidewalk:right') %} + {% set sides = sides|merge(['rightr']) %} + {% endif %} + + {% if attribute(tags, 'sidewalk:right') == 'yes' or attribute(tags, 'sidewalk:both') == 'yes' or tags.sidewalk in ['right', 'both'] %} + {% set sidewalk_right = 'yes' %} + {% set sides = sides|merge(['rightr', 'right']) %} + {% endif %} + + {% if type == 'node' %} + {% set sides = ['node'] %} + {% endif %} + description: | + {% if tags.footway %} + {{ tagTrans('footway', tags.footway) }} + {% else %} + {{ tagTrans('highway', tags.highway) }} + {% endif %} + markerSymbol: "" + listMarkerSymbol: | + {% if tags.area == 'yes' %}polygon{% else %}line{% endif %} + style: + opacity: 0 + fillOpacity: 0 + width: 5 + style:node: + width: 0 + radius: 5 + fillOpacity: 1 + fill: true + color: | + {{ const.categories[category].color }} + style:main: + fill: | + {% if tags.area == 'yes' %}true{% else %}false{% endif %} + width: | + {% if tags.area == 'yes' %} + 1 + {% elseif foot and tags.segregated == 'yes' %} + 2 + {% else %} + {{ const.categories[category].width|default(3) }} + {% endif %} + color: | + {{ const.categories[category].color }} + dashArray: | + {% if tags.highway == 'steps' or (foot and tags.segregated != 'yes') %} + 3,3 + {% endif %} + lineCap: | + {% if tags.highway == 'steps' or (foot and tags.segregated != 'yes') %}butt{% else %}round{% endif %} + offset: | + {% if foot and tags.segregated == 'yes' %}1{% else %}0{% endif %} + style:foot: + fill: false + width: | + {% if foot and tags.segregated == 'yes' %} + 2 + {% else %} + 3 + {% endif %} + color: | + {{ const.categories.footway.color }} + dashArray: | + {% if foot and tags.segregated != 'yes' %} + 3,3 + {% endif %} + dashOffset: 3 + lineCap: | + {% if foot and tags.segregated != 'yes' %}butt{% else %}round{% endif %} + offset: | + {% if foot and tags.segregated == 'yes' %}-1{% else %}0{% endif %} + style:left: + width: 3 + offset: | + {{ -5 / map.metersPerPixel }} + color: | + {{ const.categories.sidewalk.color }} + style:right: + width: 3 + offset: | + {{ 5 / map.metersPerPixel }} + color: | + {{ const.categories.sidewalk.color }} + + style:leftr: + width: | + {{ sidewalk_left ? 5 / map.metersPerPixel : 0 }} + offset: | + {{ -2.5 / map.metersPerPixel }} + opacity: 0.3 + dashArray: '1,10' + lineCap: butt + color: | + {{ sidewalk_left in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }} + + style:rightr: + width: | + {{ sidewalk_right ? 5 / map.metersPerPixel : 0 }} + offset: | + {{ 2.5 / map.metersPerPixel }} + opacity: 0.3 + dashArray: '1,10' + lineCap: butt + color: | + {{ sidewalk_right in ['no', 'none'] ? '#000000' : const.categories.sidewalk.color }} + + styles: | + {{ sides|join(',') }} +info: | + + {% for k, d in const.categories if k != 'cycleway' %} + + + + + {% endfor %} + + + + + + + + + + + + +
{{ markerLine({ + width: d.width|default(3), + color: d.color, + dashArray: d.dashArray + }) }}{{ tagTrans(d.key|default('highway'), k) }}
{{ markerCircle({ + width: 0, + radius: 5, + fillOpacity: 1, + fill: true, + color: const.categories.crossing.color + }) }}{{ tagTrans('highway', 'crossing') }}
{{ markerLine({ + styles: 'default,foot', + style: { + width: 4, + color: const.categories.cycleway.color, + dashArray: '3,3' + }, + 'style:foot': { + width: 4, + color: const.categories.footway.color, + dashArray: '3,3', + dashOffset: 3 + } + }) }}highway=cycleway segregated=no
{{ markerLine({ + styles: 'default,foot', + style: { + width: 2, + color: const.categories.cycleway.color, + offset: -1 + }, + 'style:foot': { + width: 2, + color: const.categories.footway.color, + offset: 1 + } + }) }}highway=cycleway segregated=yes
+const: + categories: + sidewalk: + color: '#ff007f' + key: footway + pedestrian: + color: '#ff00c8' + width: 5 + footway: + color: '#ab00ff' + path: + color: '#ee922d' + steps: + color: '#ab00ff' + dashArray: '3,3' + crossing: + color: '#964e00' + cycleway: + color: '#002aff' + platform: + key: railway + color: '#00ff00' diff --git a/index.json b/index.json index 6f11775..556f750 100644 --- a/index.json +++ b/index.json @@ -157,6 +157,12 @@ }, { "id": "hiking_routes" + }, + { + "id": "footways" + }, + { + "id": "kerbs" } ] }, diff --git a/kerbs.yaml b/kerbs.yaml new file mode 100644 index 0000000..e2d995f --- /dev/null +++ b/kerbs.yaml @@ -0,0 +1,111 @@ +query: + 14: (way[kerb];way[barrier=kerb];node[kerb];node[barrier=kerb];) +name: + en: Kerbs +feature: + pre: | + {% set kerb = 'unknown' %} + {% if const.kerb[tags.kerb] %} + {% set kerb = tags.kerb %} + {% endif %} + + {% set wheelchair = 'unknown' %} + {% if const.wheelchair[tags.wheelchair] %} + {% set wheelchair = tags.wheelchair %} + {% endif %} + + description: | + {{ tagTrans('barrier', 'kerb') }} + body: | + + markerSymbol: + listMarkerSymbol: | + {% if type == 'way' %} + line + {% else %} + {{ markerCircle({ radius: 5, width: 2, fillOpacity: 1, fillColor: const.kerb[kerb], color: const.wheelchair[wheelchair] }) }} + {% endif %} + details: | + {{ tags.kerb }} + {% if tags.height %}({{ tags.height }}){% endif %} + styles: | + {% if type == 'way' %} + default,marker + {% else %} + node + {% endif %} + style: + color: | + {{ const.kerb[kerb] }} + fill: | + {{ type == 'way' ? false : true }} + radius: 4 + fillOpacity: 1 + width: 2 + style:marker: + color: | + {{ const.kerb[kerb] }} + offset: 2 + width: 2 + fill: false + dashArray: 2,9 + style:node: + fillColor: | + {{ const.kerb[kerb] }} + fill: true + radius: 6 + fillOpacity: 1 + width: 2 + color: | + {{ const.wheelchair[wheelchair] }} +info: | + {{ tagTrans('barrier', 'kerb') }}: + + {% for v, color in const.kerb %} + + + + + {% endfor %} +
+ {{ markerLine({ styles: 'default,marker', style: { width: 2, color: color }, 'style:marker': { width: 2, offset: 2, color: color, dashArray: '2,9'} } ) }} + {{ markerCircle({ radius: 4, width: 2, fillOpacity: 1, color: color }) }} + {{ v == 'unknown' ? trans('unknown') : tagTrans('kerb', v) }}
+ {{ keyTrans('wheelchair') }}: + + {% for v, color in const.wheelchair %} + + + + + {% endfor %} +
+ {{ markerCircle({ radius: 6, width: 2, fillOpacity: 1, fillColor: '#000000', color: color }) }} + {{ v == 'unknown' ? trans('unknown') : tagTrans('kerb', v) }}
+const: + kerb: + flush: '#00af00' + lowered: '#007f7f' + no: '#000000' + raised: '#af0000' + rolled: '#af7f00' + unknown: '#7f7f7f' + wheelchair: + designated: '#00ff7f' + yes: '#00ff00' + no: '#ff0000' + limited: '#ffff00' + unknown: '#ffffff'