From 549dcf480c4cd466a300b77ded6bb2e74bd2acc9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= <skunk@xover.mud.at>
Date: Sat, 2 May 2020 22:31:35 +0200
Subject: [PATCH] Lanes: slight_left, slight_right

---
 lanes-sign.template |  24 +++-
 lanes.json          | 288 ++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 286 insertions(+), 26 deletions(-)

diff --git a/lanes-sign.template b/lanes-sign.template
index 21bfd9b..311a035 100644
--- a/lanes-sign.template
+++ b/lanes-sign.template
@@ -28,14 +28,34 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + @ * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + @ * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + @ * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + @ * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + @ * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         }
diff --git a/lanes.json b/lanes.json
index 3a3a947..5440298 100644
--- a/lanes.json
+++ b/lanes.json
@@ -326,16 +326,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign2": {
             "_": "{% set lane_forward = backward_lanes < 2 %}{% set lane_turn = turn_lanes[2 - 1]|split(';') %}",
@@ -367,16 +387,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign3": {
             "_": "{% set lane_forward = backward_lanes < 3 %}{% set lane_turn = turn_lanes[3 - 1]|split(';') %}",
@@ -408,16 +448,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign4": {
             "_": "{% set lane_forward = backward_lanes < 4 %}{% set lane_turn = turn_lanes[4 - 1]|split(';') %}",
@@ -449,16 +509,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign5": {
             "_": "{% set lane_forward = backward_lanes < 5 %}{% set lane_turn = turn_lanes[5 - 1]|split(';') %}",
@@ -490,16 +570,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign6": {
             "_": "{% set lane_forward = backward_lanes < 6 %}{% set lane_turn = turn_lanes[6 - 1]|split(';') %}",
@@ -531,16 +631,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign7": {
             "_": "{% set lane_forward = backward_lanes < 7 %}{% set lane_turn = turn_lanes[7 - 1]|split(';') %}",
@@ -572,16 +692,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign8": {
             "_": "{% set lane_forward = backward_lanes < 8 %}{% set lane_turn = turn_lanes[8 - 1]|split(';') %}",
@@ -613,16 +753,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign9": {
             "_": "{% set lane_forward = backward_lanes < 9 %}{% set lane_turn = turn_lanes[9 - 1]|split(';') %}",
@@ -654,16 +814,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign10": {
             "_": "{% set lane_forward = backward_lanes < 10 %}{% set lane_turn = turn_lanes[10 - 1]|split(';') %}",
@@ -695,16 +875,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign11": {
             "_": "{% set lane_forward = backward_lanes < 11 %}{% set lane_turn = turn_lanes[11 - 1]|split(';') %}",
@@ -736,16 +936,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         },
         "style:sign12": {
             "_": "{% set lane_forward = backward_lanes < 12 %}{% set lane_turn = turn_lanes[12 - 1]|split(';') %}",
@@ -777,16 +997,36 @@
             "patternLeft-path-width": "0",
             "patternLeft-path-fillOpacity": "1",
             "patternLeft-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
+            "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightLeft-repeat": "30m",
+            "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightLeft-polygon": "true",
+            "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
+            "patternSlightLeft-pixelSize": "1.2m",
+            "patternSlightLeft-path-color": "white",
+            "patternSlightLeft-path-width": "0",
+            "patternSlightLeft-path-fillOpacity": "1",
+            "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
             "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
             "patternRight-repeat": "30m",
-            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn or 'slight_left' in lane_turn or 'slight_right' in lane_turn ? 2 : 0)) }}m",
             "patternRight-polygon": "true",
             "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
             "patternRight-pixelSize": "1.2m",
             "patternRight-path-color": "white",
             "patternRight-path-width": "0",
             "patternRight-path-fillOpacity": "1",
-            "patternRight-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m"
+            "patternRight-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
+            "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
+            "patternSlightRight-repeat": "30m",
+            "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
+            "patternSlightRight-polygon": "true",
+            "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
+            "patternSlightRight-pixelSize": "1.2m",
+            "patternSlightRight-path-color": "white",
+            "patternSlightRight-path-width": "0",
+            "patternSlightRight-path-fillOpacity": "1",
+            "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
         }
     },
     "info": [