Main categories of OpenStreetBrowser

202 lines
6.5 KiB

  1. type: overpass
  2. query:
  3. 11: |-
  4. (
  5. way[railway~"^(rail|narrow_gauge|subway|light_rail|monorail)$"][usage~'^(main|branch)$'];
  6. way[railway~"^(construction|proposed|abandoned|disused|razed)$"][~"^(construction|proposed|abandoned|disused|razed)$"~"^(rail|narrow_gauge|subway|light_rail|monorail)$"][usage~'^(main|branch)$'];
  7. way[railway~"^(construction|proposed|abandoned|disused|razed)$"][~"^railway:(construction|proposed|abandoned|disused|razed)$"~"^(rail|narrow_gauge|subway|light_rail|monorail)$"][usage~'^(main|branch)$'];
  8. )
  9. 13: way[railway~"^(rail|narrow_gauge|funicular|monorail|narrow_gauge|subway|light_rail|tram|construction|proposed|abandoned|disused|razed)$"][!service];
  10. 15: way[railway~"^(rail|narrow_gauge|funicular|monorail|narrow_gauge|subway|light_rail|tram|construction|proposed|abandoned|disused|razed)$"];
  11. feature:
  12. pre: |-
  13. {% set type = tags.railway %}
  14. {% set lifecyle = 'active' %}
  15. {% if tags.railway in ['abandoned', 'construction', 'proposed', 'disused', 'razed'] %}
  16. {% set lifecyle = tags.railway %}
  17. {% set type = attribute(tags, tags.railway)|default(attribute(tags, tags.railway ~ ':railway')) %}
  18. {% endif %}
  19. {% set color = const.types[type ~ '/' ~ tags.usage].color|default(const.types[type].color)|default(const.types.default.color) %}
  20. {% if tags.tunnel and tags.tunnel != 'no' %}
  21. {% set color = colorInterpolate([ color, '#ffffff' ], 0.3) %}
  22. {% endif %}
  23. {% set width = 2 %}
  24. {% if tags.service == 'yard' or tags.service == 'siding' or tags.service == 'spur' or tags.service == 'crossover' %}
  25. {% set width = 1 %}
  26. {% elseif tags.railway in ['rail', 'narrow_gauge', 'abandoned', 'disused', 'razed'] %}
  27. {% if tags.usage in ['main', 'branch'] %}
  28. {% set width = 3 %}
  29. {% else %}
  30. {% set width = 2 %}
  31. {% endif %}
  32. {% endif %}
  33. title: |-
  34. {% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}
  35. {{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator')) }}
  36. {% if attribute(tags, 'tunnel:name') %}- {{ localizedTag(tags, 'tunnel:name') }}{% endif %}
  37. {% if attribute(tags, 'bridge:name') %}- {{ localizedTag(tags, 'bridge:name') }}{% endif %}
  38. description: |-
  39. {{ tagTrans('railway', type) }}
  40. {% if lifecyle != 'active' %}
  41. ({{ tagTrans('railway', lifecyle) }})
  42. {%- endif -%}
  43. {%- if tags.usage %}
  44. , {{ tagTrans('railway=rail usage', tags.usage) }}
  45. {% endif -%}
  46. {%- if tags.service %}
  47. , {{ tagTrans('railway=rail service', tags.service) }}
  48. {% endif -%}
  49. body: |-
  50. {% if tags.operator %}{{ keyTrans('operator') }}: {{ localizedTag(tags, 'operator') }}<br>{% endif %}
  51. {% if tags.usage %}{{ keyTrans('railway=rail usage') }}: {{ tagTrans('railway=rail usage', tags.usage)|default(trans('unknown')) }}<br/>{% endif %}
  52. {% if tags.service %}{{ keyTrans('railway=rail service') }}: {{ tagTrans('railway=rail service', tags.service ) }}<br/>{% endif %}
  53. {{ keyTrans('gauge') }}: {{ tags.gauge|default(trans('unknown')) }}<br/>
  54. {% if tags.electrified == 'no' %}
  55. {{ keyTrans('electrified') }}: {{ tagTrans('electrified', 'no') }}
  56. {% elseif tags.electrified %}
  57. {{ keyTrans('electrified') }}: {{ tagTrans('electrified', tags.electrified) }}, {{ keyTrans('voltage') }}: {{ tags.voltage|default(trans('unknown')) }}, {{ keyTrans('frequency') }}: {{ tags.frequency|default(trans('unknown')) }}
  58. {% endif %}<br/>
  59. markerSign: |-
  60. {% if tags.railway in [ 'halt', 'tram_stop', 'station', 'stop', 'subway_entrance' ] %}X
  61. {% endif %}
  62. markerSymbol: false
  63. listMarkerSymbol: line
  64. styles: |-
  65. {% if tags.bridge and tags.bridge != 'no' %}casing_bridge,{% endif %}
  66. casing,casing_layer,
  67. {% if lifecyle != 'active' %}background,{% endif %}
  68. {% if tags.railway == 'narrow_gauge' %}default,narrow
  69. {% else %}default
  70. {% endif %}
  71. style:
  72. width: |-
  73. {{ width }}
  74. zIndex: |-
  75. {{ tags.layer|default(0) + 10 }}
  76. color: |-
  77. {{ color }}
  78. opacity: 1
  79. lineCap: |-
  80. {{ lifecyle == 'active' ? 'round' : 'butt' }}
  81. dashArray: |-
  82. {{ const.lifecyle[lifecyle].dashArray }}
  83. fill: false
  84. style:background:
  85. width: |-
  86. {{ width }}
  87. zIndex: |-
  88. {{ tags.layer|default(0) + 9.995 }}
  89. color: white
  90. opacity: 1
  91. fill: false
  92. style:casing:
  93. color: '#ffffff'
  94. pane: casing
  95. width: |-
  96. {{ width + 2 }}
  97. style:casing_layer:
  98. color: '#ffffff'
  99. zIndex: |-
  100. {{ tags.layer|default(0) + 9.99 }}
  101. width: |-
  102. {{ width + 2 }}
  103. lineCap: butt
  104. style:casing_bridge:
  105. color: '#000000'
  106. zIndex: |-
  107. {{ tags.layer|default(0) + 9.98 }}
  108. width: |-
  109. {{ width + 4 }}
  110. lineCap: butt
  111. style:narrow:
  112. width: |-
  113. {{ width + 2 }}
  114. color: |-
  115. {{ color }}
  116. lineCap: butt
  117. dashArray: '2,4'
  118. info: |-
  119. <table>
  120. {% for k, v in const.types %}
  121. {% if not v.hideInfo %}
  122. {% set railway_usage = k|split('/') %}
  123. {% if railway_usage|length == 2 %}
  124. <tr>
  125. <td>{{ markerLine(evaluate({ 'railway': railway_usage[0], 'usage': railway_usage[1] }))|raw }}</td>
  126. <td>{{ tagTrans('railway', railway_usage[0]) }}, {{ keyTrans('usage') }}: {{ tagTrans('usage', railway_usage[1]) }}</td>
  127. </tr>
  128. {% else %}
  129. <tr>
  130. <td>{{ markerLine(evaluate({ "railway": k }))|raw }}</td>
  131. <td>{{ tagTrans('railway', k) }}</td>
  132. </tr>
  133. {% endif %}
  134. {% endif %}
  135. {% endfor %}
  136. <tr>
  137. <td>{{ markerLine(evaluate({ 'railway': 'rail', 'tunnel': 'yes'}))|raw }}</td>
  138. <td>{{ keyTrans('tunnel') }}</td>
  139. </tr>
  140. <tr>
  141. <td>{{ markerLine(evaluate({ 'railway': 'rail', 'bridge': 'yes'}))|raw }}</td>
  142. <td>{{ keyTrans('bridge') }}</td>
  143. </tr>
  144. {% for k, v in const.lifecyle %}
  145. {% if not v.hideInfo %}
  146. <tr>
  147. <td>{{ markerLine(evaluate({ 'railway': k, (k): 'rail'}))|raw }}</td>
  148. <td>{{ tagTrans('railway', k) }}</td>
  149. </tr>
  150. {% endif %}
  151. {% endfor %}
  152. </table>
  153. const:
  154. types:
  155. rail/main:
  156. color: '#ff8100'
  157. rail/branch:
  158. color: '#daca00'
  159. rail:
  160. color: '#000000'
  161. narrow_gauge:
  162. color: '#000000'
  163. subway:
  164. color: '#0000ff'
  165. tram:
  166. color: '#ff00ff'
  167. light_rail:
  168. color: '#ff007f'
  169. funicular:
  170. color: '#00BD14'
  171. monorail:
  172. color: '#007f00'
  173. default:
  174. color: '#ff0000'
  175. hideInfo: true
  176. lifecyle:
  177. active:
  178. dashArray: ''
  179. hideInfo: true
  180. proposed:
  181. dashArray: '5,5'
  182. construction:
  183. dashArray: '5,2'
  184. disused:
  185. dashArray: '2,5'
  186. abandoned:
  187. dashArray: '1,5'
  188. razed:
  189. dashArray: '1,9'