Skip to content

Commit 2a84170

Browse files
committed
fix: maps
1 parent cc8d16a commit 2a84170

File tree

5 files changed

+23
-17
lines changed

5 files changed

+23
-17
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
"@trust/webcrypto": "^0.9.2",
118118
"@types/faker": "5",
119119
"@types/leaflet": "^1.9.21",
120+
"@types/leaflet.markercluster": "^1.5.6",
120121
"@types/mixpanel-browser": "^2",
121122
"@typescript-eslint/eslint-plugin": "^8.46.0",
122123
"@typescript-eslint/parser": "^8.46.0",

src/components/location/LocationDrawer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ watchEffect(() => {
224224
225225
const mapRef = useTemplateRef('map')
226226
227-
const centerMap = () => mapRef.value?.map.centerMap()
227+
const centerMap = () => mapRef.value?.centerMap()
228228
229229
const onLocationCreated = (location) => {
230230
suggestedLocations.value = null

src/components/map/BaseMap.vue

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<script setup lang="ts">
1515
import * as L from 'leaflet'
1616
import fixLeaflet from '@/app/fixLeaflet'
17-
import 'leaflet.markercluster/dist/leaflet.markercluster.js'
17+
import 'leaflet.markercluster'
1818
import 'leaflet/dist/leaflet.css'
1919
import 'leaflet.markercluster/dist/MarkerCluster.css'
2020
import 'leaflet.markercluster/dist/MarkerCluster.Default.css'
@@ -36,9 +36,9 @@ const emit = defineEmits<{
3636
'map-moved': []
3737
}>()
3838
39-
const mapInstance = ref(null)
39+
const mapInstance = ref<L.Map>(null)
40+
const markerClusterInstance = ref<L.MarkerClusterGroup>(null)
4041
const mapRef = useTemplateRef('map')
41-
const markerCluster = ref(null)
4242
const markers = ref(new Map())
4343
4444
const MAP_URL = 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png'
@@ -155,28 +155,27 @@ const addPointer = async ({ markerContent, location, tooltip }, eventHandlers: a
155155
156156
markers.value.set(location.id, marker)
157157
158-
if (markerCluster.value) {
159-
markerCluster.value.addLayers(marker)
158+
if (markerClusterInstance.value) {
159+
markerClusterInstance.value.addLayers([marker])
160+
markerClusterInstance.value.refreshClusters()
160161
} else {
161-
marker.addTo(mapInstance.value)
162+
marker.addTo(mapInstance.value as L.Map)
162163
}
163-
164-
if (markerCluster.value) markerCluster.value.refreshClusters()
165164
}
166165
167166
const removePointer = (location) => {
168167
const marker = markers.value.get(location.id)
169168
170169
if (marker) {
171-
if (markerCluster.value) {
172-
marker.value.removeFrom(markerCluster.value)
170+
if (markerClusterInstance.value) {
171+
marker.value.removeFrom(markerClusterInstance.value)
173172
} else {
174173
mapInstance.value.removeLayer(marker)
175174
}
176175
}
177176
markers.value.delete(location.id)
178-
if (markerCluster.value) {
179-
markerCluster.value.refreshClusters()
177+
if (markerClusterInstance.value) {
178+
markerClusterInstance.value.refreshClusters()
180179
}
181180
// force readraw
182181
mapInstance.value.invalidateSize()
@@ -197,15 +196,14 @@ onMounted(() => {
197196
const map = L.map(mapRef.value, CONFIG)
198197
199198
if (props.useCluster) {
200-
// @ts-expect-error ignore markercluster
201199
const markerCluster = L.markerClusterGroup({
202200
removeOutsideVisibleBounds: true,
203201
chunkedLoading: true,
204202
iconCreateFunction: createClusterIcons,
205203
})
206204
207205
map.addLayer(markerCluster)
208-
markerCluster.value = markerCluster
206+
markerClusterInstance.value = markerCluster
209207
}
210208
211209
map.on('contextmenu', (e) => emit('contextmenu', e))

src/components/project/map/LocationDrawer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ watchEffect(() => {
224224
225225
const mapRef = useTemplateRef('map')
226226
227-
const centerMap = () => mapRef.value?.map.centerMap()
227+
const centerMap = () => mapRef.value?.centerMap()
228228
229229
const onLocationCreated = (location) => {
230230
suggestedLocations.value = null

yarn.lock

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2931,7 +2931,14 @@
29312931
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
29322932
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
29332933

2934-
"@types/leaflet@^1.9.21":
2934+
"@types/leaflet.markercluster@^1.5.6":
2935+
version "1.5.6"
2936+
resolved "https://registry.yarnpkg.com/@types/leaflet.markercluster/-/leaflet.markercluster-1.5.6.tgz#3fff147abeee2303b3814d5799151ae14d72654e"
2937+
integrity sha512-I7hZjO2+isVXGYWzKxBp8PsCzAYCJBc29qBdFpquOCkS7zFDqUsUvkEOyQHedsk/Cy5tocQzf+Ndorm5W9YKTQ==
2938+
dependencies:
2939+
"@types/leaflet" "^1.9"
2940+
2941+
"@types/leaflet@^1.9", "@types/leaflet@^1.9.21":
29352942
version "1.9.21"
29362943
resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.21.tgz#542e8f91250bc444f8a1416d472f5b518d83e979"
29372944
integrity sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==

0 commit comments

Comments
 (0)