我已经在某些标记上成功运行了群集标记,但是,如果该区域过于拥挤,群集似乎不会出现。我使用的是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'
});
我会张贴图片,但我需要更多声望。
我应该切换到热图,还是集群库的已知限制?
EDIT 似乎当我将标记量限制为179时,它会将它们全部聚类,但是当我限制为180时,第180个被放置在聚类之外
答案 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中的最小标记数
隐藏标记之前的簇,并显示计数。