从外部地图集中在集群上

center on cluster from outside map

我在地图上有多个标记,我添加了以下侦听器,在单击时将标记居中。

    google.maps.event.addListener(marker, 'click', (function (marker, count) {
      return function () {
        this.map.setCenter(marker.getPosition() as google.maps.LatLng);
      }
    })(marker, count));

我还有以下内容用于从地图外部以特定标记为中心:

centerFromTimeline(i){
   google.maps.event.trigger(this.markers[i], 'click');
}

这一切都很好,除了当标记聚集在一起时。如果标记隐藏在集群中,则 centerFromTimeline() 将不起作用,因为 this.map 为空。有没有办法在这种情况下以集群为中心?

所以我发现你可以获取这些簇并在其中搜索你的标记。

    let inCluster
    let clusters = await this.markerClusterer.getClusters()
    for(let cluster of clusters){
      let foundMarker = cluster.markers_.find(element => element === this.markers[i]);
      if (foundMarker !== undefined)
        inCluster = true;
        break;
      }