29 lines
765 B
JavaScript
29 lines
765 B
JavaScript
|
|
//Script um die Brücke zwischen Master-Spieler Ansicht zu handeln.
|
||
|
|
|
||
|
|
const ALLOWED_ORIGINS = new Set([
|
||
|
|
"http://localhost:8000",
|
||
|
|
"http://127.0.0.1:8000"
|
||
|
|
]);
|
||
|
|
|
||
|
|
window.addEventListener("message", (event) => {
|
||
|
|
if (ALLOWED_ORIGINS.size && !ALLOWED_ORIGINS.has(event.origin)) return;
|
||
|
|
|
||
|
|
if (event.data === "getView") {
|
||
|
|
const c = map.getCenter();
|
||
|
|
event.source?.postMessage({
|
||
|
|
type: "viewData",
|
||
|
|
center: { lat: c.lat, lng: c.lng },
|
||
|
|
zoom: map.getZoom()
|
||
|
|
}, event.origin);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (event.data && event.data.type === "setView") {
|
||
|
|
const center = event.data.center;
|
||
|
|
const zoom = event.data.zoom;
|
||
|
|
if (Array.isArray(center) && typeof zoom === "number") {
|
||
|
|
map.setView(center, zoom, { animate: false });
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|