Leaflet.markercluster聚类更新时自动关闭弹窗的问题求助
Leaflet.markercluster聚类更新时自动关闭弹窗的问题求助
各位Leaflet开发者好,最近做项目时碰到个棘手的问题:用户打开标记点的弹窗后,有时候需要缩小地图查看更大范围的内容,但一旦选中的标记被加入聚类组,或者聚类组件重新渲染时,弹窗就会自动关闭,用户根本没法定位刚才打开的是哪个标记的弹窗。想请教下有没有办法让弹窗一直保持打开状态,直到用户手动点击关闭?
我的技术栈
- Nuxt2
- Leaflet
- Leaflet.markercluster
我用原子设计的思路把地图拆分成了多个组件,下面是关键代码片段:
Map.vue(根地图组件)
<l-map id="myMap" ref="mapElement" :zoom="zoom" :center="center" class="gkn-map__map" :options="{scrollWheelZoom: !isMobile, touchZoom: isMobile, dragging: !isMobile}"> <l-tile-layer :url="url" :attribution="attribution" /> <MoleculeMapCluster :map-items="mapItems"/> </l-map>
MapCluster.vue(聚类组件)
<l-marker-cluster class="cluster" @animationend="animationEnded()"> <MoleculeMapMarker v-for="(item, index) in mapItems" :key="index" :map-items="mapItems" :item="item" /> </l-marker-cluster>
MapMarker.vue(标记点组件)
<l-marker v-for="(coord, index) in coordinates" :key="index" ref="marker" :lat-lng="coord"> <MoleculeMapMarkerPopup :item="item" /> </l-marker>
MapMarkerPopup.vue(弹窗组件)
<l-popup class="map-popup" :auto-close="false"> <!-- Customize the content of the popup here --> <AtomImage v-if="item.image" :src="item.image" class="img" :alt="item.title" data-testid="source-img" /> <div class="content"> CONTENT COMES HERE </div> </l-popup>
目前的问题表现:用户缩小地图时,聚类组件会重新绘制,此时所有打开的弹窗都会被地图自动关闭,完全不符合用户需要持续查看弹窗内容的预期。
备注:内容来源于stack exchange,提问作者JohnRambo
相关产品推荐
相关产品推荐

