【发布时间】:2020-08-25 19:52:15
【问题描述】:
大家好,我想知道是否有办法告诉正在聚集的自定义标记,以及是否有办法在放大时收听正在聚集的标记的变化?
<template>
<gmap-map
ref="gmap"
:options="{
disableDefaultUi: true,
scaleControl: false,
streetViewControl: false,
rotateControl: false,
fullscreenControl: false,
scrollwheel: false,
clickableIcons: false
}"
:center="center.hasOwnProperty('lat') ? center : markers[0].position"
:zoom="10"
:style="{ width: width, height: height }"
>
<gmap-cluster
:gridSize="30"
:zoomOnClick="true"
:enableRetinaIcons="true"
:minimumClusterSize="3"
ref="cluster"
@click="clusteredMarkers($event)"
>
<gmap-custom-marker
v-for="(m, index) in markers"
:key="index"
:id="index"
:marker="m.position"
ref="marker"
>
<v-avatar color="primary" size="25">
<span
@click="center = m.position"
@mouseover="$emit('changeEl', index + 1)"
@mouseleave="$emit('changeEl', '')"
size="15"
:class="
hoveringEl - 1 === index ? 'white--text' : 'white--text'
"
>{{ index + 1 }}</span
>
</v-avatar>
</gmap-custom-marker>
</gmap-cluster>
</gmap-map>
</template>
我的脚本如下所示:
<script>
import GmapCustomMarker from 'vue2-gmap-custom-marker';
import GmapCluster from 'vue2-google-maps/dist/components/cluster';
export default {
name: 'GoogleMap',
components: {
GmapCustomMarker,
GmapCluster
},
props: {
markers: {
type: [Object, Array],
required: false
},
},
data() {
return {
center: {},
places: [],
currentPlace: null
};
},
methods: {
clusteredMarkers(event) {
console.log(event.getMarkers());
}
}
};
</script>
我不得不删除敏感信息并留下我认为需要查看问题的全部范围的信息。如果您需要更多信息,请告诉我。
在我的控制台上,当我单击集群时,我得到了适量的标记,但不确定如何在我的标记中识别它们。我还向 gmap-custom-marker 添加了一个 ID,当我使用 console.log(this.$refs.marker) 时,我可以访问该 ID,但不确定如何识别是否在集群上。关于如何进行的任何想法?
【问题讨论】:
标签: google-maps vue.js vue2-google-maps