var map = L.map('map').setView([55.68, 12.57], 13); L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 19, attribution: '© OpenStreetMap' }).addTo(map); let known_store_chains; let icons = {}; async function fetchChains() { const response = await fetch("chains"); known_store_chains = await response.json(); icons["Unknown"] = L.icon({ iconUrl: 'icons/Unknown.png', iconSize: [10, 16], iconAnchor: [16, 16], }); for (let known_store_chain of known_store_chains) { icons[known_store_chain] = L.icon({ iconUrl: `icons/${known_store_chain}.png`, iconAnchor: [8, 8], }); } fetchShops(); } function addMarker(shop) { let icon; if (known_store_chains.includes(shop.brand)){ icon = icons[shop.brand]; } else { icon = icons["Unknown"]; } L.marker([shop.lat, shop.long], { title: shop.name, icon: icon, }).addTo(map); } function addPolygon(polygon) { L.polygon(polygon, {color: 'red'}).addTo(map); } async function fetchShops() { const response = await fetch("supermarkets.json"); const shops = await response.json(); shops.forEach((shop) => addMarker(shop)); } async function fetch_voronoi_polygons() { const response = await fetch("voronoi_polygons.json"); const voronoi_polygons = await response.json(); voronoi_polygons.forEach((polygon) => addPolygon(polygon)); } function update(){ if (map.getZoom() >= 14){ //console.log('update') } } map.on('moveend', function() { update() }); fetchChains() fetch_voronoi_polygons()