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.

113 lines
3.5 KiB

  1. query:
  2. 16: |-
  3. (
  4. way[building];
  5. relation[building];
  6. )
  7. feature:
  8. pre: |-
  9. {% if tags.height is defined %}
  10. {% set approxHeight = tags.height %}
  11. {% set m = tags.height|matches('(.*)\s*(m|ft)$') %}
  12. {% if m and m[2] == 'm' %}{% set approxHeight = m[1] %}{% endif %}
  13. {% if m and m[2] == 'ft' %}{% set approxHeight = m[1] / 3.2808 %}{% endif %}
  14. {% elseif attribute(tags, 'building:levels') is defined %}
  15. {% set approxHeight = attribute(tags, 'building:levels') * 3.5 %}
  16. {% endif %}
  17. {% if approxHeight <= 50 %}
  18. {% set color = colorInterpolate(['green', 'red'], approxHeight / 50) %}
  19. {% elseif approxHeight %}
  20. {% set color = colorInterpolate(['red', 'yellow'], (approxHeight - 50) / 250) %}
  21. {% else %}
  22. {% set color = '#7f7f7f' %}
  23. {% endif %}
  24. description: |-
  25. {% if tags.building == 'yes' and tags.military %}
  26. {{ tagTrans('building', 'military') }}
  27. {% elseif tags.building == 'yes' %}
  28. {{ keyTrans('building') }}
  29. {% else %}
  30. {{ tagTransList('building', tags.building) }}
  31. {% endif %}
  32. {% if tags.building == 'construction' and tags.construction %}
  33. ({{ tagTransList('building', tags.construction) }})
  34. {% endif %}
  35. {% if tags.building in [ 'yes', 'military' ] and tags.military %}
  36. ({{ tagTransList('military', tags.military) }})
  37. {% endif %}
  38. details: |-
  39. {% if tags.height is defined %}
  40. {% if tags.height|matches('(m|ft)$') %}{{ tags.height -}}
  41. {% else %}{{ tags.height }}&nbsp;m
  42. {%- endif -%}
  43. {% endif -%}
  44. {%- if attribute(tags, 'building:levels') is defined -%}
  45. {%- if tags.height is defined %}, {% endif %}
  46. {{ attribute(tags, 'building:levels') }} {{ keyTrans('building:levels') }}
  47. {% endif %}
  48. markerSymbol: null
  49. listMarkerSymbol: |-
  50. {{ markerPolygon({"fillColor": color, "fillOpacity": 0.8, "width": 1, "color": "#000000" })|raw }}
  51. priority: |-
  52. {{ (approxHeight|default(0)) * -1 }}
  53. style:
  54. width: 1
  55. color: '#000000'
  56. fillColor: |-
  57. {{ color }}
  58. fillOpacity: 1
  59. info: |-
  60. <div style='display: inline-block'>
  61. {{ tagTrans('height') }}
  62. <table>
  63. <tr>
  64. <td>{{ markerPolygon(evaluate({ "building": "yes" }))|raw }}</td>
  65. <td colspan>{{ trans('unknown') }}</td>
  66. </tr>
  67. {% for i in range(0, 50, 10) %}
  68. <tr>
  69. <td>{{ markerPolygon(evaluate({ "building": "yes", "height": i }))|raw }}</td>
  70. <td>{{ i }}m</td>
  71. </tr>
  72. {% endfor %}
  73. {% for i in range(100, 250, 50) %}
  74. <tr>
  75. <td>{{ markerPolygon(evaluate({ "building": "yes", "height": i }))|raw }}</td>
  76. <td>{{ i }}m</td>
  77. </tr>
  78. {% endfor %}
  79. <tr>
  80. <td>{{ markerPolygon(evaluate({ "building": "yes", "height": "300" }))|raw }}</td>
  81. <td>≥300m</td>
  82. </tr>
  83. </table>
  84. </div>
  85. <div style='display: inline-block'>
  86. {{ tagTrans('building:levels') }}
  87. <table>
  88. <tr>
  89. <td>{{ markerPolygon(evaluate({ "building": "yes" }))|raw }}</td>
  90. <td colspan>{{ trans('unknown') }}</td>
  91. </tr>
  92. {% for i in range(0, 12, 3) %}
  93. <tr>
  94. <td>{{ markerPolygon(evaluate({ "building": "yes", "building:levels": i }))|raw }}</td>
  95. <td>{{ i }}</td>
  96. </tr>
  97. {% endfor %}
  98. {% for i in range(15, 84, 15) %}
  99. <tr>
  100. <td>{{ markerPolygon(evaluate({ "building": "yes", "building:levels": i }))|raw }}</td>
  101. <td>{{ i }}</td>
  102. </tr>
  103. {% endfor %}
  104. <tr>
  105. <td>{{ markerPolygon(evaluate({ "building": "yes", "building:levels": "85" }))|raw }}</td>
  106. <td>≥85</td>
  107. </tr>
  108. </table>
  109. </div>