diff --git a/functions.php b/functions.php index 68a9347..4a0b881 100644 --- a/functions.php +++ b/functions.php @@ -86,6 +86,7 @@ Assets::staticScript('lazyLoad', $theme); Assets::staticScript('menuHandler', $theme); Assets::staticScript('lightbox', $theme); + Assets::staticScript('administrativeUnitsMap', $theme); Assets::script('references', $theme); Assets::script('administrativeUnitsMap', $theme); Assets::style('style', $theme); @@ -151,6 +152,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..fe3c035 --- /dev/null +++ b/scripts/administrativeUnitsMap.js @@ -0,0 +1,41 @@ +/** + * 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; +} +*/ + +document.addEventListener('DOMContentLoaded', async function () { + 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, + }); + } +});