3

我有流动的情况。地图上有一些标记在完全相同的纬度/经度上,因此 MarkerClusterer 缩放不会破坏集群。我处理了用户点击,但我想为点击的集群设置不同的图像。

我找到setStyles()了方法,但是该方法更改了为集群生成设置的默认样式。

我尝试了一些类似的东西:

markerCluster = new MarkerClusterer(map, duplicateMarkers);
markerCluster.clusters_[0].clusterIcon_.url_ = imageurl;

我设置了不同的图像,但它在地图上没有改变,也尝试放入setTimeout.

4

1 回答 1

0

您可以在创建集群时定义样式。

var markerCluster = new MarkerClusterer(map, marker_list, {styles:[{...},{...},,,]});

请参阅此处的示例了解如何定义自定义样式:https ://googlemaps.github.io/js-marker-clusterer/examples/advanced_example.html

您需要扩展该概念并找到一种方法来区分或确定何时使用不同的图标。就我而言,我的地图上有 5 种不同类型的标记,并且我想要 5 种不同类型的集群(每种类型的标记一个)。我有我的标记在五个不同的数组中排序。在您的情况下,您可能希望将具有相同纬度/经度的标记添加到两个不同的数组(例如,markerArray1 和 markerArray2)。然后执行: var markerCluster1 = new MarkerClusterer(map, markerArray1, {styles:[{...},{...},,,]});

var markerCluster2 = new MarkerClusterer(map, markerArray2, {styles:[{...},{...},,,]});

因此,您正在分别定义具有不同样式的集群,但将它们添加到同一个地图中。

于 2015-05-21T15:57:59.423 回答