Files
pygeoapi/pygeoapi/templates/item.html
T
Paul 1b32ff1cdb increase max zoom for item zoom
fixes #573

*my smallest PR ever*
2020-11-28 00:01:56 +01:00

113 lines
3.6 KiB
HTML

{% extends "base.html" %}
{# Optionally renders an img element, otherwise standard value or link rendering #}
{% macro render_item_value(v, width) -%}
{% set val = v | string | trim %}
{% if val|length and val.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp')) %}
{# Ends with image extension: render img element with link to image #}
<a href="{{ val }}"><img src="{{ val }}" alt="" width="{{ width }}"/></a>
{% else %}
{# All other cases: text or link value #}
{{ v | urlize() }}
{% endif %}
{%- endmacro %}
{% block title %}{{ super() }} {{ data['title'] }} - {{ data['id'] }}{% endblock %}
{% block crumbs %}{{ super() }}
/ <a href="../../../collections">Collections</a>
{% for link in data['links'] %}
{% if link.rel == 'collection' %}
/ <a href="{{ link['href'] }}">{{ link['title'] }}</a>
{% endif %}
{% endfor %}
/ <a href="../items">Items</a>
/ <a href="./{{ data['id'] }}">Item {{ data['id'] }}</a>
{% endblock %}
{% block extrahead %}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
{% endblock %}
{% block body %}
<section id="item">
<div class="row">
<div class="col-sm">
<h2>Item {{ data['id'] }}</h2>
</div>
</div>
<div class="row">
<div class="col-md-6 col-sm-12">
<div class="row">
<div class="col-sm-12">
<div id="items-map"></div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
{% if data['prev'] or data['next'] %}
<div class="row">
<div class="col-sm-12">
{% for link in data['links'] %}
{% if link['rel'] == 'prev' %}
<a role="button" href="./{{ data['prev'] }}">Previous</a>
{% elif link['rel'] == 'next' %}
<a role="button" href="./{{ data['next'] }}">Next</a>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="col-md-6 col-sm-12">
<table class="striped">
<thead>
<tr>
<th>Property</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>{{ data.id }}</td>
</tr>
{% for k, v in data['properties'].items() %}
<tr>
<td>{{ k }}</td>
{% if k == 'links' %}
<td>
<ul>
{% for l in v %}
<li><a href="{{ l['href'] }}">{{ l['title'] }}</a></li>
{% endfor %}
</ul>
</td>
{% else %}
<td>{{ render_item_value(v, 80) }}</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</section>
{% endblock %}
{% block extrafoot %}
<script>
var map = L.map('items-map').setView([{{ 45 }}, {{ -75 }}], 10);
map.addLayer(new L.TileLayer(
'{{ config['server']['map']['url'] }}', {
maxZoom: 18,
attribution: '{{ config['server']['map']['attribution'] }}'
}
));
var geojson_data = {{ data |to_json }};
var items = new L.GeoJSON(geojson_data);
map.addLayer(items);
map.fitBounds(items.getBounds(), {maxZoom: 15});
</script>
{% endblock %}