使用MarkerClusterer更改所选聚类的样式

3

我有一个问题。地图上有一些标记,它们的经纬度完全相同,因此MarkerClusterer缩放不会打破聚类。我已经处理了用户点击事件,但我想为点击的聚类设置不同的图像。

我找到了setStyles()方法,但那个方法会改变用于生成聚类的默认样式集。

我尝试了以下代码:

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

我设置了不同的图片,但地图上没有变化,还尝试将其放入setTimeout中。


你解决了这个问题还是只是改变了用户体验?我正在使用MarkerClustererPlus,它也有同样的限制。 - Felipe Pereira
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:[{...},{...},,,]});

因此,您正在单独定义聚类,具有不同的样式,但将它们添加到同一地图中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接