Browse Source

New categories in Transport/Walking: footways, kerbs

pedestrian
parent
commit
c77faef34e
  1. 245
      footways.yaml
  2. 6
      index.json
  3. 111
      kerbs.yaml

245
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: |
<table>
{% for k, d in const.categories if k != 'cycleway' %}
<tr>
<td>{{ markerLine({
width: d.width|default(3),
color: d.color,
dashArray: d.dashArray
}) }}</td>
<td>{{ tagTrans(d.key|default('highway'), k) }}</td>
</tr>
{% endfor %}
<tr>
<td>{{ markerCircle({
width: 0,
radius: 5,
fillOpacity: 1,
fill: true,
color: const.categories.crossing.color
}) }}</td>
<td>{{ tagTrans('highway', 'crossing') }}</td>
</tr>
<tr>
<td>{{ 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
}
}) }}</td>
<td>highway=cycleway segregated=no</td>
</tr>
<tr>
<td>{{ 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
}
}) }}</td>
<td>highway=cycleway segregated=yes</td>
</tr>
</table>
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'

6
index.json

@ -157,6 +157,12 @@
},
{
"id": "hiking_routes"
},
{
"id": "footways"
},
{
"id": "kerbs"
}
]
},

111
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: |
<ul>
{% if tags.kerb %}
<li>{{ keyTrans('kerb') }}: {{ tagTrans('kerb', tags.kerb) }}</li>
{% endif %}
{% if tags.wheelchair %}
<li>{{ keyTrans('wheelchair') }}: {{ tagTrans('wheelchair', tags.wheelchair) }}</li>
{% endif %}
{% if tags.tactile_paving %}
<li>{{ keyTrans('tactile_paving') }}: {{ tagTrans('tactile_paving', tags.tactile_paving) }}</li>
{% endif %}
{% if tags.height %}
<li>{{ keyTrans('height') }}: {{ tags.height }}</li>
{% endif %}
</ul>
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') }}:
<table>
{% for v, color in const.kerb %}
<tr>
<td>
{{ 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 }) }}
</td>
<td>{{ v == 'unknown' ? trans('unknown') : tagTrans('kerb', v) }}</td>
</tr>
{% endfor %}
</table>
{{ keyTrans('wheelchair') }}:
<table>
{% for v, color in const.wheelchair %}
<tr>
<td>
{{ markerCircle({ radius: 6, width: 2, fillOpacity: 1, fillColor: '#000000', color: color }) }}
</td>
<td>{{ v == 'unknown' ? trans('unknown') : tagTrans('kerb', v) }}</td>
</tr>
{% endfor %}
</table>
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'
Loading…
Cancel
Save