diff --git a/lanes.json b/lanes.json index 6ed9529..8712d8b 100644 --- a/lanes.json +++ b/lanes.json @@ -15,11 +15,13 @@ }, "feature": { "pre": [ - "{% set parking_left = attribute(tags, 'parking:lane:left')|default(attribute(tags, 'parking:lane:both')) %}", - "{% set parking_right = attribute(tags, 'parking:lane:right')|default(attribute(tags, 'parking:lane:both')) %}", + "{% set parking_left = attribute(tags, 'parking:lane:left')|default(attribute(tags, 'parking:lane:both')) ? 1 : 0 %}", + "{% set parking_right = attribute(tags, 'parking:lane:right')|default(attribute(tags, 'parking:lane:both')) ? 1 : 0 %}", "{% set oneway = tags.oneway in ['yes','1'] %}", "{% set cyclelane_left = attribute(tags, 'cycleway:left') == 'lane' ? 1 : ('opposite_lane' in tags.cycleway|split(';') ? 1 : (('lane' in tags.cycleway|split(';')) and not oneway ? 1 : 0)) %}", "{% set cyclelane_right = attribute(tags, 'cycleway:right') == 'lane' ? 1 : ('lane' in tags.cycleway|split(';') ? 1 : 0) %}", + "{% set sidewalk_left = tags.sidewalk in ['both', 'left'] ? 1 : 0 %}", + "{% set sidewalk_right = tags.sidewalk in ['both', 'right'] ? 1 : 0 %}", "{% set lanes = tags.lanes|default(oneway ? 1 : 2) %}", "{% set lanes_width = lanes * 3 %}", "{% set forward_lanes = attribute(tags, 'lanes:forward')|default(oneway ? lanes : lanes // 2) %}", @@ -36,12 +38,18 @@ ], "markerSymbol": null, "listMarkerSymbol": "line", - "styles": "{% if parking_left %}parking_left,{% endif %}{% if cyclelane_left %}cyclelane_left,{% endif %}{% if lanes == 1 %}lane1{% else %}{% for i in 1..lanes - 1 %}lane{{ i }},mark{{ i }},{% endfor %}lane{{ lanes }}{% endif %}{% if cyclelane_right %},cyclelane_right{% endif %}{% if parking_right %},parking_right{% endif %}", + "styles": "{% if sidewalk_left %}sidewalk_left,{% endif %}{% if parking_left %}parking_left,{% endif %}{% if cyclelane_left %}cyclelane_left,{% endif %}{% if lanes == 1 %}lane1{% else %}{% for i in 1..lanes - 1 %}lane{{ i }},mark{{ i }},{% endfor %}lane{{ lanes }}{% endif %}{% if cyclelane_right %},cyclelane_right{% endif %}{% if parking_right %},parking_right{% endif %}{% if sidewalk_right %},sidewalk_right{% endif %}", "style": { "width": "{{ width }}", "pane": "casing", "color": "{% if tags.gauge %}{% if not tags.gauge|matches('^\\d+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], tags.gauge / 2000) }}{% endif %}{% else %}#404040{% endif %}" }, + "style:sidewalk_left": { + "width": "2m", + "color": "#4f4fbf", + "offset": "{{ lanes_width / -2 - (cyclelane_left * 2) - (parking_left * 2) - 1 }}m", + "pane": "casing" + }, "style:parking_left": { "width": "2m", "color": "orange", @@ -66,6 +74,12 @@ "offset": "{{ lanes_width / 2 + (cyclelane_right * 2) + 1 }}m", "pane": "casing" }, + "style:sidewalk_right": { + "width": "2m", + "color": "#4f4fbf", + "offset": "{{ lanes_width / 2 + (cyclelane_right * 2) + (parking_right * 2) + 1 }}m", + "pane": "casing" + }, "style:lane1": { "width": "3.1m", "offset": "{{ lanes_width / -2 + 1.5 }}m", @@ -219,6 +233,10 @@ " {{ markerLine({ 'width': 5, 'color': '#af3f3f' })|raw }}", " {{ tagTrans('cycleway', 'lane') }}", " ", + " ", + " {{ markerLine({ 'width': 5, 'color': '#4f4fbf' })|raw }}", + " {{ keyTrans('sidewalk') }}", + " ", "" ] }