61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
|
import type { Map as LMap } from 'leaflet';
|
||
|
import type { View } from '$lib/map';
|
||
|
|
||
|
export function syncMaps(
|
||
|
view: View,
|
||
|
map1: LMap | null,
|
||
|
map2: LMap | null,
|
||
|
map3: LMap | null,
|
||
|
map4: LMap | null
|
||
|
) {
|
||
|
// resize the shown maps
|
||
|
if (view === 'one' && map1) {
|
||
|
map1.invalidateSize();
|
||
|
} else if (view === 'two') {
|
||
|
if (map1) map1.invalidateSize();
|
||
|
if (map2) map2.invalidateSize();
|
||
|
} else if (view === 'four') {
|
||
|
if (map1) map1.invalidateSize();
|
||
|
if (map2) map2.invalidateSize();
|
||
|
if (map3) map3.invalidateSize();
|
||
|
if (map4) map4.invalidateSize();
|
||
|
}
|
||
|
|
||
|
if (map1 && map2) {
|
||
|
map2.setView(map1.getCenter(), map1.getZoom());
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
map1.sync(map2);
|
||
|
}
|
||
|
if (map1 && map3) {
|
||
|
map3.setView(map1.getCenter(), map1.getZoom());
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
map1.sync(map3);
|
||
|
}
|
||
|
if (map1 && map4) {
|
||
|
map4.setView(map1.getCenter(), map1.getZoom());
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
map1.sync(map4);
|
||
|
}
|
||
|
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map2 && map1) map2.sync(map1);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map2 && map3) map2.sync(map3);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map2 && map4) map2.sync(map4);
|
||
|
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map3 && map1) map3.sync(map1);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map3 && map2) map3.sync(map2);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map3 && map4) map3.sync(map4);
|
||
|
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map4 && map1) map4.sync(map1);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map4 && map2) map4.sync(map2);
|
||
|
// @ts-expect-error leaflet.sync does not provide typedefs
|
||
|
if (map4 && map3) map4.sync(map3);
|
||
|
}
|