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.
 
 

112 lines
4.1 KiB

{
"type": "overpass",
"name": {
"de": "Gebäudehöhen",
"en": "Building height",
"fr": "Hauteur",
"pt-br": "Altura"
},
"query": {
"16": [
"(",
" way[building];",
" relation[building];",
")"
]
},
"feature": {
"pre": [
"{% if tags.height is defined %}",
"{% set approxHeight = tags.height %}",
"{% set m = tags.height|matches('(.*)\\s*(m|ft)$') %}",
"{% if m and m[2] == 'm' %}{% set approxHeight = m[1] %}{% endif %}",
"{% if m and m[2] == 'ft' %}{% set approxHeight = m[1] / 3.2808 %}{% endif %}",
"{% elseif attribute(tags, 'building:levels') is defined %}",
"{% set approxHeight = attribute(tags, 'building:levels') * 3.5 %}",
"{% endif %}",
"",
"{% if approxHeight <= 50 %}",
"{% set color = colorInterpolate(['green', 'red'], approxHeight / 50) %}",
"{% elseif approxHeight %}",
"{% set color = colorInterpolate(['red', 'yellow'], (approxHeight - 50) / 250) %} ",
"{% else %}",
"{% set color = '#7f7f7f' %}",
"{% endif %}"
],
"description": [
"{% if tags.height is defined %}",
" {% if tags.height|matches('(m|ft)$') %}{{ tags.height -}}",
" {% else %}{{ tags.height }}&nbsp;m",
" {%- endif -%}",
"{% endif -%}",
"",
"{%- if attribute(tags, 'building:levels') is defined -%}",
"{%- if tags.height is defined %}, {% endif %}",
"{{ attribute(tags, 'building:levels') }} {{ keyTrans('building:levels') }}",
"{% endif %}"
],
"markerSymbol": null,
"listMarkerSymbol": "{{ markerPolygon({\"fillColor\": color, \"fillOpacity\": 0.8, \"width\": 1, \"color\": \"#000000\" })|raw }}",
"priority": "{{ (approxHeight|default(0)) * -1 }}",
"style": {
"width": "1",
"color": "#000000",
"fillColor": "{{ color }}",
"fillOpacity": "1"
}
},
"info": [
"<div style='display: inline-block'>",
"{{ tagTrans('height') }}",
"<table>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>",
" <td colspan>{{ trans('unknown') }}</td>",
" </tr>",
"{% for i in range(0, 50, 10) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}</td>",
" <td>{{ i }}m</td>",
" </tr>",
"{% endfor %}",
"{% for i in range(100, 250, 50) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": i }))|raw }}</td>",
" <td>{{ i }}m</td>",
" </tr>",
"{% endfor %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"height\": \"300\" }))|raw }}</td>",
" <td>≥300m</td>",
" </tr>",
"</table>",
"</div>",
"",
"<div style='display: inline-block'>",
"{{ tagTrans('building:levels') }}",
"<table>",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\" }))|raw }}</td>",
" <td colspan>{{ trans('unknown') }}</td>",
" </tr>",
"{% for i in range(0, 12, 3) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}</td>",
" <td>{{ i }}</td>",
" </tr>",
"{% endfor %}",
"{% for i in range(15, 84, 15) %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": i }))|raw }}</td>",
" <td>{{ i }}</td>",
" </tr>",
"{% endfor %}",
" <tr>",
" <td>{{ markerPolygon(evaluate({ \"building\": \"yes\", \"building:levels\": \"85\" }))|raw }}</td>",
" <td>≥85</td>",
" </tr>",
"</table>",
"",
"</div>"
]
}