diff --git a/webapp/src/components/LeafletMap.vue b/webapp/src/components/LeafletMap.vue index 2e45b63..7725822 100644 --- a/webapp/src/components/LeafletMap.vue +++ b/webapp/src/components/LeafletMap.vue @@ -63,7 +63,7 @@ function initializeMap() { attribution: '© OpenStreetMap', }).addTo(map); - populateMap(); + emit('update:bounds', map.getBounds()); // XXX: this event populates the map } function renderCurrentLocation() { @@ -194,10 +194,6 @@ function registerEvents() { emit('update:zoom', map.getZoom()); emit('update:bounds', map.getBounds()); }); - - map.on('load', () => { - emit('update:bounds', map.getBounds()); - }); } /** diff --git a/webapp/src/stores/tiles.ts b/webapp/src/stores/tiles.ts index 1941b2c..9110214 100644 --- a/webapp/src/stores/tiles.ts +++ b/webapp/src/stores/tiles.ts @@ -61,8 +61,13 @@ export const useTilesStore = defineStore('tiles', () => { } const fetchVisibleTiles = async (boundingBox: BoundingBox): Promise => { - if (!(tileUrlTemplate && tileSizeDegrees)) { - console.warn('Tile URL template is not set, skipping fetch'); + if (!tileUrlTemplate || !tileSizeDegrees) { + console.debug('Tile URL template or tile size is not set, fetching...'); + await fetchIndex(); + } + + if (!tileUrlTemplate || !tileSizeDegrees) { + console.warn('Tile URL template or tile size is still not set after fetching index'); return; } @@ -89,8 +94,6 @@ export const useTilesStore = defineStore('tiles', () => { const allNodes = computed(() => Object.values(tiles.value).flat()); - onBeforeMount(fetchIndex); - return { fetchVisibleTiles, allNodes,