|
4 | 4 | / <a href="{{ data['collections_path'] }}">{% trans %}Collections{% endtrans %}</a>
|
5 | 5 | / <a href="../{{ data['id'] }}">{{ data['title'] }}</a>
|
6 | 6 | / <a href="../{{ data['id'] }}/tiles">{% trans %}Tiles{% endtrans %}</a>
|
7 |
| -{% endblock %} |
8 |
| -{% block extrahead %} |
| 7 | +{%- endblock %} |
| 8 | +{%- block extrahead %} |
9 | 9 | <link rel=" stylesheet" href=" https://unpkg.com/[email protected]/dist/leaflet.css" />
|
10 | 10 | <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.js"></script>
|
11 | 11 | <script src="https://unpkg.com/leaflet.vectorgrid@latest/dist/Leaflet.VectorGrid.bundled.js"></script>
|
12 | 12 | <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; |
16 | 24 | }
|
| 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 | + } |
17 | 46 | </style>
|
18 |
| -{% endblock %} |
| 47 | +{%- endblock %} |
19 | 48 |
|
20 |
| -{% block body %} |
| 49 | +{%- block body %} |
21 | 50 | <section id="collection">
|
22 | 51 | <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> |
30 | 52 | <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"> |
64 | 54 | <div id="items-map"></div>
|
65 | 55 | </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> |
66 | 59 | </div>
|
67 | 60 | </section>
|
68 |
| -{% endblock %} |
| 61 | +{%- endblock %} |
69 | 62 |
|
70 |
| -{% block extrafoot %} |
| 63 | +{%- block extrafoot %} |
71 | 64 | <script>
|
| 65 | + var scheme = "{{ data['tilesets'][0] }}"; |
72 | 66 | var map = L.map('items-map').setView([{{ 45 }}, {{ -75 }}], 10);
|
73 | 67 |
|
74 | 68 | map.addLayer(new L.TileLayer(
|
@@ -131,8 +125,8 @@ <h3>Tiles</h3>
|
131 | 125 | var tilesPbfLayer = L.vectorGrid.protobuf(url, VectorTileOptions)
|
132 | 126 | .on('click', function(e) { // The .on method attaches an event handler
|
133 | 127 | 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>`) |
136 | 130 | .setLatLng(e.latlng)
|
137 | 131 | .openOn(map);
|
138 | 132 |
|
|
0 commit comments