85 lines
2.2 KiB
HTML
85 lines
2.2 KiB
HTML
|
{% extends "base.html" %}
|
||
|
|
||
|
{% block title %}Geocode to Commons{% endblock %}
|
||
|
|
||
|
{% block link %}
|
||
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
|
||
|
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
|
||
|
crossorigin=""/>
|
||
|
{% endblock %}
|
||
|
|
||
|
{% block script %}
|
||
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
|
||
|
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
|
||
|
crossorigin=""></script>
|
||
|
|
||
|
<script>
|
||
|
var map = L.map('map').setView([56, -4], 6);
|
||
|
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||
|
maxZoom: 19,
|
||
|
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||
|
}).addTo(map);
|
||
|
|
||
|
|
||
|
var marker;
|
||
|
|
||
|
map.on('click', function(e) {
|
||
|
document.getElementById('info').innerHTML = '';
|
||
|
if (marker) {
|
||
|
// If the marker already exists, just set its new position
|
||
|
marker.setLatLng(e.latlng);
|
||
|
} else {
|
||
|
// If the marker doesn't exist yet, create it at the clicked position
|
||
|
marker = L.marker(e.latlng).addTo(map);
|
||
|
}
|
||
|
|
||
|
// Send XHR to the server
|
||
|
var xhr = new XMLHttpRequest();
|
||
|
xhr.open('GET', '{{ request.root_path }}/pin/' + e.latlng.lat + '/' + e.latlng.lng, true);
|
||
|
xhr.onload = function() {
|
||
|
if (xhr.status === 200) {
|
||
|
var response = JSON.parse(xhr.responseText);
|
||
|
document.getElementById('info').innerHTML = response.html;
|
||
|
} else {
|
||
|
console.error('Request failed. Returned status of ' + xhr.status);
|
||
|
}
|
||
|
};
|
||
|
xhr.send();
|
||
|
});
|
||
|
|
||
|
</script>
|
||
|
|
||
|
{% endblock %}
|
||
|
|
||
|
{% block style %}
|
||
|
<style>
|
||
|
|
||
|
/* Styles for the map */
|
||
|
#map {
|
||
|
position: fixed; /* This keeps the map in place when the page is scrolled */
|
||
|
top: 0; /* Starting from the top edge of the browser window */
|
||
|
right: 0; /* Positioned on the right side */
|
||
|
width: 50%; /* Half the screen width */
|
||
|
height: 100%; /* Full height of the browser window */
|
||
|
}
|
||
|
|
||
|
#main {
|
||
|
width: 48%
|
||
|
}
|
||
|
|
||
|
{{ css | safe }}
|
||
|
|
||
|
</style>
|
||
|
{% endblock %}
|
||
|
|
||
|
{% block content %}
|
||
|
<div id="map"></div>
|
||
|
<div class="m-3" id="main">
|
||
|
<h1>Geocode coordinates to Commons Category</h1>
|
||
|
|
||
|
<div id="info">Click on the map</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
{% endblock %}
|