Skip to content

Commit 6fe4341

Browse files
committed
Add HUC tiles (#40)
* Add MVT for hu02 hu04 hu06 * Condense pygeoapi config * Update tile HTML
1 parent d6bb876 commit 6fe4341

File tree

2 files changed

+672
-834
lines changed

2 files changed

+672
-834
lines changed

pygeoapi-skin-dashboard/templates/collections/tiles/index.html

Lines changed: 45 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4,71 +4,65 @@
44
/ <a href="{{ data['collections_path'] }}">{% trans %}Collections{% endtrans %}</a>
55
/ <a href="../{{ data['id'] }}">{{ data['title'] }}</a>
66
/ <a href="../{{ data['id'] }}/tiles">{% trans %}Tiles{% endtrans %}</a>
7-
{% endblock %}
8-
{% block extrahead %}
7+
{%- endblock %}
8+
{%- block extrahead %}
99
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
1010
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.js"></script>
1111
<script src="https://unpkg.com/leaflet.vectorgrid@latest/dist/Leaflet.VectorGrid.bundled.js"></script>
1212
<style>
13-
.leaflet-popup-content {
14-
width: 200px;
15-
height: 100px;
13+
.leaflet-popup-content {
14+
display: flex;
15+
align-items: center;
16+
justify-content: center;
17+
text-align: center;
18+
}
19+
20+
#items-map {
21+
max-height: 500px;
22+
height: 500px;
23+
max-width: 1000px;
1624
}
25+
.metadata-link {
26+
display: inline-block;
27+
padding: 8px 16px;
28+
background-color: #1B335F;
29+
color: white;
30+
text-decoration: none;
31+
border-radius: 4px;
32+
font-weight: 500;
33+
margin-top: 12px;
34+
transition: background-color 0.2s ease;
35+
}
36+
37+
.metadata-link:hover {
38+
background-color: #55677F;
39+
text-decoration: none;
40+
}
41+
42+
.metadata-link:focus {
43+
outline: 2px solid #55677F;
44+
outline-offset: 2px;
45+
}
1746
</style>
18-
{% endblock %}
47+
{%- endblock %}
1948

20-
{% block body %}
49+
{%- block body %}
2150
<section id="collection">
2251
<h1>{{ data['title'] }}</h1>
23-
<p>{{ data['description'] }}</p>
24-
<p>
25-
{% for kw in data['keywords'] %}
26-
<span class="badge text-bg-primary bg-primary">{{ kw }}</span>
27-
{% endfor %}
28-
</p>
29-
<h3>Tiles</h3>
3052
<div class="row">
31-
<div class="col-md-2 col-sm-12">{% trans %}Tile Matrix Set{% endtrans %}</div>
32-
<div class="col-md-8">
33-
<select id="tilingScheme">
34-
{% for tileset in data['tilesets'] %}
35-
<option value="{{ tileset }}">{{ tileset }}</option>
36-
{% endfor %}
37-
</select>
38-
</div>
39-
</div>
40-
<br/>
41-
<div class="row">
42-
<div class="col-md-2 col-sm-12">{% trans %}Metadata{% endtrans %}</div>
43-
<div class="col-md-8"><a id="metadata_link" href="" target="_blank">Metadata</a></div>
44-
</div>
45-
<script>
46-
var select = document.getElementById('tilingScheme');
47-
let params = (new URL(document.location)).searchParams;
48-
var scheme = params.get('scheme') ?? select.value;
49-
if (scheme) {
50-
select.value = scheme;
51-
document.getElementById("metadata_link").href = "{{ config['server']['url'] }}/collections/{{ data['id'] }}/tiles/" + scheme + "/metadata";
52-
}
53-
select.addEventListener('change', ev => {
54-
var scheme = ev.target.value;
55-
console.log(scheme);
56-
document.location.search = `scheme=${scheme}`;
57-
document.getElementById("metadata_link").href = "{{ config['server']['url'] }}/collections/{{ data['id'] }}/tiles/" + scheme + "/metadata";
58-
});
59-
</script>
60-
<br/>
61-
<div class="row">
62-
<div class="col-md-2 col-sm-12">Map</div>
63-
<div class="col-md-8">
53+
<div class="col-md-10">
6454
<div id="items-map"></div>
6555
</div>
56+
<div class="col-md-1">
57+
<a id="metadata_link" class="metadata-link" href="{{ config['server']['url'] }}/collections/{{ data['id'] }}/tiles/{{ data['tilesets'][0] }}/metadata" target="_blank">{% trans %}Metadata{% endtrans %}</a>
58+
</div>
6659
</div>
6760
</section>
68-
{% endblock %}
61+
{%- endblock %}
6962

70-
{% block extrafoot %}
63+
{%- block extrafoot %}
7164
<script>
65+
var scheme = "{{ data['tilesets'][0] }}";
7266
var map = L.map('items-map').setView([{{ 45 }}, {{ -75 }}], 10);
7367

7468
map.addLayer(new L.TileLayer(
@@ -131,8 +125,8 @@ <h3>Tiles</h3>
131125
var tilesPbfLayer = L.vectorGrid.protobuf(url, VectorTileOptions)
132126
.on('click', function(e) { // The .on method attaches an event handler
133127
var uri = e.layer.properties.uri;
134-
L.popup({minWidth: 300, maxHeight: 50})
135-
.setContent(`<b>URI</b>: <a href="${uri}">${uri}</a>`)
128+
L.popup()
129+
.setContent(`<a href="${uri}">${uri}</a>`)
136130
.setLatLng(e.latlng)
137131
.openOn(map);
138132

0 commit comments

Comments
 (0)