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.

106 lines
3.7 KiB

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