Google Map Clusterer

时间:2017-01-28 01:26:52

标签: javascript google-maps google-maps-api-3 markerclusterer

我已经在某些标记上成功运行了群集标记,但是,如果该区域过于拥挤,群集似乎不会出现。我使用的是Javascript API。

  this.map = new google.maps.Map(map, mapOptions);
  this.markers = data.map((location) => {
    if (location.location === null) return
    const marker = new google.maps.Marker({
      position: { lat: location.location.coordinates[0], lng: location.location.coordinates[1]},
      map: this.map
    });
    return marker
  });
  const markerCluster = new MarkerClusterer(this.map, this.markers, {
    imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
  });

我会张贴图片,但我需要更多声望。

enter image description here

我应该切换到热图,还是集群库的已知限制?

EDIT 似乎当我将标记量限制为179时,它会将它们全部聚类,但是当我限制为180时,第180个被放置在聚类之外

1 个答案:

答案 0 :(得分:2)

MarkerClusterer库中没有180个标记的限制。当您查看this example时,您可以看到超过400个标记聚类,具体取决于gridSize

您的gridSize不应该太小,以便聚集较大的标记区域,但您似乎使用默认选项,这应该适用于您的示例。

创建标记时无需定义地图 - markerClusterer负责在地图上显示它们。

this.markers = [];
data.forEach(function(entry) {
    if (entry.location === null) return
    marker = new google.maps.Marker({
        position: { 
            lat: location.location.coordinates[0],
            lng: location.location.coordinates[1]
        }
    });
    markers.push(marker);
});
markerCluster = new MarkerClusterer(this.map, this.markers, {
    imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'
});

另请查看markerClusterer的以下选项,以根据您的需要进行配置:

  • gridSize:群集的网格大小(以像素为单位)。
  • maxZoom:标记可以成为群集的最大缩放级别。
  • minimumClusterSize:a中的最小标记数 隐藏标记之前的簇,并显示计数。