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.

206 lines
9.1 KiB

6 years ago
6 years ago
6 years ago
6 years ago
  1. {
  2. "type": "overpass",
  3. "name": {
  4. "de": "ÖV Karte",
  5. "en": "Public transport map",
  6. "hu": "Tömegközlekedési térkép",
  7. "pt-br": "Mapa de transporte público"
  8. },
  9. "query": {
  10. "12": "relation[type=route][route~\"^(subway|monorail|ferry|train)$\"];",
  11. "14": [
  12. "(",
  13. "relation[type=route][route~\"^(subway|monorail|aerialway|bus|trolleybus|ferry|train|tram)$\"];",
  14. "relation[type=public_transport][public_transport=stop_area];",
  15. ")"
  16. ]
  17. },
  18. "lists": {
  19. "stops": {
  20. "prefix": "listStops",
  21. "name": {
  22. "ast": "Paraes y estaciones",
  23. "cs": "Zastávky & Stanice",
  24. "de": "Haltestellen",
  25. "el": "Στάσεις & Σταθμοί",
  26. "en": "Stops & Stations",
  27. "es": "Paradas y estaciones",
  28. "fr": "Arrêts/Stops, Stations",
  29. "hu": "Megállók és állomások",
  30. "it": "Stazioni e fermate",
  31. "ja": "停留所と駅",
  32. "nl": "Haltes en Stations",
  33. "pl": "Przystanki i Stacje",
  34. "pt-br": "Paradas e estações",
  35. "ru": "Остановки и станции",
  36. "uk": "Зупинки та станції"
  37. }
  38. },
  39. "routes": {
  40. "prefix": "listRoutes",
  41. "name": {
  42. "de": "Routen",
  43. "en": "Routes",
  44. "fr": "Lignes",
  45. "hu": "Útvonalak",
  46. "pt": "Rotas",
  47. "pt-br": "Rotas"
  48. }
  49. }
  50. },
  51. "feature": {
  52. "pre": "{% set isStopArea = tags.public_transport == 'stop_area' %}",
  53. "title": [
  54. "{% if tags.ref %}{{ tags.ref }} - {% endif %}",
  55. "",
  56. "{{ localizedTag(tags, 'name') |default(localizedTag(tags, 'operator')) | default(localizedTag(tags, 'ref')) | default(trans('unnamed')) }}"
  57. ],
  58. "description": "{{ tagTrans('route', tags.route) }}",
  59. "body": [
  60. "<h4>Stops</h4><ul>",
  61. "{% for member in members %}",
  62. "{% if member.tags.highway == 'bus_stop' or member.tags.amenity == 'bus_station' or member.tags.amenity == 'ferry_terminal' or member.tags.railway == 'tram_stop' or member.tags.railway == 'halt' or member.tags.railway == 'station' or member.tags.aerialway == 'station' or member.tags.public_transport == 'stop_position' or member.role|slice(-4) == 'stop' %}",
  63. "<li data-object='{{ member.id }}' data-sublayer='member'><b>{% if member.tags %}{{ member.tags.name|default(trans('unknown')) }}{% else %}<i>{{ trans('loading') }}</i>{% endif %}</li>",
  64. "{% endif %}",
  65. "{% endfor %}",
  66. "</ul>"
  67. ],
  68. "markerSymbol": "",
  69. "styles": "",
  70. "listStopsExclude": "true",
  71. "listRoutesMarkerSign": "{{ const[tags.route].sign|raw }}",
  72. "listRoutesMarkerSymbol": "{{ markerCircle({fillColor:const[tags.route].color})|raw }}",
  73. "listRoutesExclude": "{{ isStopArea }}"
  74. },
  75. "members": true,
  76. "memberFeature": {
  77. "pre": [
  78. "{% set stopName = '' %}",
  79. "{% set isStop = false %}",
  80. "{% set stopCount = 0 %}",
  81. "{% if tags.highway == 'bus_stop' or tags.amenity == 'bus_station' or tags.amenity == 'ferry_terminal' or tags.railway == 'tram_stop' or tags.railway == 'halt' or tags.railway == 'station' or tags.aerialway == 'station' or tags.public_transport == 'stop_position' %}{% set isStop = true %}{% endif %}",
  82. "{% set isWay = false %}",
  83. "{% set aRoute = null %}",
  84. "{% set refs = [] %}",
  85. "{% set dirForward = false %}",
  86. "{% set dirBackward = false %}",
  87. "{% for master in masters %}",
  88. " {% if master.tags.public_transport == 'stop_area' %}",
  89. " {% set stopName = master.tags.name %}",
  90. " {% else %}",
  91. " {% if master.role|matches('^(|.*stop)$') and isStop %}",
  92. " {% set isStop = true %}",
  93. " {% set stopCount = stopCount + 1 %}",
  94. " {% elseif master.role|matches('^(|forward|backward)$') and type == 'way' %}",
  95. " {% set isWay = true %}",
  96. " {% endif %}",
  97. " {% set aRoute = master %}",
  98. "",
  99. " {% if master.tags.ref %}",
  100. " {% set refs = refs|merge([ master.tags.ref ]) %}",
  101. " {% endif %}",
  102. " {% if master.dir == 'forward' %}{% set dirForward = true %}",
  103. " {% elseif master.dir == 'backward' %}{% set dirBackward = true %}",
  104. " {% else %}{% set dirForward = true %}{% set dirBackward = true %}",
  105. " {% endif %}",
  106. " {% endif %}",
  107. "{% endfor %}",
  108. "",
  109. "{% set refs = refs|unique|natsort({ insensitive: true }) %}",
  110. "{% set color = const[aRoute.tags.route].color %}"
  111. ],
  112. "title": "{% if isStop %}{{ tags.name|default(stopName)|default(id) }}{% endif %}",
  113. "body": [
  114. "<h4>Routes</h4>",
  115. "<ul class='overpass-layer-list'>",
  116. "{% for master in masters %}",
  117. " {% if master.tags.public_transport != 'stop_area' %}",
  118. " <li data-object=\"{{ master.id }}\">",
  119. " <span class='markerParent'><div class='marker'>{{ markerCircle({fillColor:const[master.tags.route].color})|raw }}</div><div class='icon'>{{ const[master.tags.route].sign|raw }}</div></span>",
  120. " <span 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 %}</span>",
  121. " <span class='description'>{{ tagTrans('route', master.tags.route) }}</span>",
  122. " </li>",
  123. " {% endif %}",
  124. "{% endfor %}",
  125. "</ul>"
  126. ],
  127. "styles": "{% if isStop and stopCount > 0 %}{% elseif isWay %}way{% else %}{% endif %}",
  128. "listStopsMarkerSign": null,
  129. "listStopsMarkerSymbol": "{{ markerCircle({ width: 5, color: color, fillOpacity: '1', radius: 3 })|raw }}",
  130. "listStopsExclude": "{{ not isStop or stopCount == 0 }}",
  131. "listStopsTitle": "{% if tags %}{{ tags.name|default(stopName)|default(trans('unknown')) }}{% else %}<li>{{ trans('loading') }}</li>{% endif %}",
  132. "listStopsDescription": "{{ refs|join(' · ') }}",
  133. "listRoutesExclude": "true",
  134. "markerSymbol": "{% if isStop and stopCount > 0 %}{{ markerCircle({ width: 0, fill: true, fillColor: color, fillOpacity: '1', radius: 5 })|raw }}{% endif %}",
  135. "style:way": {
  136. "width": "3",
  137. "opacity": "{% if (dirForward and dirBackward) or (not dirForward and not dirBackward) %}1{% else %}0{% endif %}",
  138. "color": "{{ color|default('#ff0000') }}",
  139. "text": "{{ refs|join(' · ') }} ",
  140. "textRepeat": "1",
  141. "textOffset": "12",
  142. "textFontWeight": "bold",
  143. "pattern": "{% if dirForward and dirBackward %}{% else %}arrowHead{% endif %}",
  144. "pattern-pixelSize": "4",
  145. "pattern-repeat": "7",
  146. "pattern-polygon": "",
  147. "pattern-angleCorrection": "{% if dirBackward %}180{% else %}0{% endif %}",
  148. "pattern-path-weight": "2",
  149. "pattern-path-color": "{{ color|default('#ff0000') }}"
  150. }
  151. },
  152. "info": [
  153. "<table>",
  154. "{% for value, data in const %}",
  155. "{% if data.zoom <= map.zoom %}",
  156. " <tr>",
  157. " <td>{{ markerCircle({fillColor:data.color})|raw }}<div class='sign'>{{ data.sign|raw }}</div></td>",
  158. " <td>{{ tagTrans('route', value) }}</td>",
  159. " </tr>",
  160. "{% endif %}",
  161. "{% endfor %}",
  162. "</table>"
  163. ],
  164. "const": {
  165. "train": {
  166. "sign": "<img src='maki:rail?fill=#ffffff'>",
  167. "zoom": 12,
  168. "color": "#00007f"
  169. },
  170. "subway": {
  171. "sign": "<img src='maki:rail-metro?fill=#ffffff'>",
  172. "zoom": 12,
  173. "color": "#0000ff"
  174. },
  175. "monorail": {
  176. "sign": "<span style='color: #ffffff'>M</span>",
  177. "zoom": 12,
  178. "color": "#006f8f"
  179. },
  180. "tram": {
  181. "sign": "<img src='maki:rail-light?fill=#ffffff'>",
  182. "zoom": 12,
  183. "color": "#7f007f"
  184. },
  185. "bus": {
  186. "sign": "<img src='maki:bus?fill=#ffffff'>",
  187. "zoom": 12,
  188. "color": "#af0000"
  189. },
  190. "trolleybus": {
  191. "sign": "<img src='maki:bus?fill=#ffffff'>",
  192. "zoom": 12,
  193. "color": "#af3f00"
  194. },
  195. "aerialway": {
  196. "sign": "<img src='maki:aerialway?fill=#ffffff'>",
  197. "zoom": 12,
  198. "color": "#00aaaa"
  199. },
  200. "ferry": {
  201. "sign": "<img src='maki:ferry?fill=#ffffff'>",
  202. "zoom": 12,
  203. "color": "#007fff"
  204. }
  205. }
  206. }