|
@ -3,6 +3,9 @@ query: |
|
|
way[highway=cycleway]; |
|
|
way[highway=cycleway]; |
|
|
way[cyclestreet=yes]; |
|
|
way[cyclestreet=yes]; |
|
|
way[bicycle_road=yes]; |
|
|
way[bicycle_road=yes]; |
|
|
|
|
|
way["cycleway:left"]["cycleway:left"!~"(no|separate)"]; |
|
|
|
|
|
way["cycleway:right"]["cycleway:right"!~"(no|separate)"]; |
|
|
|
|
|
way["cycleway:both"]["cycleway:both"!~"(no|separate)"]; |
|
|
) |
|
|
) |
|
|
feature: |
|
|
feature: |
|
|
pre: | |
|
|
pre: | |
|
@ -21,11 +24,26 @@ feature: |
|
|
{% set oneway = 0 %} |
|
|
{% set oneway = 0 %} |
|
|
{% endif %} |
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
{% set leftCycle = attribute(tags, 'cycleway:left')|default(attribute(tags, 'cycleway:both')) %} |
|
|
|
|
|
{% if leftCycle in ['no', 'separate'] %} |
|
|
|
|
|
{% set leftCycle = '' %} |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
{% set leftOneway = attribute(tags, 'cycleway:left:oneway')|default(attribute(tags, 'cycleway:both:oneway')) %} |
|
|
|
|
|
{% if not leftOneway or leftOneway in ['yes'] %} |
|
|
|
|
|
{% set leftOneway = map.driving_side == 'left' ? 1 : -1 %} |
|
|
|
|
|
{% elseif leftOneway in ['no'] %} |
|
|
|
|
|
{% set leftOneway = 0 %} |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
styles: | |
|
|
styles: | |
|
|
{% if tags.segregated %} |
|
|
{% if tags.segregated %} |
|
|
footway, |
|
|
footway, |
|
|
{% endif %} |
|
|
{% endif %} |
|
|
default |
|
|
default |
|
|
|
|
|
{% if leftCycle %} |
|
|
|
|
|
,left |
|
|
|
|
|
{% endif %} |
|
|
style: |
|
|
style: |
|
|
width: | |
|
|
width: | |
|
|
{% if tags.segregated == 'yes' %} |
|
|
{% if tags.segregated == 'yes' %} |
|
@ -137,6 +155,39 @@ feature: |
|
|
{{ (const.types.footway.width / 2 - 1) * -1 }} |
|
|
{{ (const.types.footway.width / 2 - 1) * -1 }} |
|
|
{% endif %} |
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
style:left: |
|
|
|
|
|
offset: -5 |
|
|
|
|
|
|
|
|
|
|
|
color: | |
|
|
|
|
|
{{ const.types[leftCycle].color|default('#ff0000') }} |
|
|
|
|
|
|
|
|
|
|
|
width: 3 |
|
|
|
|
|
|
|
|
|
|
|
lineCap: | |
|
|
|
|
|
{{ leftOneway ? 'butt' : 'round' }} |
|
|
|
|
|
dashArray: | |
|
|
|
|
|
{{ leftOneway ? '27,8' : '' }} |
|
|
|
|
|
dashOffset: | |
|
|
|
|
|
{{ leftOneway == -1 ? 28 : 0 }} |
|
|
|
|
|
noClip: true |
|
|
|
|
|
# {{ leftOneway }} |
|
|
|
|
|
pattern: | |
|
|
|
|
|
{% if leftOneway %}arrowHead{% endif %} |
|
|
|
|
|
pattern-offset: | |
|
|
|
|
|
{{ leftOneway == -1 ? 4 : 30.5 }} |
|
|
|
|
|
pattern-lineOffset: -5 |
|
|
|
|
|
pattern-repeat: 35 |
|
|
|
|
|
pattern-polygon: true |
|
|
|
|
|
pattern-pixelSize: 9 |
|
|
|
|
|
pattern-angleCorrection: | |
|
|
|
|
|
{{ leftOneway == -1 ? 180 : 0 }} |
|
|
|
|
|
pattern-path-width: 0 |
|
|
|
|
|
|
|
|
|
|
|
pattern-path-color: | |
|
|
|
|
|
{{ const.types[leftCycle].color|default('#ff0000') }} |
|
|
|
|
|
|
|
|
|
|
|
pattern-path-fillOpacity: 1 |
|
|
|
|
|
|
|
|
description: | |
|
|
description: | |
|
|
{% if tags.cyclestreet == 'yes' %} |
|
|
{% if tags.cyclestreet == 'yes' %} |
|
|
{{ keyTrans('cyclestreet') }} |
|
|
{{ keyTrans('cyclestreet') }} |
|
@ -148,6 +199,39 @@ feature: |
|
|
{{ tagTrans('highway', tags.highway) }} |
|
|
{{ tagTrans('highway', tags.highway) }} |
|
|
{% endif %} |
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
body: | |
|
|
|
|
|
<ul> |
|
|
|
|
|
{% if tags.highway in ['cycleway'] or attribute(tags, 'cycleway:width') %} |
|
|
|
|
|
<li> |
|
|
|
|
|
{{ keyTrans('cycleway:width') }}: |
|
|
|
|
|
{% if not attribute(tags, 'cycleway:width') %} |
|
|
|
|
|
{{ trans('unknown') }} |
|
|
|
|
|
{% elseif attribute(tags, 'cycleway:width') matches "/(m|')$/" %} |
|
|
|
|
|
{{ attribute(tags, 'cycleway:width') }} |
|
|
|
|
|
{% else %} |
|
|
|
|
|
{{ attribute(tags, 'cycleway:width') }}m |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
</li> |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
{% if leftCycle %} |
|
|
|
|
|
<li>{{ keyTrans('cycleway:left') }}:<ul> |
|
|
|
|
|
<li>{{ keyTrans('cycleway') }}: {{ tagTrans('cycleway', attribute(tags, 'cycleway:left')|default(attribute(tags, 'cycleway:both'))) }}</li> |
|
|
|
|
|
<li> |
|
|
|
|
|
{{ keyTrans('cycleway:width') }}: |
|
|
|
|
|
{% if not leftWidth %} |
|
|
|
|
|
{{ trans('unknown') }} |
|
|
|
|
|
{% elseif attribute(tags, 'cycleway:left:width')|default(attribute(tags, 'cycleway:both:width')) matches "/(m|')$/" %} |
|
|
|
|
|
{{ attribute(tags, 'cycleway:left:width')|default(attribute(tags, 'cycleway:both:width')) }} |
|
|
|
|
|
{% else %} |
|
|
|
|
|
{{ leftWidth }}m |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul></li> |
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
|
markerSymbol: '' |
|
|
markerSymbol: '' |
|
|
|
|
|
|
|
|
const: |
|
|
const: |
|
@ -164,3 +248,15 @@ const: |
|
|
bicycle_road: |
|
|
bicycle_road: |
|
|
color: '#006f4f' |
|
|
color: '#006f4f' |
|
|
width: 8 |
|
|
width: 8 |
|
|
|
|
|
lane: |
|
|
|
|
|
color: '#00df3f' |
|
|
|
|
|
shared_lane: |
|
|
|
|
|
color: '#003faf' |
|
|
|
|
|
share_busway: |
|
|
|
|
|
color: '#ff7f00' |
|
|
|
|
|
opposite_lane: |
|
|
|
|
|
color: '#ff0000' |
|
|
|
|
|
warning: 'Deprecated tag! Use oneway:bicycle=no or cycleway=lane, cycleway:oneway=-1 instead.' |
|
|
|
|
|
track: |
|
|
|
|
|
color: '#ff0000' |
|
|
|
|
|
warning: 'Deprecated tag! Consider tagging as separate way with highway=cycleway.' |