support lat, lng and zoom query parameters to configure map with links

This commit is contained in:
liamcottle
2024-03-30 15:10:05 +13:00
parent 7496860aa9
commit b5e6552ace

View File

@ -1712,7 +1712,7 @@
} }
function goToNode(id){ function goToNode(id, animate, zoom){
// find node // find node
var node = findNodeById(id); var node = findNodeById(id);
@ -1736,8 +1736,9 @@
showNodeOutline(id); showNodeOutline(id);
// fly to node marker // fly to node marker
map.flyTo(nodeMarker.getLatLng(), getConfigZoomLevelGoToNode(), { const shouldAnimate = animate != null ? animate : true;
animate: true, map.flyTo(nodeMarker.getLatLng(), zoom || getConfigZoomLevelGoToNode(), {
animate: shouldAnimate,
}); });
// open tooltip for node // open tooltip for node
@ -2110,7 +2111,7 @@
} }
} }
async function reload(goToNodeId) { async function reload(goToNodeId, zoom) {
// show loading // show loading
setLoading(true); setLoading(true);
@ -2130,7 +2131,7 @@
// go to node id if provided // go to node id if provided
if(goToNodeId){ if(goToNodeId){
goToNode(goToNodeId); goToNode(goToNodeId, false, zoom);
} }
}); });
@ -2218,9 +2219,20 @@
// parse url params // parse url params
var queryParams = new URLSearchParams(location.search); var queryParams = new URLSearchParams(location.search);
var queryNodeId = queryParams.get('node_id'); var queryNodeId = queryParams.get('node_id');
var queryLat = queryParams.get('lat');
var queryLng = queryParams.get('lng');
var queryZoom = queryParams.get('zoom');
// go to lat/lng if provided
if(queryLat && queryLng){
const zoomLevel = queryZoom || getConfigZoomLevelGoToNode();
map.flyTo([queryLat, queryLng], zoomLevel, {
animate: false,
});
}
// reload and go to provided node id // reload and go to provided node id
reload(queryNodeId); reload(queryNodeId, queryZoom);
</script> </script>