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.

217 lines
11 KiB

  1. {
  2. "type": "overpass",
  3. "name": {
  4. "de": "Wien - Hauptradverkehrsnetz"
  5. },
  6. "query": {
  7. "6": "relation[type=route][cycle_network='AT:Vienna:Basisrouten']",
  8. "12": "relation[type=route][cycle_network~'^AT:Vienna:(Basisrouten|Grundnetz)$']",
  9. "14": "relation[type=route][cycle_network~'^AT:Vienna:(Basisrouten|Grundnetz|Erweitertes_Grundnetz)$']"
  10. },
  11. "members": true,
  12. "feature": {
  13. "pre": [
  14. "{% set prio = tags.cycle_network %}"
  15. ],
  16. "title": "{% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% endif %}",
  17. "description": "{{ const[tags.cycle_network].title }}",
  18. "markerSymbol": "",
  19. "listMarkerSymbol": "{{ markerLine({ 'width': 4, 'color': const[tags.cycle_network].color|default(const[''].color) })|raw }}",
  20. "priority": "{{ const[tags.cycle_network].priority|default(4) }}",
  21. "styles": "",
  22. "style:hover": {
  23. "width": "0"
  24. },
  25. "style:selected": {
  26. "width": "0"
  27. }
  28. },
  29. "memberFeature": {
  30. "pre": [
  31. "{% set priority = 4 %}",
  32. "{% set network = '' %}",
  33. "{% set refs = [] %}",
  34. "{% set dirForward = false %}",
  35. "{% set dirBackward = false %}",
  36. "{% set hover = false %}",
  37. "{% set selected = false %}",
  38. "{% set proposedDirForward = false %}",
  39. "{% set proposedDirBackward = false %}",
  40. "{% set proposedPriority = 4 %}",
  41. "",
  42. "{% for master in masters if master.tags.route == 'bicycle' %}",
  43. " {% set masterNetwork = '' %}",
  44. " {% if master.tags.cycle_network|matches('^AT:Vienna:') %}{% set masterNetwork = master.tags.cycle_network %}{% endif %}",
  45. " {% set _p = const[masterNetwork].priority|default(4) %}",
  46. " {% if _p < priority %}",
  47. " {% set priority = _p %}",
  48. " {% set network = masterNetwork %}",
  49. " {% endif %}",
  50. " {% if master.tags.ref %}",
  51. " {% set refs = refs|merge([ master.tags.ref ]) %}",
  52. " {% endif %}",
  53. " {% if master.role == 'forward' %}{% set dirForward = true %}",
  54. " {% elseif master.role == 'backward' %}{% set dirBackward = true %}",
  55. " {% else %}{% set dirForward = true %}{% set dirBackward = true %}",
  56. " {% endif %}",
  57. " {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}",
  58. " {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}",
  59. "{% endfor %}",
  60. "",
  61. "{% for master in masters if master.tags.proposed == 'bicycle' %}",
  62. " {% set masterNetwork = '' %}",
  63. " {% if master.tags.cycle_network|matches('^AT:Vienna:') %}{% set masterNetwork = master.tags.cycle_network %}{% endif %}",
  64. " {% set _p = const[masterNetwork].priority|default(4) %}",
  65. " {% if _p < proposedPriority %}",
  66. " {% set proposedPriority = _p %}",
  67. " {% set network = masterNetwork %}",
  68. " {% endif %}",
  69. " {% if master.role == 'forward' %}{% set proposedDirForward = true %}",
  70. " {% elseif master.role == 'backward' %}{% set proposedDirBackward = true %}",
  71. " {% else %}{% set proposedDirForward = true %}{% set proposedDirBackward = true %}",
  72. " {% endif %}",
  73. " {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}",
  74. " {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}",
  75. "{% endfor %}"
  76. ],
  77. "title": "",
  78. "body": [
  79. "<h4>Routes</h4>",
  80. "<ul class='overpass-layer-list'>",
  81. "{% for master in masters %}",
  82. " {% if master.tags.cycle_network %}",
  83. " <li data-object=\"{{ master.id }}\"><a>",
  84. " <div class='marker'>",
  85. " <div class='symbol'>{{ markerLine({ width: 4, color: const[master.tags.cycle_network].color|default(const[''].color) })|raw }}</div>",
  86. " </div>",
  87. " <div class='content'>",
  88. " <div class='description'>{{ tagTrans('', const[master.tags.cycle_network].title) }}</div>",
  89. " <div class='title'>{% if master.tags.ref and master.tags.name %}{{ master.tags.ref }} - {{ master.tags.name|default(master.tags.ref) }}{% elseif master.tags.ref %}{{ master.tags.ref }}{% elseif master.tags.name %}{{ master.tags.name }}{% endif %}</div>",
  90. " </div>",
  91. " </a></li>",
  92. " {% endif %}",
  93. "{% endfor %}",
  94. "</ul>"
  95. ],
  96. "listExclude": "1",
  97. "styles": "{% if proposedPriority < 4 %}proposed{% else %}default{% endif %}{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}",
  98. "style:proposed": {
  99. "width": "{% if proposedPriority < 4 %}6{% else %}0{% endif %}",
  100. "color": "{{ const[network].proposedColor }}",
  101. "opacity": "1",
  102. "lineCap": "{% if not proposedDirForward or not proposedDirBackward %}butt{% else %}round{% endif %}",
  103. "dashArray": "{% if not proposedDirForward or not proposedDirBackward %}27,8{% endif %}",
  104. "dashOffset": "{% if proposedDirBackward %}28{% else %}0{% endif %}",
  105. "noClip": "{% if not proposedDirForward or not proposedDirBackward %}true{% else %}false{% endif %}",
  106. "textRepeat": "1",
  107. "textOffset": "12",
  108. "pattern": "{% if proposedDirForward and proposedDirBackward %}{% else %}arrowHead{% endif %}",
  109. "pattern-offset": "{% if proposedDirBackward %}4{% else %}30.5{% endif %}",
  110. "pattern-repeat": "35",
  111. "pattern-polygon": "true",
  112. "pattern-pixelSize": "9",
  113. "pattern-angleCorrection": "{% if proposedDirBackward %}180{% else %}0{% endif %}",
  114. "pattern-path-width": "0",
  115. "pattern-path-color": "{{ const[network].proposedColor }}",
  116. "pattern-path-fillOpacity": "1",
  117. "textFontWeight": "bold"
  118. },
  119. "style": {
  120. "width": "{% if priority < 4 %}4{% else %}0{% endif %}",
  121. "color": "{{ const[network].color }}",
  122. "opacity": "1",
  123. "lineCap": "{% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}",
  124. "dashArray": "{% if not dirForward or not dirBackward %}27,8{% endif %}",
  125. "dashOffset": "{% if dirBackward %}28{% else %}0{% endif %}",
  126. "noClip": "{% if not dirForward or not dirBackward %}true{% else %}false{% endif %}",
  127. "text": "{{ refs|join(' · ') }} ",
  128. "textRepeat": "1",
  129. "textOffset": "12",
  130. "pattern": "{% if priority < 4 and dirForward and dirBackward %}{% else %}arrowHead{% endif %}",
  131. "pattern-offset": "{% if dirBackward %}4{% else %}30.5{% endif %}",
  132. "pattern-repeat": "35",
  133. "pattern-polygon": "true",
  134. "pattern-pixelSize": "9",
  135. "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}",
  136. "pattern-path-width": "0",
  137. "pattern-path-color": "{{ const[network].color }}",
  138. "pattern-path-fillOpacity": "1",
  139. "textFontWeight": "bold"
  140. },
  141. "style:hover": {
  142. "pane": "hover",
  143. "width": "4",
  144. "color": "black",
  145. "lineCap": "{% if hover == 'forward' or hover == 'backward' %}butt{% else %}round{% endif %}",
  146. "dashArray": "{% if hover == 'forward' or hover == 'backward' %}27,8{% endif %}",
  147. "dashOffset": "{% if hover == 'backward' %}28{% else %}0{% endif %}",
  148. "noClip": "{% if hover == 'forward' or hover == 'backward' %}true{% else %}false{% endif %}",
  149. "pattern": "{% if hover == 'forward' or hover == 'backward' %}arrowHead{% endif %}",
  150. "pattern-offset": "{% if hover == 'backward' %}4{% else %}30.5{% endif %}",
  151. "pattern-repeat": "35",
  152. "pattern-polygon": "true",
  153. "pattern-pixelSize": "9",
  154. "pattern-angleCorrection": "{% if hover == 'backward' %}180{% else %}0{% endif %}",
  155. "pattern-path-width": "0",
  156. "pattern-path-color": "black",
  157. "pattern-path-fillOpacity": "1"
  158. },
  159. "style:selected": {
  160. "pane": "selected",
  161. "width": "4",
  162. "color": "#3f3f3f",
  163. "lineCap": "{% if selected == 'forward' or selected == 'backward' %}butt{% else %}round{% endif %}",
  164. "dashArray": "{% if selected == 'forward' or selected == 'backward' %}27,8{% endif %}",
  165. "dashOffset": "{% if selected == 'backward' %}28{% else %}0{% endif %}",
  166. "noClip": "{% if selected == 'forward' or selected == 'backward' %}true{% else %}false{% endif %}",
  167. "pattern": "{% if selected == 'forward' or selected == 'backward' %}arrowHead{% endif %}",
  168. "pattern-offset": "{% if selected == 'backward' %}4{% else %}30.5{% endif %}",
  169. "pattern-repeat": "35",
  170. "pattern-polygon": "true",
  171. "pattern-pixelSize": "9",
  172. "pattern-angleCorrection": "{% if selected == 'backward' %}180{% else %}0{% endif %}",
  173. "pattern-path-width": "0",
  174. "pattern-path-color": "#3f3f3f",
  175. "pattern-path-fillOpacity": "1"
  176. }
  177. },
  178. "const": {
  179. "AT:Vienna:Basisrouten": {
  180. "title": "Basisroute",
  181. "color": "#0000ff",
  182. "proposedColor": "#ff0000",
  183. "priority": 1,
  184. "zoom": 6
  185. },
  186. "AT:Vienna:Grundnetz": {
  187. "title": "Grundnetz",
  188. "color": "#0066ff",
  189. "proposedColor": "#ff4400",
  190. "priority": 2,
  191. "zoom": 12
  192. },
  193. "AT:Vienna:Erweitertes_Grundnetz": {
  194. "title": "Erw. Grundnetz",
  195. "color": "#00bbff",
  196. "proposedColor": "#ff7700",
  197. "priority": 3,
  198. "zoom": 14
  199. }
  200. },
  201. "info": [
  202. "<table>",
  203. "{% for value, data in const %}",
  204. "{% if data.zoom <= map.zoom %}",
  205. " <tr>",
  206. " <td>{{ markerLine({ 'width': 4, color: data.color })|raw }}</td>",
  207. " <td>{{ value }}</td>",
  208. " </tr>",
  209. " <tr>",
  210. " <td>{{ markerLine({ 'width': 4, color: data.proposedColor })|raw }}</td>",
  211. " <td>{{ value }} ({{ keyTrans('proposed') }})</td>",
  212. " </tr>",
  213. "{% endif %}",
  214. "{% endfor %}",
  215. "</table>"
  216. ]
  217. }