Main categories of OpenStreetBrowser
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.

273 lines
8.7 KiB

  1. name:
  2. ca: Rutes Ciclistes
  3. cs: Cyklotrasy
  4. de: Radrouten
  5. en: Cycle Routes
  6. es: Rutas ciclistas
  7. fr: Itinéraires vélo
  8. gl: Rotas ciclistas
  9. hu: Kerékpáros útvonalak
  10. it: Percorsi ciclabili
  11. ja: 自転車ルート
  12. nb: Sykkelruter
  13. nl: Fietsroutes
  14. oc: Itineraris ciclistas
  15. pl: Trasy rowerowe
  16. pt: Ciclovias
  17. pt-br: Ciclorrotas
  18. ro: Trasee ciclism
  19. ru: Веломаршруты
  20. sr: Трасе за бицикле
  21. tr: Bisiklet Rotaları
  22. query:
  23. 6: |-
  24. (
  25. node[icn_ref];
  26. relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn)(|;.*)$'];
  27. )
  28. 9: |-
  29. (
  30. node[~"^[in]cn_ref$"~"."];
  31. relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn|ncn)(|;.*)$']
  32. 12: |-
  33. (
  34. node[~"^[inr]cn_ref$"~"."];
  35. relation[type=route][route~"^(|.*;)bicycle(|;.*)$"][network~'^(|.*;)(icn|ncn|rcn)(|;.*)$'];
  36. )
  37. 15: |-
  38. (
  39. node[~"^[inrl]cn_ref$"~"."];
  40. relation[type=route][route~"^(|.*;)bicycle(|;.*)$"];
  41. )
  42. members: true
  43. feature:
  44. pre: |-
  45. {% set network = tags.network %}
  46. {% for n in tags.network|split(';') %}
  47. {% if n|matches('cn$') %}{% set network = n %}{% endif %}
  48. {% endfor %}
  49. {% set ref = '' %}
  50. {% set item_type = '' %}
  51. {% for level, def in const|reverse %}
  52. {% if type == 'node' and attribute(tags, 'network:type') == 'node_network' and tags[level ~ '_ref'] %}
  53. {% set ref = tags[level ~ '_ref'] %}
  54. {% set network = level %}
  55. {% set item_type = 'node_network_node' %}
  56. {% endif %}
  57. {% endfor %}
  58. {% set color = const[network].color|default(const[""].color) %}
  59. title: |-
  60. {% if tags.ref and tags.name %}{{ tags.ref }} - {{ tags.name }}{% elseif tags.ref %}{{ tags.ref }}{% elseif tags.name %}{{ tags.name }}{% endif %}
  61. {% if item_type == 'node_network_node' %}
  62. {{ ref }}
  63. {% endif %}
  64. description: |-
  65. {% if item_type == 'node_network_node' %}
  66. {{ trans('tag:network:type=node_network node') }}
  67. {% else %}
  68. {{ tagTrans("network", network) }}
  69. {% endif %}
  70. markerSign: |-
  71. {% if item_type == 'node_network_node' %}
  72. {{ ref }}
  73. {% endif %}
  74. markerSymbol: |-
  75. {% if item_type == 'node_network_node' %}
  76. {{ markerPointer({ "width": 2, "color": color, "fillColor": colorInterpolate([color, 'white'], 0.75), "fillOpacity": 1 }) }}
  77. {% endif %}
  78. listMarkerSymbol: |-
  79. {% if item_type == 'node_network_node' %}
  80. {{ markerCircle({ "width": 2, "color": color, "fillColor": colorInterpolate([color, 'white'], 0.75), "fillOpacity": 1 }) }}
  81. {% else %}
  82. {{ markerLine({ "width": 4, "color": color })|raw }}
  83. {% endif %}
  84. priority: |-
  85. {{ const[network].priority|default(4) }}
  86. body: |-
  87. {% if item_type == 'node_network_node' %}
  88. <ul>
  89. <li>
  90. {% for level, def in const|reverse %}
  91. {% if tags[level ~ '_ref'] %}
  92. {{ tagTrans('network', level) }}: {{ tags[level ~ '_ref'] }}<br>
  93. {% endif %}
  94. {% endfor %}
  95. </li>
  96. </ul>
  97. {% endif %}
  98. styles: ''
  99. style:hover:
  100. color: black
  101. width: |-
  102. {{ item_type == 'node_network_node' ? 3 : 0 }}
  103. style:selected:
  104. color: black
  105. width: |-
  106. {{ item_type == 'node_network_node' ? 3 : 0 }}
  107. memberFeature:
  108. pre: |-
  109. {% set priority = 4 %}
  110. {% set network = '' %}
  111. {% set refs = [] %}
  112. {% set dirForward = false %}
  113. {% set dirBackward = false %}
  114. {% set hover = false %}
  115. {% set selected = false %}
  116. {% for master in masters %}
  117. {% set masterNetwork = '' %}
  118. {% for n in master.tags.network|split(';') %}
  119. {% if n|matches('cn$') %}{% set masterNetwork = n %}{% endif %}
  120. {% endfor %}
  121. {% set _p = const[masterNetwork].priority|default(4) %}
  122. {% if _p < priority %}
  123. {% set priority = _p %}
  124. {% set network = masterNetwork %}
  125. {% endif %}
  126. {% if master.tags.ref %}
  127. {% set refs = refs|merge([ master.tags.ref ]) %}
  128. {% endif %}
  129. {% if master.role == 'forward' %}{% set dirForward = true %}
  130. {% elseif master.role == 'backward' %}{% set dirBackward = true %}
  131. {% else %}{% set dirForward = true %}{% set dirBackward = true %}
  132. {% endif %}
  133. {% if master.flags.hover %}{% set hover = master.role|default('both') %}{% endif %}
  134. {% if master.flags.selected %}{% set selected = master.role|default('both') %}{% endif %}
  135. {% endfor %}
  136. exclude: |-
  137. {{ type == 'node' }}
  138. body: |-
  139. <h4>Routes</h4>
  140. <ul class='overpass-layer-list'>
  141. {% for master in masters %}
  142. {% set masterNetwork = '' %}
  143. {% for n in master.tags.network|split(';') %}
  144. {% if n|matches('cn$') %}{% set masterNetwork = n %}{% endif %}
  145. {% endfor %}
  146. <li data-object="{{ master.id }}"><a>
  147. <div class='marker'>
  148. <div class='symbol'>{{ markerLine({ width: 4, color: const[masterNetwork].color|default(const[''].color) })|raw }}</div>
  149. </div>
  150. <div class='content'>
  151. <div class='description'>{{ tagTrans('network', masterNetwork) }}</div>
  152. <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 }}{% else %}{{ trans('unnamed') }}{% endif %}</div>
  153. </div>
  154. </a></li>
  155. {% endfor %}
  156. </ul>
  157. listExclude: true
  158. styles: |-
  159. default{% if hover %},hover{% endif %}{% if selected %},selected{% endif %}
  160. style:
  161. width: 4
  162. color: |-
  163. {{ const[network].color }}
  164. opacity: 1
  165. lineCap: |-
  166. {% if not dirForward or not dirBackward %}butt{% else %}round{% endif %}
  167. dashArray: |-
  168. {% if not dirForward or not dirBackward %}27,8{% endif %}
  169. dashOffset: |-
  170. {% if dirBackward %}28{% else %}0{% endif %}
  171. noClip: |-
  172. {% if not dirForward or not dirBackward %}true{% else %}false{% endif %}
  173. text: '{{ refs|join(" · ") }} '
  174. textRepeat: true
  175. textOffset: 12
  176. pattern: |-
  177. {% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}
  178. pattern-offset: |-
  179. {% if dirBackward %}4{% else %}30.5{% endif %}
  180. pattern-repeat: 35
  181. pattern-polygon: true
  182. pattern-pixelSize: 9
  183. pattern-angleCorrection: |-
  184. {% if dirBackward %}180{% else %}0{% endif %}
  185. pattern-path-width: 0
  186. pattern-path-color: |-
  187. {{ const[network].color }}
  188. pattern-path-fillOpacity: 1
  189. textFontWeight: bold
  190. style:hover:
  191. pane: hover
  192. width: 4
  193. color: black
  194. lineCap: |-
  195. {% if hover == "forward" or hover == "backward" %}butt{% else %}round{% endif %}
  196. dashArray: |-
  197. {% if hover == "forward" or hover == "backward" %}27,8{% endif %}
  198. dashOffset: |-
  199. {% if hover == "backward" %}28{% else %}0{% endif %}
  200. noClip: |-
  201. {% if hover == "forward" or hover == "backward" %}true{% else %}false{% endif %}
  202. pattern: |-
  203. {% if hover == "forward" or hover == "backward" %}arrowHead{% endif %}
  204. pattern-offset: |-
  205. {% if hover == "backward" %}4{% else %}30.5{% endif %}
  206. pattern-repeat: 35
  207. pattern-polygon: true
  208. pattern-pixelSize: 9
  209. pattern-angleCorrection: |-
  210. {% if hover == "backward" %}180{% else %}0{% endif %}
  211. pattern-path-width: 0
  212. pattern-path-color: black
  213. pattern-path-fillOpacity: 1
  214. style:selected:
  215. pane: selected
  216. width: 4
  217. color: '#3f3f3f'
  218. lineCap: |-
  219. {% if selected == "forward" or selected == "backward" %}butt{% else %}round{% endif %}
  220. dashArray: |-
  221. {% if selected == "forward" or selected == "backward" %}27,8{% endif %}
  222. dashOffset: |-
  223. {% if selected == "backward" %}28{% else %}0{% endif %}
  224. noClip: |-
  225. {% if selected == "forward" or selected == "backward" %}true{% else %}false{% endif %}
  226. pattern: |-
  227. {% if selected == "forward" or selected == "backward" %}arrowHead{% endif %}
  228. pattern-offset: |-
  229. {% if selected == "backward" %}4{% else %}30.5{% endif %}
  230. pattern-repeat: 35
  231. pattern-polygon: true
  232. pattern-pixelSize: 9
  233. pattern-angleCorrection: |-
  234. {% if selected == "backward" %}180{% else %}0{% endif %}
  235. pattern-path-width: 0
  236. pattern-path-color: '#3f3f3f'
  237. pattern-path-fillOpacity: 1
  238. const:
  239. icn:
  240. color: '#ff0000'
  241. priority: 0
  242. zoom: 6
  243. ncn:
  244. color: '#ff00ba'
  245. priority: 1
  246. zoom: 9
  247. rcn:
  248. color: '#ba00ff'
  249. priority: 2
  250. zoom: 12
  251. lcn:
  252. color: '#0000ff'
  253. priority: 3
  254. zoom: 15
  255. '':
  256. color: '#007fff'
  257. priority: 4
  258. zoom: 15
  259. info: |-
  260. <table>
  261. {% for value, data in const %}
  262. {% if data.zoom <= map.zoom %}
  263. <tr>
  264. <td>{{ markerLine({ 'width': 4, color: data.color })|raw }}</td>
  265. <td>{% if value %}{{ tagTrans('network', value) }}{% else %}{{ trans('unknown') }}{% endif %}</td>
  266. </tr>
  267. {% endif %}
  268. {% endfor %}
  269. </table>