从外部地图以群集为中心

时间:2020-10-02 19:49:16

标签: google-maps-api-3 markerclusterer

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

switch (Environment.UserConfiguration.RealDocumentPersistenceType)
{
   case DocumentPersistenceType.Sql:
   case DocumentPersistenceType.Disk:
       container.Register<IDocumentService, DocumentService>();
       break;

    case DocumentPersistenceType.IManage:
       container.Register<IDocumentService, ManageDocumentService>();
       break;

    default:
        throw new ArgumentOutOfRangeException(); } }, Lifestyle.Transient);
}

对于从地图外部以特定标记为中心,我还有以下几点:

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

一切正常,除了标记聚簇时。如果标记隐藏在群集中,则centerFromTimeline()将不起作用,因为this.map为null。在这种情况下,有没有办法集中在集群上?

1 个答案:

答案 0 :(得分:0)

所以我发现您可以获取聚类并在它们中搜索您的标记。

    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;
      }