Put latitude and longitude in window hash (close #2)

master
Skylar Ittner 3 years ago
parent d964623779
commit 90a0a17093

@ -221,6 +221,12 @@
} }
}); });
// Check for coordinates in hash
parseWindowHash();
window.addEventListener('hashchange', function () {
parseWindowHash();
}, false);
$("body").on("click", ".copyonclick", function () { $("body").on("click", ".copyonclick", function () {
var copyitem = $(this); var copyitem = $(this);
var copytext = copyitem.text(); var copytext = copyitem.text();
@ -276,6 +282,20 @@
alert(e); alert(e);
} }
} }
function parseWindowHash() {
var hash = window.location.hash.substr(1);
if (/^-?[0-9]{1,2}\.?[0-9]*,-?[0-9]{1,3}\.?[0-9]*$/.test(hash)) {
var lat = hash.split(",")[0];
var lon = hash.split(",")[1];
lat = (Math.round(lat * 10000) / 10000);
lon = (Math.round(lon * 10000) / 10000);
lookupAndShowCoords(lat, lon);
setTimeout(function () {
window.location.hash = hash;
}, 1000);
}
}
</script> </script>
</body> </body>
</html> </html>

@ -100,6 +100,7 @@ function showLocationPopup(latitude, longitude, words, accuracy) {
latitude + (accuracy / 2), latitude + (accuracy / 2),
longitude + (accuracy / 2) longitude + (accuracy / 2)
); );
window.location.hash = latitude + "," + longitude;
} }
function drawRectangle(fromlat, fromlng, tolat, tolng) { function drawRectangle(fromlat, fromlng, tolat, tolng) {
@ -143,4 +144,18 @@ function clearRectangle() {
if (typeof map.getLayer("rectangle") != "undefined") { if (typeof map.getLayer("rectangle") != "undefined") {
map.removeLayer('rectangle'); map.removeLayer('rectangle');
} }
}
function lookupAndShowCoords(latitude, longitude) {
var words = FixPhrase.encode(latitude, longitude);
map.flyTo({
center: {
lat: latitude,
lng: longitude
},
zoom: Math.max(map.getZoom(), 14)
});
showLocationPopup(latitude, longitude, words, 0.0001);
} }

@ -28,17 +28,7 @@ function maplibreMap() {
try { try {
var latitude = (Math.round(coordinates.lat * 10000) / 10000); var latitude = (Math.round(coordinates.lat * 10000) / 10000);
var longitude = (Math.round(coordinates.lng * 10000) / 10000); var longitude = (Math.round(coordinates.lng * 10000) / 10000);
var words = FixPhrase.encode(latitude, longitude); lookupAndShowCoords(latitude, longitude);
map.flyTo({
center: {
lat: latitude,
lng: longitude
},
zoom: Math.max(map.getZoom(), 14)
});
showLocationPopup(latitude, longitude, words, 0.0001);
} catch (e) { } catch (e) {
alert(e); alert(e);
} }

Loading…
Cancel
Save