From 5d42c1e522aa3ca58899395b71d91d811e2037fd Mon Sep 17 00:00:00 2001 From: dakur Date: Fri, 24 Jan 2025 21:21:38 +0100 Subject: [PATCH] wip --- functions.php | 4 +++ header.php | 7 +++++ scripts/administrativeUnitsMap.js | 43 +++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 scripts/administrativeUnitsMap.js diff --git a/functions.php b/functions.php index 68a9347..e7798af 100644 --- a/functions.php +++ b/functions.php @@ -151,6 +151,10 @@ function hb_administrative_units_map(string $administrationUnitsInJson, bool $ha id="map" data-organizationalUnits='' > +
+ + diff --git a/scripts/administrativeUnitsMap.js b/scripts/administrativeUnitsMap.js new file mode 100644 index 0000000..4d1f5a1 --- /dev/null +++ b/scripts/administrativeUnitsMap.js @@ -0,0 +1,43 @@ +/** + * administrative unit schema: +{ + name: string; + description: string|null, + image: string|null, + lat: number; + lng: number; + address: string; + chairman: string|null; + website: string|null; + email: string|null; + isOfTypeClub: boolean; + isOfTypeBase: boolean; + isOfTypeRegional: boolean; + isOfTypeOffice: boolean; + isOfTypeChildren: boolean; +} +*/ + +async function hb_initialize_map() { + const { Map } = await google.maps.importLibrary("maps"); + const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); + + const mapEl = document.getElementById("map-v2"); + const administrativeUnits = JSON.parse(mapEl.getAttribute('data-administrativeUnits')); + + const map = new Map(mapEl, { + center: { lat: 49.000, lng: 16.000 }, + zoom: 8, + }); + + // todo bulk add? + for (const unit of administrativeUnits) { + const marker = new AdvancedMarkerElement({ + map: map, + position: { lat: unit.lat, lng: unit.lng }, + title: unit.name, + }); + } +} + +hb_initialize_map(); \ No newline at end of file