A repository for testing purposes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1115 lines
64 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. {
  2. "type": "overpass",
  3. "name": {
  4. "en": "Lanes"
  5. },
  6. "query": {
  7. "17": [
  8. "(",
  9. "way[lanes];",
  10. "way['lanes:forward'];",
  11. "way['lanes:backward'];",
  12. "way['parking:lane:left'];",
  13. "way['parking:lane:right'];",
  14. "way['parking:lane:both'];",
  15. ")"
  16. ]
  17. },
  18. "feature": {
  19. "pre": [
  20. "{% set oneway = tags.oneway in ['yes','1'] %}",
  21. "{% set parking_left_type = attribute(tags, 'parking:lane:left')|default(attribute(tags, 'parking:lane:both')) %}",
  22. "{% set parking_left = parking_left_type ? const.parking[parking_left_type]|default(const.parking.other) : const.parking.no %}",
  23. "{% set parking_right_type = attribute(tags, 'parking:lane:right')|default(attribute(tags, 'parking:lane:both')) %}",
  24. "{% set parking_right = parking_right_type ? const.parking[parking_right_type]|default(const.parking.other) : const.parking.no %}",
  25. "{% set cyclelane_left = attribute(tags, 'cycleway:left') == 'lane' ? 2 : ('opposite_lane' in tags.cycleway|split(';') ? 2 : (('lane' in tags.cycleway|split(';')) and not oneway ? 2 : 0)) %}",
  26. "{% set cyclelane_right = attribute(tags, 'cycleway:right') == 'lane' ? 2 : ('lane' in tags.cycleway|split(';') ? 2 : 0) %}",
  27. "{% set cycletrack_left = attribute(tags, 'cycleway:left') == 'track' ? 2 : ('opposite_track' in tags.cycleway|split(';') ? 2 : (('track' in tags.cycleway|split(';')) and not oneway ? 2 : 0)) %}",
  28. "{% set cycletrack_right = attribute(tags, 'cycleway:right') == 'track' ? 2 : ('track' in tags.cycleway|split(';') ? 2 : 0) %}",
  29. "{% set sidewalk_left = tags.sidewalk in ['both', 'left'] ? 2 : 0 %}",
  30. "{% set sidewalk_right = tags.sidewalk in ['both', 'right'] ? 2 : 0 %}",
  31. "{% set lanes = tags.lanes|default(attribute(tags, 'lanes:forward')|default(0) + attribute(tags, 'lanes:backward')|default(0))|default(tags.oneway ? 1 : 2) %}",
  32. "{% set lanes_width = lanes * 3 %}",
  33. "{% set forward_lanes = attribute(tags, 'lanes:forward')|default(oneway ? lanes : lanes // 2) %}",
  34. "{% set backward_lanes = attribute(tags, 'lanes:backward')|default(oneway ? 0 : lanes // 2) %}",
  35. "{% if attribute(tags, 'turn:lanes:backward') %}",
  36. " {% set turn_lanes_backward = attribute(tags, 'turn:lanes:backward')|split('|')|reverse %}",
  37. "{% else %}",
  38. " {% set turn_lanes_backward = ['through','through','through','through','through','through','through','through','through','through','through','through']|slice(0, backward_lanes) %}",
  39. "{% endif %}",
  40. "{% if attribute(tags, 'turn:lanes:forward') or attribute(tags, 'turn:lanes') %}",
  41. " {% set turn_lanes_forward = attribute(tags, 'turn:lanes:forward')|default(attribute(tags, 'turn:lanes'))|split('|') %}",
  42. "{% else %}",
  43. " {% set turn_lanes_forward = ['through','through','through','through','through','through','through','through','through','through','through','through']|slice(0, forward_lanes) %}",
  44. "{% endif %}",
  45. "{% set turn_lanes = turn_lanes_backward|merge(turn_lanes_forward) %}"
  46. ],
  47. "description": "{{ keyTrans('lanes') }}: {% if tags.lanes %}{{ tags.lanes }}{% else %}{{ lanes }}?{% endif %} {% if attribute(tags, 'lanes:forward') or attribute(tags, 'lanes:backward') %}(↑{{ forward_lanes }} ↓{{ backward_lanes }}){% endif %}",
  48. "body": [
  49. "<ul>",
  50. "<li>{{ keyTrans('lanes') }}: {% if tags.lanes %}{{ tags.lanes }}{% else %}{{ trans('unknown') }}{% endif %} {% if attribute(tags, 'lanes:forward') or attribute(tags, 'lanes:backward') %}(↑{{ forward_lanes }} ↓{{ backward_lanes }}){% endif %}</li>",
  51. "{% if tags.sidewalk %}<li>{{ keyTrans('sidewalk') }}: {{ tagTrans('sidewalk', tags.sidewalk) }}</li>{% endif %}",
  52. "{% if parking_left_type %}<li>{{ keyTrans('parking:lane') }} ({{ trans('left') }}): {{ tagTrans('parking:lane', parking_left_type) }}{% endif %}",
  53. "{% if parking_right_type %}<li>{{ keyTrans('parking:lane') }} ({{ trans('right') }}): {{ tagTrans('parking:lane', parking_right_type) }}{% endif %}",
  54. "</ul>"
  55. ],
  56. "markerSymbol": null,
  57. "listMarkerSymbol": "line",
  58. "styles": [
  59. "{% if sidewalk_left %}sidewalk_left,{% endif %}",
  60. "{% if cycletrack_left %}cycletrack_left,{% endif %}",
  61. "{% if parking_left.width %}parking_left,",
  62. " {% if parking_left.dashDistance %}parking_left_dash,",
  63. " {% if parking_left_type == 'diagonal' %}parking_left_dash_diag,",
  64. "{% endif %}{% endif %}{% endif %}",
  65. "{% if cyclelane_left %}cyclelane_left,{% endif %}",
  66. "{% if lanes == 1 %}lane1,sign1,{% else %}",
  67. " {% for i in 1..lanes - 1 %}lane{{ i }},mark{{ i }},sign{{ i }},{% endfor %}",
  68. " lane{{ lanes }},sign{{ lanes }}",
  69. "{% endif %}",
  70. "{% if cyclelane_right %},cyclelane_right{% endif %}",
  71. "{% if parking_right.width %},parking_right",
  72. " {% if parking_right.dashDistance %},parking_right_dash",
  73. " {% if parking_right_type == 'diagonal' %},parking_right_dash_diag",
  74. "{% endif %}{% endif %}{% endif %}",
  75. "{% if cycletrack_right %},cycletrack_right{% endif %}",
  76. "{% if sidewalk_right %},sidewalk_right{% endif %}"
  77. ],
  78. "style": {
  79. "width": "{{ width }}",
  80. "pane": "casing",
  81. "color": "{% if tags.gauge %}{% if not tags.gauge|matches('^\\d+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], tags.gauge / 2000) }}{% endif %}{% else %}#404040{% endif %}"
  82. },
  83. "style:sidewalk_left": {
  84. "width": "2m",
  85. "color": "#4f4fbf",
  86. "offset": "{{ lanes_width / -2 - cyclelane_left - parking_left.width - cycletrack_left - 1 }}m",
  87. "pane": "casing"
  88. },
  89. "style:parking_left": {
  90. "width": "{{ parking_left.width }}m",
  91. "color": "{{ parking_left.color }}",
  92. "offset": "{{ lanes_width / -2 - cyclelane_left - parking_left.width / 2 }}m",
  93. "pane": "casing"
  94. },
  95. "style:parking_left_dash": {
  96. "width": "{{ parking_left.width / (parking_left_type == 'diagonal' ? 2 : 1) }}m",
  97. "color": "{{ parking_left.dashColor }}",
  98. "offset": "{{ lanes_width / -2 - cyclelane_left - parking_left.width / 2 - (parking_left_type == 'diagonal' ? parking_left.width / 4 : 0) }}m",
  99. "lineCap": "butt",
  100. "dashArray": "1,{{ parking_left.dashDistance / map.metersPerPixel }}"
  101. },
  102. "style:parking_left_dash_diag": {
  103. "width": "{{ parking_left.width / 2 }}m",
  104. "color": "{{ parking_left.dashColor }}",
  105. "offset": "{{ lanes_width / -2 - cyclelane_left - parking_left.width / 4 }}m",
  106. "lineCap": "butt",
  107. "dashArray": "1,{{ parking_left.dashDistance / map.metersPerPixel }}",
  108. "dashOffset": "{{ 0.5 / map.metersPerPixel }}"
  109. },
  110. "style:cyclelane_left": {
  111. "width": "2m",
  112. "color": "#af3f3f",
  113. "offset": "{{ lanes_width / -2 - 1 }}m",
  114. "pane": "casing"
  115. },
  116. "style:cyclelane_right": {
  117. "width": "2m",
  118. "color": "#af3f3f",
  119. "offset": "{{ lanes_width / 2 + 1 }}m",
  120. "pane": "casing"
  121. },
  122. "style:cycletrack_left": {
  123. "width": "2m",
  124. "color": "#bf5f3f",
  125. "offset": "{{ lanes_width / -2 - cyclelane_left - parking_left.width - 1 }}m",
  126. "pane": "casing"
  127. },
  128. "style:cycletrack_right": {
  129. "width": "2m",
  130. "color": "#bf5f3f",
  131. "offset": "{{ lanes_width / 2 + cyclelane_right + parking_right.width + 1 }}m",
  132. "pane": "casing"
  133. },
  134. "style:parking_right": {
  135. "width": "{{ parking_left.width }}m",
  136. "color": "{{ parking_left.color }}",
  137. "offset": "{{ lanes_width / 2 + cyclelane_right + parking_right.width / 2 }}m",
  138. "pane": "casing"
  139. },
  140. "style:parking_right_dash": {
  141. "width": "{{ parking_right.width / (parking_right_type == 'diagonal' ? 2 : 1) }}m",
  142. "color": "{{ parking_right.dashColor }}",
  143. "offset": "{{ lanes_width / 2 + cyclelane_right + parking_right.width / 2 + (parking_right_type == 'diagonal' ? parking_right.width / 4 : 0) }}m",
  144. "lineCap": "butt",
  145. "dashArray": "1,{{ parking_right.dashDistance / map.metersPerPixel }}"
  146. },
  147. "style:parking_right_dash_diag": {
  148. "width": "{{ parking_right.width / 2 }}m",
  149. "color": "{{ parking_right.dashColor }}",
  150. "offset": "{{ lanes_width / 2 + cyclelane_right + parking_right.width / 4 }}m",
  151. "lineCap": "butt",
  152. "dashArray": "1,{{ parking_right.dashDistance / map.metersPerPixel }}",
  153. "dashOffset": "{{ 0.5 / map.metersPerPixel }}"
  154. },
  155. "style:sidewalk_right": {
  156. "width": "2m",
  157. "color": "#4f4fbf",
  158. "offset": "{{ lanes_width / 2 + cyclelane_right + parking_right.width + cycletrack_right + 1 }}m",
  159. "pane": "casing"
  160. },
  161. "style:lane1": {
  162. "width": "3.1m",
  163. "offset": "{{ lanes_width / -2 + 1.5 }}m",
  164. "color": "grey",
  165. "pane": "casing"
  166. },
  167. "style:lane2": {
  168. "width": "3.1m",
  169. "offset": "{{ lanes_width / -2 + 4.5 }}m",
  170. "color": "grey",
  171. "pane": "casing"
  172. },
  173. "style:lane3": {
  174. "width": "3.1m",
  175. "offset": "{{ lanes_width / -2 + 7.5 }}m",
  176. "color": "grey",
  177. "pane": "casing"
  178. },
  179. "style:lane4": {
  180. "width": "3.1m",
  181. "offset": "{{ lanes_width / -2 + 10.5 }}m",
  182. "color": "grey",
  183. "pane": "casing"
  184. },
  185. "style:lane5": {
  186. "width": "3.1m",
  187. "offset": "{{ lanes_width / -2 + 13.5 }}m",
  188. "color": "grey",
  189. "pane": "casing"
  190. },
  191. "style:lane6": {
  192. "width": "3.1m",
  193. "offset": "{{ lanes_width / -2 + 16.5 }}m",
  194. "color": "grey",
  195. "pane": "casing"
  196. },
  197. "style:lane7": {
  198. "width": "3.1m",
  199. "offset": "{{ lanes_width / -2 + 19.5 }}m",
  200. "color": "grey",
  201. "pane": "casing"
  202. },
  203. "style:lane8": {
  204. "width": "3.1m",
  205. "offset": "{{ lanes_width / -2 + 22.5 }}m",
  206. "color": "grey",
  207. "pane": "casing"
  208. },
  209. "style:lane9": {
  210. "width": "3.1m",
  211. "offset": "{{ lanes_width / -2 + 25.5 }}m",
  212. "color": "grey",
  213. "pane": "casing"
  214. },
  215. "style:lane10": {
  216. "width": "3.1m",
  217. "offset": "{{ lanes_width / -2 + 28.5 }}m",
  218. "color": "grey",
  219. "pane": "casing"
  220. },
  221. "style:lane11": {
  222. "width": "3.1m",
  223. "offset": "{{ lanes_width / -2 + 31.5 }}m",
  224. "color": "grey",
  225. "pane": "casing"
  226. },
  227. "style:lane12": {
  228. "width": "3.1m",
  229. "offset": "{{ lanes_width / -2 + 34.5 }}m",
  230. "color": "grey",
  231. "pane": "casing"
  232. },
  233. "style:mark1": {
  234. "width": "1",
  235. "offset": "{{ lanes_width / -2 + 3 }}m",
  236. "dashArray": "{% if lanes - forward_lanes != 1 and backward_lanes != 1 %}2,8{% else %}5,5{% endif %}",
  237. "color": "white"
  238. },
  239. "style:mark2": {
  240. "width": "1",
  241. "offset": "{{ lanes_width / -2 + 6 }}m",
  242. "dashArray": "{% if lanes - forward_lanes != 2 and backward_lanes != 2 %}2,8{% else %}5,5{% endif %}",
  243. "color": "white"
  244. },
  245. "style:mark3": {
  246. "width": "1",
  247. "offset": "{{ lanes_width / -2 + 9 }}m",
  248. "dashArray": "{% if lanes - forward_lanes != 3 and backward_lanes != 3 %}2,8{% else %}5,5{% endif %}",
  249. "color": "white"
  250. },
  251. "style:mark4": {
  252. "width": "1",
  253. "offset": "{{ lanes_width / -2 + 12 }}m",
  254. "dashArray": "{% if lanes - forward_lanes != 4 and backward_lanes != 4 %}2,8{% else %}5,5{% endif %}",
  255. "color": "white"
  256. },
  257. "style:mark5": {
  258. "width": "1",
  259. "offset": "{{ lanes_width / -2 + 15 }}m",
  260. "dashArray": "{% if lanes - forward_lanes != 5 and backward_lanes != 5 %}2,8{% else %}5,5{% endif %}",
  261. "color": "white"
  262. },
  263. "style:mark6": {
  264. "width": "1",
  265. "offset": "{{ lanes_width / -2 + 18 }}m",
  266. "dashArray": "{% if lanes - forward_lanes != 6 and backward_lanes != 6 %}2,8{% else %}5,5{% endif %}",
  267. "color": "white"
  268. },
  269. "style:mark7": {
  270. "width": "1",
  271. "offset": "{{ lanes_width / -2 + 18 }}m",
  272. "dashArray": "{% if lanes - forward_lanes != 7 and backward_lanes != 7 %}2,8{% else %}5,5{% endif %}",
  273. "color": "white"
  274. },
  275. "style:mark8": {
  276. "width": "1",
  277. "offset": "{{ lanes_width / -2 + 18 }}m",
  278. "dashArray": "{% if lanes - forward_lanes != 8 and backward_lanes != 8 %}2,8{% else %}5,5{% endif %}",
  279. "color": "white"
  280. },
  281. "style:mark9": {
  282. "width": "1",
  283. "offset": "{{ lanes_width / -2 + 18 }}m",
  284. "dashArray": "{% if lanes - forward_lanes != 9 and backward_lanes != 9 %}2,8{% else %}5,5{% endif %}",
  285. "color": "white"
  286. },
  287. "style:mark10": {
  288. "width": "1",
  289. "offset": "{{ lanes_width / -2 + 18 }}m",
  290. "dashArray": "{% if lanes - forward_lanes != 10 and backward_lanes != 10 %}2,8{% else %}5,5{% endif %}",
  291. "color": "white"
  292. },
  293. "style:mark11": {
  294. "width": "1",
  295. "offset": "{{ lanes_width / -2 + 18 }}m",
  296. "dashArray": "{% if lanes - forward_lanes != 11 and backward_lanes != 11 %}2,8{% else %}5,5{% endif %}",
  297. "color": "white"
  298. },
  299. "style:sign1": {
  300. "_": "{% set lane_forward = backward_lanes < 1 %}{% set lane_turn = turn_lanes[1 - 1]|split(';') %}",
  301. "width": "0",
  302. "pattern0": "dash",
  303. "pattern0-repeat": "30m",
  304. "pattern0-pixelSize": "3m",
  305. "pattern0-offset": "15.0m",
  306. "pattern0-path-color": "white",
  307. "pattern0-path-width": "0.3m",
  308. "pattern0-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 }}m",
  309. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  310. "patternThrough-repeat": "30m",
  311. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  312. "patternThrough-polygon": "true",
  313. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  314. "patternThrough-pixelSize": "1.2m",
  315. "patternThrough-path-color": "white",
  316. "patternThrough-path-width": "0",
  317. "patternThrough-path-fillOpacity": "1",
  318. "patternThrough-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 }}m",
  319. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  320. "patternLeft-repeat": "30m",
  321. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  322. "patternLeft-polygon": "true",
  323. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  324. "patternLeft-pixelSize": "1.2m",
  325. "patternLeft-path-color": "white",
  326. "patternLeft-path-width": "0",
  327. "patternLeft-path-fillOpacity": "1",
  328. "patternLeft-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  329. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  330. "patternSlightLeft-repeat": "30m",
  331. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  332. "patternSlightLeft-polygon": "true",
  333. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  334. "patternSlightLeft-pixelSize": "1.2m",
  335. "patternSlightLeft-path-color": "white",
  336. "patternSlightLeft-path-width": "0",
  337. "patternSlightLeft-path-fillOpacity": "1",
  338. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  339. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  340. "patternRight-repeat": "30m",
  341. "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",
  342. "patternRight-polygon": "true",
  343. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  344. "patternRight-pixelSize": "1.2m",
  345. "patternRight-path-color": "white",
  346. "patternRight-path-width": "0",
  347. "patternRight-path-fillOpacity": "1",
  348. "patternRight-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  349. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  350. "patternSlightRight-repeat": "30m",
  351. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  352. "patternSlightRight-polygon": "true",
  353. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  354. "patternSlightRight-pixelSize": "1.2m",
  355. "patternSlightRight-path-color": "white",
  356. "patternSlightRight-path-width": "0",
  357. "patternSlightRight-path-fillOpacity": "1",
  358. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 1 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  359. },
  360. "style:sign2": {
  361. "_": "{% set lane_forward = backward_lanes < 2 %}{% set lane_turn = turn_lanes[2 - 1]|split(';') %}",
  362. "width": "0",
  363. "pattern0": "dash",
  364. "pattern0-repeat": "30m",
  365. "pattern0-pixelSize": "3m",
  366. "pattern0-offset": "15.0m",
  367. "pattern0-path-color": "white",
  368. "pattern0-path-width": "0.3m",
  369. "pattern0-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 }}m",
  370. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  371. "patternThrough-repeat": "30m",
  372. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  373. "patternThrough-polygon": "true",
  374. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  375. "patternThrough-pixelSize": "1.2m",
  376. "patternThrough-path-color": "white",
  377. "patternThrough-path-width": "0",
  378. "patternThrough-path-fillOpacity": "1",
  379. "patternThrough-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 }}m",
  380. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  381. "patternLeft-repeat": "30m",
  382. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  383. "patternLeft-polygon": "true",
  384. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  385. "patternLeft-pixelSize": "1.2m",
  386. "patternLeft-path-color": "white",
  387. "patternLeft-path-width": "0",
  388. "patternLeft-path-fillOpacity": "1",
  389. "patternLeft-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  390. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  391. "patternSlightLeft-repeat": "30m",
  392. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  393. "patternSlightLeft-polygon": "true",
  394. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  395. "patternSlightLeft-pixelSize": "1.2m",
  396. "patternSlightLeft-path-color": "white",
  397. "patternSlightLeft-path-width": "0",
  398. "patternSlightLeft-path-fillOpacity": "1",
  399. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  400. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  401. "patternRight-repeat": "30m",
  402. "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",
  403. "patternRight-polygon": "true",
  404. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  405. "patternRight-pixelSize": "1.2m",
  406. "patternRight-path-color": "white",
  407. "patternRight-path-width": "0",
  408. "patternRight-path-fillOpacity": "1",
  409. "patternRight-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  410. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  411. "patternSlightRight-repeat": "30m",
  412. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  413. "patternSlightRight-polygon": "true",
  414. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  415. "patternSlightRight-pixelSize": "1.2m",
  416. "patternSlightRight-path-color": "white",
  417. "patternSlightRight-path-width": "0",
  418. "patternSlightRight-path-fillOpacity": "1",
  419. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 2 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  420. },
  421. "style:sign3": {
  422. "_": "{% set lane_forward = backward_lanes < 3 %}{% set lane_turn = turn_lanes[3 - 1]|split(';') %}",
  423. "width": "0",
  424. "pattern0": "dash",
  425. "pattern0-repeat": "30m",
  426. "pattern0-pixelSize": "3m",
  427. "pattern0-offset": "15.0m",
  428. "pattern0-path-color": "white",
  429. "pattern0-path-width": "0.3m",
  430. "pattern0-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 }}m",
  431. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  432. "patternThrough-repeat": "30m",
  433. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  434. "patternThrough-polygon": "true",
  435. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  436. "patternThrough-pixelSize": "1.2m",
  437. "patternThrough-path-color": "white",
  438. "patternThrough-path-width": "0",
  439. "patternThrough-path-fillOpacity": "1",
  440. "patternThrough-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 }}m",
  441. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  442. "patternLeft-repeat": "30m",
  443. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  444. "patternLeft-polygon": "true",
  445. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  446. "patternLeft-pixelSize": "1.2m",
  447. "patternLeft-path-color": "white",
  448. "patternLeft-path-width": "0",
  449. "patternLeft-path-fillOpacity": "1",
  450. "patternLeft-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  451. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  452. "patternSlightLeft-repeat": "30m",
  453. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  454. "patternSlightLeft-polygon": "true",
  455. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  456. "patternSlightLeft-pixelSize": "1.2m",
  457. "patternSlightLeft-path-color": "white",
  458. "patternSlightLeft-path-width": "0",
  459. "patternSlightLeft-path-fillOpacity": "1",
  460. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  461. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  462. "patternRight-repeat": "30m",
  463. "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",
  464. "patternRight-polygon": "true",
  465. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  466. "patternRight-pixelSize": "1.2m",
  467. "patternRight-path-color": "white",
  468. "patternRight-path-width": "0",
  469. "patternRight-path-fillOpacity": "1",
  470. "patternRight-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  471. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  472. "patternSlightRight-repeat": "30m",
  473. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  474. "patternSlightRight-polygon": "true",
  475. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  476. "patternSlightRight-pixelSize": "1.2m",
  477. "patternSlightRight-path-color": "white",
  478. "patternSlightRight-path-width": "0",
  479. "patternSlightRight-path-fillOpacity": "1",
  480. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 3 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  481. },
  482. "style:sign4": {
  483. "_": "{% set lane_forward = backward_lanes < 4 %}{% set lane_turn = turn_lanes[4 - 1]|split(';') %}",
  484. "width": "0",
  485. "pattern0": "dash",
  486. "pattern0-repeat": "30m",
  487. "pattern0-pixelSize": "3m",
  488. "pattern0-offset": "15.0m",
  489. "pattern0-path-color": "white",
  490. "pattern0-path-width": "0.3m",
  491. "pattern0-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 }}m",
  492. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  493. "patternThrough-repeat": "30m",
  494. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  495. "patternThrough-polygon": "true",
  496. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  497. "patternThrough-pixelSize": "1.2m",
  498. "patternThrough-path-color": "white",
  499. "patternThrough-path-width": "0",
  500. "patternThrough-path-fillOpacity": "1",
  501. "patternThrough-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 }}m",
  502. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  503. "patternLeft-repeat": "30m",
  504. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  505. "patternLeft-polygon": "true",
  506. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  507. "patternLeft-pixelSize": "1.2m",
  508. "patternLeft-path-color": "white",
  509. "patternLeft-path-width": "0",
  510. "patternLeft-path-fillOpacity": "1",
  511. "patternLeft-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  512. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  513. "patternSlightLeft-repeat": "30m",
  514. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  515. "patternSlightLeft-polygon": "true",
  516. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  517. "patternSlightLeft-pixelSize": "1.2m",
  518. "patternSlightLeft-path-color": "white",
  519. "patternSlightLeft-path-width": "0",
  520. "patternSlightLeft-path-fillOpacity": "1",
  521. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  522. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  523. "patternRight-repeat": "30m",
  524. "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",
  525. "patternRight-polygon": "true",
  526. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  527. "patternRight-pixelSize": "1.2m",
  528. "patternRight-path-color": "white",
  529. "patternRight-path-width": "0",
  530. "patternRight-path-fillOpacity": "1",
  531. "patternRight-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  532. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  533. "patternSlightRight-repeat": "30m",
  534. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  535. "patternSlightRight-polygon": "true",
  536. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  537. "patternSlightRight-pixelSize": "1.2m",
  538. "patternSlightRight-path-color": "white",
  539. "patternSlightRight-path-width": "0",
  540. "patternSlightRight-path-fillOpacity": "1",
  541. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 4 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  542. },
  543. "style:sign5": {
  544. "_": "{% set lane_forward = backward_lanes < 5 %}{% set lane_turn = turn_lanes[5 - 1]|split(';') %}",
  545. "width": "0",
  546. "pattern0": "dash",
  547. "pattern0-repeat": "30m",
  548. "pattern0-pixelSize": "3m",
  549. "pattern0-offset": "15.0m",
  550. "pattern0-path-color": "white",
  551. "pattern0-path-width": "0.3m",
  552. "pattern0-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 }}m",
  553. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  554. "patternThrough-repeat": "30m",
  555. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  556. "patternThrough-polygon": "true",
  557. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  558. "patternThrough-pixelSize": "1.2m",
  559. "patternThrough-path-color": "white",
  560. "patternThrough-path-width": "0",
  561. "patternThrough-path-fillOpacity": "1",
  562. "patternThrough-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 }}m",
  563. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  564. "patternLeft-repeat": "30m",
  565. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  566. "patternLeft-polygon": "true",
  567. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  568. "patternLeft-pixelSize": "1.2m",
  569. "patternLeft-path-color": "white",
  570. "patternLeft-path-width": "0",
  571. "patternLeft-path-fillOpacity": "1",
  572. "patternLeft-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  573. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  574. "patternSlightLeft-repeat": "30m",
  575. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  576. "patternSlightLeft-polygon": "true",
  577. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  578. "patternSlightLeft-pixelSize": "1.2m",
  579. "patternSlightLeft-path-color": "white",
  580. "patternSlightLeft-path-width": "0",
  581. "patternSlightLeft-path-fillOpacity": "1",
  582. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  583. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  584. "patternRight-repeat": "30m",
  585. "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",
  586. "patternRight-polygon": "true",
  587. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  588. "patternRight-pixelSize": "1.2m",
  589. "patternRight-path-color": "white",
  590. "patternRight-path-width": "0",
  591. "patternRight-path-fillOpacity": "1",
  592. "patternRight-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  593. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  594. "patternSlightRight-repeat": "30m",
  595. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  596. "patternSlightRight-polygon": "true",
  597. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  598. "patternSlightRight-pixelSize": "1.2m",
  599. "patternSlightRight-path-color": "white",
  600. "patternSlightRight-path-width": "0",
  601. "patternSlightRight-path-fillOpacity": "1",
  602. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 5 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  603. },
  604. "style:sign6": {
  605. "_": "{% set lane_forward = backward_lanes < 6 %}{% set lane_turn = turn_lanes[6 - 1]|split(';') %}",
  606. "width": "0",
  607. "pattern0": "dash",
  608. "pattern0-repeat": "30m",
  609. "pattern0-pixelSize": "3m",
  610. "pattern0-offset": "15.0m",
  611. "pattern0-path-color": "white",
  612. "pattern0-path-width": "0.3m",
  613. "pattern0-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 }}m",
  614. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  615. "patternThrough-repeat": "30m",
  616. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  617. "patternThrough-polygon": "true",
  618. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  619. "patternThrough-pixelSize": "1.2m",
  620. "patternThrough-path-color": "white",
  621. "patternThrough-path-width": "0",
  622. "patternThrough-path-fillOpacity": "1",
  623. "patternThrough-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 }}m",
  624. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  625. "patternLeft-repeat": "30m",
  626. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  627. "patternLeft-polygon": "true",
  628. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  629. "patternLeft-pixelSize": "1.2m",
  630. "patternLeft-path-color": "white",
  631. "patternLeft-path-width": "0",
  632. "patternLeft-path-fillOpacity": "1",
  633. "patternLeft-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  634. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  635. "patternSlightLeft-repeat": "30m",
  636. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  637. "patternSlightLeft-polygon": "true",
  638. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  639. "patternSlightLeft-pixelSize": "1.2m",
  640. "patternSlightLeft-path-color": "white",
  641. "patternSlightLeft-path-width": "0",
  642. "patternSlightLeft-path-fillOpacity": "1",
  643. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  644. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  645. "patternRight-repeat": "30m",
  646. "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",
  647. "patternRight-polygon": "true",
  648. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  649. "patternRight-pixelSize": "1.2m",
  650. "patternRight-path-color": "white",
  651. "patternRight-path-width": "0",
  652. "patternRight-path-fillOpacity": "1",
  653. "patternRight-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  654. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  655. "patternSlightRight-repeat": "30m",
  656. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  657. "patternSlightRight-polygon": "true",
  658. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  659. "patternSlightRight-pixelSize": "1.2m",
  660. "patternSlightRight-path-color": "white",
  661. "patternSlightRight-path-width": "0",
  662. "patternSlightRight-path-fillOpacity": "1",
  663. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 6 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  664. },
  665. "style:sign7": {
  666. "_": "{% set lane_forward = backward_lanes < 7 %}{% set lane_turn = turn_lanes[7 - 1]|split(';') %}",
  667. "width": "0",
  668. "pattern0": "dash",
  669. "pattern0-repeat": "30m",
  670. "pattern0-pixelSize": "3m",
  671. "pattern0-offset": "15.0m",
  672. "pattern0-path-color": "white",
  673. "pattern0-path-width": "0.3m",
  674. "pattern0-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 }}m",
  675. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  676. "patternThrough-repeat": "30m",
  677. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  678. "patternThrough-polygon": "true",
  679. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  680. "patternThrough-pixelSize": "1.2m",
  681. "patternThrough-path-color": "white",
  682. "patternThrough-path-width": "0",
  683. "patternThrough-path-fillOpacity": "1",
  684. "patternThrough-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 }}m",
  685. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  686. "patternLeft-repeat": "30m",
  687. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  688. "patternLeft-polygon": "true",
  689. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  690. "patternLeft-pixelSize": "1.2m",
  691. "patternLeft-path-color": "white",
  692. "patternLeft-path-width": "0",
  693. "patternLeft-path-fillOpacity": "1",
  694. "patternLeft-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  695. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  696. "patternSlightLeft-repeat": "30m",
  697. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  698. "patternSlightLeft-polygon": "true",
  699. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  700. "patternSlightLeft-pixelSize": "1.2m",
  701. "patternSlightLeft-path-color": "white",
  702. "patternSlightLeft-path-width": "0",
  703. "patternSlightLeft-path-fillOpacity": "1",
  704. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  705. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  706. "patternRight-repeat": "30m",
  707. "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",
  708. "patternRight-polygon": "true",
  709. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  710. "patternRight-pixelSize": "1.2m",
  711. "patternRight-path-color": "white",
  712. "patternRight-path-width": "0",
  713. "patternRight-path-fillOpacity": "1",
  714. "patternRight-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  715. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  716. "patternSlightRight-repeat": "30m",
  717. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  718. "patternSlightRight-polygon": "true",
  719. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  720. "patternSlightRight-pixelSize": "1.2m",
  721. "patternSlightRight-path-color": "white",
  722. "patternSlightRight-path-width": "0",
  723. "patternSlightRight-path-fillOpacity": "1",
  724. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 7 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  725. },
  726. "style:sign8": {
  727. "_": "{% set lane_forward = backward_lanes < 8 %}{% set lane_turn = turn_lanes[8 - 1]|split(';') %}",
  728. "width": "0",
  729. "pattern0": "dash",
  730. "pattern0-repeat": "30m",
  731. "pattern0-pixelSize": "3m",
  732. "pattern0-offset": "15.0m",
  733. "pattern0-path-color": "white",
  734. "pattern0-path-width": "0.3m",
  735. "pattern0-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 }}m",
  736. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  737. "patternThrough-repeat": "30m",
  738. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  739. "patternThrough-polygon": "true",
  740. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  741. "patternThrough-pixelSize": "1.2m",
  742. "patternThrough-path-color": "white",
  743. "patternThrough-path-width": "0",
  744. "patternThrough-path-fillOpacity": "1",
  745. "patternThrough-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 }}m",
  746. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  747. "patternLeft-repeat": "30m",
  748. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  749. "patternLeft-polygon": "true",
  750. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  751. "patternLeft-pixelSize": "1.2m",
  752. "patternLeft-path-color": "white",
  753. "patternLeft-path-width": "0",
  754. "patternLeft-path-fillOpacity": "1",
  755. "patternLeft-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  756. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  757. "patternSlightLeft-repeat": "30m",
  758. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  759. "patternSlightLeft-polygon": "true",
  760. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  761. "patternSlightLeft-pixelSize": "1.2m",
  762. "patternSlightLeft-path-color": "white",
  763. "patternSlightLeft-path-width": "0",
  764. "patternSlightLeft-path-fillOpacity": "1",
  765. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  766. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  767. "patternRight-repeat": "30m",
  768. "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",
  769. "patternRight-polygon": "true",
  770. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  771. "patternRight-pixelSize": "1.2m",
  772. "patternRight-path-color": "white",
  773. "patternRight-path-width": "0",
  774. "patternRight-path-fillOpacity": "1",
  775. "patternRight-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  776. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  777. "patternSlightRight-repeat": "30m",
  778. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  779. "patternSlightRight-polygon": "true",
  780. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  781. "patternSlightRight-pixelSize": "1.2m",
  782. "patternSlightRight-path-color": "white",
  783. "patternSlightRight-path-width": "0",
  784. "patternSlightRight-path-fillOpacity": "1",
  785. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 8 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  786. },
  787. "style:sign9": {
  788. "_": "{% set lane_forward = backward_lanes < 9 %}{% set lane_turn = turn_lanes[9 - 1]|split(';') %}",
  789. "width": "0",
  790. "pattern0": "dash",
  791. "pattern0-repeat": "30m",
  792. "pattern0-pixelSize": "3m",
  793. "pattern0-offset": "15.0m",
  794. "pattern0-path-color": "white",
  795. "pattern0-path-width": "0.3m",
  796. "pattern0-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 }}m",
  797. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  798. "patternThrough-repeat": "30m",
  799. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  800. "patternThrough-polygon": "true",
  801. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  802. "patternThrough-pixelSize": "1.2m",
  803. "patternThrough-path-color": "white",
  804. "patternThrough-path-width": "0",
  805. "patternThrough-path-fillOpacity": "1",
  806. "patternThrough-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 }}m",
  807. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  808. "patternLeft-repeat": "30m",
  809. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  810. "patternLeft-polygon": "true",
  811. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  812. "patternLeft-pixelSize": "1.2m",
  813. "patternLeft-path-color": "white",
  814. "patternLeft-path-width": "0",
  815. "patternLeft-path-fillOpacity": "1",
  816. "patternLeft-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  817. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  818. "patternSlightLeft-repeat": "30m",
  819. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  820. "patternSlightLeft-polygon": "true",
  821. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  822. "patternSlightLeft-pixelSize": "1.2m",
  823. "patternSlightLeft-path-color": "white",
  824. "patternSlightLeft-path-width": "0",
  825. "patternSlightLeft-path-fillOpacity": "1",
  826. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  827. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  828. "patternRight-repeat": "30m",
  829. "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",
  830. "patternRight-polygon": "true",
  831. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  832. "patternRight-pixelSize": "1.2m",
  833. "patternRight-path-color": "white",
  834. "patternRight-path-width": "0",
  835. "patternRight-path-fillOpacity": "1",
  836. "patternRight-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  837. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  838. "patternSlightRight-repeat": "30m",
  839. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  840. "patternSlightRight-polygon": "true",
  841. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  842. "patternSlightRight-pixelSize": "1.2m",
  843. "patternSlightRight-path-color": "white",
  844. "patternSlightRight-path-width": "0",
  845. "patternSlightRight-path-fillOpacity": "1",
  846. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 9 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  847. },
  848. "style:sign10": {
  849. "_": "{% set lane_forward = backward_lanes < 10 %}{% set lane_turn = turn_lanes[10 - 1]|split(';') %}",
  850. "width": "0",
  851. "pattern0": "dash",
  852. "pattern0-repeat": "30m",
  853. "pattern0-pixelSize": "3m",
  854. "pattern0-offset": "15.0m",
  855. "pattern0-path-color": "white",
  856. "pattern0-path-width": "0.3m",
  857. "pattern0-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 }}m",
  858. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  859. "patternThrough-repeat": "30m",
  860. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  861. "patternThrough-polygon": "true",
  862. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  863. "patternThrough-pixelSize": "1.2m",
  864. "patternThrough-path-color": "white",
  865. "patternThrough-path-width": "0",
  866. "patternThrough-path-fillOpacity": "1",
  867. "patternThrough-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 }}m",
  868. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  869. "patternLeft-repeat": "30m",
  870. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  871. "patternLeft-polygon": "true",
  872. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  873. "patternLeft-pixelSize": "1.2m",
  874. "patternLeft-path-color": "white",
  875. "patternLeft-path-width": "0",
  876. "patternLeft-path-fillOpacity": "1",
  877. "patternLeft-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  878. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  879. "patternSlightLeft-repeat": "30m",
  880. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  881. "patternSlightLeft-polygon": "true",
  882. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  883. "patternSlightLeft-pixelSize": "1.2m",
  884. "patternSlightLeft-path-color": "white",
  885. "patternSlightLeft-path-width": "0",
  886. "patternSlightLeft-path-fillOpacity": "1",
  887. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  888. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  889. "patternRight-repeat": "30m",
  890. "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",
  891. "patternRight-polygon": "true",
  892. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  893. "patternRight-pixelSize": "1.2m",
  894. "patternRight-path-color": "white",
  895. "patternRight-path-width": "0",
  896. "patternRight-path-fillOpacity": "1",
  897. "patternRight-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  898. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  899. "patternSlightRight-repeat": "30m",
  900. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  901. "patternSlightRight-polygon": "true",
  902. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  903. "patternSlightRight-pixelSize": "1.2m",
  904. "patternSlightRight-path-color": "white",
  905. "patternSlightRight-path-width": "0",
  906. "patternSlightRight-path-fillOpacity": "1",
  907. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 10 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  908. },
  909. "style:sign11": {
  910. "_": "{% set lane_forward = backward_lanes < 11 %}{% set lane_turn = turn_lanes[11 - 1]|split(';') %}",
  911. "width": "0",
  912. "pattern0": "dash",
  913. "pattern0-repeat": "30m",
  914. "pattern0-pixelSize": "3m",
  915. "pattern0-offset": "15.0m",
  916. "pattern0-path-color": "white",
  917. "pattern0-path-width": "0.3m",
  918. "pattern0-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 }}m",
  919. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  920. "patternThrough-repeat": "30m",
  921. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  922. "patternThrough-polygon": "true",
  923. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  924. "patternThrough-pixelSize": "1.2m",
  925. "patternThrough-path-color": "white",
  926. "patternThrough-path-width": "0",
  927. "patternThrough-path-fillOpacity": "1",
  928. "patternThrough-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 }}m",
  929. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  930. "patternLeft-repeat": "30m",
  931. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  932. "patternLeft-polygon": "true",
  933. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  934. "patternLeft-pixelSize": "1.2m",
  935. "patternLeft-path-color": "white",
  936. "patternLeft-path-width": "0",
  937. "patternLeft-path-fillOpacity": "1",
  938. "patternLeft-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  939. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  940. "patternSlightLeft-repeat": "30m",
  941. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  942. "patternSlightLeft-polygon": "true",
  943. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  944. "patternSlightLeft-pixelSize": "1.2m",
  945. "patternSlightLeft-path-color": "white",
  946. "patternSlightLeft-path-width": "0",
  947. "patternSlightLeft-path-fillOpacity": "1",
  948. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  949. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  950. "patternRight-repeat": "30m",
  951. "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",
  952. "patternRight-polygon": "true",
  953. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  954. "patternRight-pixelSize": "1.2m",
  955. "patternRight-path-color": "white",
  956. "patternRight-path-width": "0",
  957. "patternRight-path-fillOpacity": "1",
  958. "patternRight-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  959. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  960. "patternSlightRight-repeat": "30m",
  961. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  962. "patternSlightRight-polygon": "true",
  963. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  964. "patternSlightRight-pixelSize": "1.2m",
  965. "patternSlightRight-path-color": "white",
  966. "patternSlightRight-path-width": "0",
  967. "patternSlightRight-path-fillOpacity": "1",
  968. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 11 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  969. },
  970. "style:sign12": {
  971. "_": "{% set lane_forward = backward_lanes < 12 %}{% set lane_turn = turn_lanes[12 - 1]|split(';') %}",
  972. "width": "0",
  973. "pattern0": "dash",
  974. "pattern0-repeat": "30m",
  975. "pattern0-pixelSize": "3m",
  976. "pattern0-offset": "15.0m",
  977. "pattern0-path-color": "white",
  978. "pattern0-path-width": "0.3m",
  979. "pattern0-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 }}m",
  980. "patternThrough": "{% if 'through' in lane_turn or 'none' in lane_turn or '' in lane_turn %}arrowHead{% endif %}",
  981. "patternThrough-repeat": "30m",
  982. "patternThrough-offset": "{{ lane_forward ? '17m' : '12m' }}",
  983. "patternThrough-polygon": "true",
  984. "patternThrough-angleCorrection": "{{ lane_forward ? 0 : 180 }}",
  985. "patternThrough-pixelSize": "1.2m",
  986. "patternThrough-path-color": "white",
  987. "patternThrough-path-width": "0",
  988. "patternThrough-path-fillOpacity": "1",
  989. "patternThrough-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 }}m",
  990. "patternLeft": "{% if 'left' in lane_turn %}arrowHead{% endif %}",
  991. "patternLeft-repeat": "30m",
  992. "patternLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  993. "patternLeft-polygon": "true",
  994. "patternLeft-angleCorrection": "{{ lane_forward ? -90 : 90 }}",
  995. "patternLeft-pixelSize": "1.2m",
  996. "patternLeft-path-color": "white",
  997. "patternLeft-path-width": "0",
  998. "patternLeft-path-fillOpacity": "1",
  999. "patternLeft-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? -1.25 : 1.25) }}m",
  1000. "patternSlightLeft": "{% if 'slight_left' in lane_turn %}arrowHead{% endif %}",
  1001. "patternSlightLeft-repeat": "30m",
  1002. "patternSlightLeft-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  1003. "patternSlightLeft-polygon": "true",
  1004. "patternSlightLeft-angleCorrection": "{{ lane_forward ? -45 : 45 }}",
  1005. "patternSlightLeft-pixelSize": "1.2m",
  1006. "patternSlightLeft-path-color": "white",
  1007. "patternSlightLeft-path-width": "0",
  1008. "patternSlightLeft-path-fillOpacity": "1",
  1009. "patternSlightLeft-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? -0.75 : 0.75) }}m",
  1010. "patternRight": "{% if 'right' in lane_turn %}arrowHead{% endif %}",
  1011. "patternRight-repeat": "30m",
  1012. "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",
  1013. "patternRight-polygon": "true",
  1014. "patternRight-angleCorrection": "{{ lane_forward ? 90 : -90 }}",
  1015. "patternRight-pixelSize": "1.2m",
  1016. "patternRight-path-color": "white",
  1017. "patternRight-path-width": "0",
  1018. "patternRight-path-fillOpacity": "1",
  1019. "patternRight-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? 1.25 : -1.25) }}m",
  1020. "patternSlightRight": "{% if 'slight_right' in lane_turn %}arrowHead{% endif %}",
  1021. "patternSlightRight-repeat": "30m",
  1022. "patternSlightRight-offset": "{{ 15 + (lane_forward ? 1 : -1) * (2 - ('through' in lane_turn ? 2 : 0)) }}m",
  1023. "patternSlightRight-polygon": "true",
  1024. "patternSlightRight-angleCorrection": "{{ lane_forward ? 45 : -45 }}",
  1025. "patternSlightRight-pixelSize": "1.2m",
  1026. "patternSlightRight-path-color": "white",
  1027. "patternSlightRight-path-width": "0",
  1028. "patternSlightRight-path-fillOpacity": "1",
  1029. "patternSlightRight-lineOffset": "{{ lanes_width / -2 + 12 * 3 - 1.5 + (lane_forward ? 0.75 : -0.75) }}m"
  1030. }
  1031. },
  1032. "info": [
  1033. "<table>",
  1034. " <tr>",
  1035. " <td>{{ markerLine({'styles':'left,right,mark', 'style:left': { 'width': 3, 'color': 'grey', 'offset': -1.5 },'style:right': { 'width': 3, 'color': 'grey', 'offset': 1.5 },'style:mark': { 'width': 1, 'color': 'white'} })|raw }}</td>",
  1036. " <td>{{ keyTrans('lanes') }}</td>",
  1037. " </tr>",
  1038. " <tr>",
  1039. " <td>{{ markerLine({'styles':'left,right,mark', 'style:left': { 'width': 3, 'color': 'grey', 'offset': -1.5 },'style:right': { 'width': 3, 'color': 'grey', 'offset': 1.5 },'style:mark': { 'width': 1, 'color': 'white', 'dashArray': '5,5'} })|raw }}</td>",
  1040. " <td>{{ keyTrans('lanes') }}</td>",
  1041. " </tr>",
  1042. " <tr>",
  1043. " <td>{{ markerLine({ 'width': 5, 'color': 'orange' })|raw }}</td>",
  1044. " <td>{{ keyTrans('parking:lane') }}</td>",
  1045. " </tr>",
  1046. " <tr>",
  1047. " <td>{{ markerLine({ 'styles':'lane,mark', 'style:lane': { 'width': 5, 'color': 'orange' }, 'style:mark': { 'width': 5, 'color': const.parking.parallel.dashColor, 'dashArray': '1,10' } })|raw }}</td>",
  1048. " <td>{{ keyTrans('parking:lane') }}: {{ tagTrans('parking:lane', 'parallel') }}</td>",
  1049. " </tr>",
  1050. " <tr>",
  1051. " <td>{{ markerLine({ 'styles':'lane,mark1,mark2', 'style:lane': { 'width': 5, 'color': 'orange' }, 'style:mark1': { 'width': 2.5, 'color': const.parking.diagonal.dashColor, 'dashArray': '1,7', 'offset': 1.25 }, 'style:mark2': { 'width': 2.5, 'color': const.parking.diagonal.dashColor, 'dashArray': '1,7', 'dashOffset': '2', 'offset': -1.25 } })|raw }}</td>",
  1052. " <td>{{ keyTrans('parking:lane') }}: {{ tagTrans('parking:lane', 'diagonal') }}</td>",
  1053. " </tr>",
  1054. " <tr>",
  1055. " <td>{{ markerLine({ 'styles':'lane,mark', 'style:lane': { 'width': 5, 'color': 'orange' }, 'style:mark': { 'width': 5, 'color': const.parking.perpendicular.dashColor, 'dashArray': '1,6' } })|raw }}</td>",
  1056. " <td>{{ keyTrans('parking:lane') }}: {{ tagTrans('parking:lane', 'perpendicular') }}</td>",
  1057. " </tr>",
  1058. " <tr>",
  1059. " <td>{{ markerLine({ 'width': 5, 'color': '#af3f3f' })|raw }}</td>",
  1060. " <td>{{ tagTrans('cycleway', 'lane') }}</td>",
  1061. " </tr>",
  1062. " <tr>",
  1063. " <td>{{ markerLine({ 'width': 5, 'color': '#bf5f3f' })|raw }}</td>",
  1064. " <td>{{ tagTrans('cycleway', 'track') }}</td>",
  1065. " </tr>",
  1066. " <tr>",
  1067. " <td>{{ markerLine({ 'width': 5, 'color': '#4f4fbf' })|raw }}</td>",
  1068. " <td>{{ keyTrans('sidewalk') }}</td>",
  1069. " </tr>",
  1070. "</table>"
  1071. ],
  1072. "const": {
  1073. "parking": {
  1074. "parallel": {
  1075. "width": "2",
  1076. "color": "orange",
  1077. "dashColor": "blue",
  1078. "dashDistance": "4"
  1079. },
  1080. "diagonal": {
  1081. "width": "2.5",
  1082. "color": "orange",
  1083. "dashColor": "magenta",
  1084. "dashDistance": "3",
  1085. "dashType": "diagonal"
  1086. },
  1087. "perpendicular": {
  1088. "width": "3",
  1089. "color": "orange",
  1090. "dashColor": "red",
  1091. "dashDistance": "2.5"
  1092. },
  1093. "no_parking": {
  1094. "width": "0.5",
  1095. "color": "#7f0000"
  1096. },
  1097. "no_stopping": {
  1098. "width": "0.5",
  1099. "color": "#7f0000"
  1100. },
  1101. "fire_lane": {
  1102. "width": "2",
  1103. "color": "#ff0000"
  1104. },
  1105. "other": {
  1106. "width": "2",
  1107. "color": "#ff0000"
  1108. },
  1109. "no": {
  1110. "width": "0",
  1111. "color": "#000000"
  1112. }
  1113. }
  1114. }
  1115. }