我正在使用gmaps v3与markerClusterer http://code.google.com/p/gmaps-utility-library-dev/

地图上显示的标记是用户定义的,并且经常崩溃,因此,无论您的缩放多少,凝聚器总是显示一个位置中有多个项目。但是用户应该能够单击每个单个标记以查看信息窗口。您知道有什么方法来处理这个问题吗?

我尝试在服务器上有点随机化位置,但是随机的随机性不够随机,标记不断崩溃,只是不太频繁。

有帮助吗?

解决方案

在我以前的答案中回复OP的评论,因为它不适合在评论框中:

这样可以防止簇分组,但是当坐标相同时,所有标记都保持在彼此的顶部。您知道这有任何解决方法吗?

我认为这是Google Maps的预期行为 - 如果标记具有完全相同的LAT/LNG,那么您可以将标记在彼此之间。

一种可能的解决方法是仅在地图中添加第一个标记,然后尝试将另一个标记添加到已经定义的LAT/LNG(使用JS地图跟踪它们)时,您可以添加计数(或构建一个标记信息数组)并使用该信息更新InfowDindow文本。例如,单击标记将显示一个Infowdingow,说此位置上有15个“事物”,然后在其下方的列表中列出他们的名称和属性...

另一种可能性是通过将随机数添加到十进制LAT/LNG的末端来“抖动”随后的标记。这样,当用户以所有方式缩放时,标记将略有偏移。不过,这个选项感觉有点“脏”。

其他提示

我遇到了这个问题,并通过定义“ maxzoom”的构造函数,该属性低于Google Map的Maxzoom:

var markerCluster = new MarkerClusterer(map, markers, { maxZoom: 18 });

当添加标记时,您可以检查同一位置是否还有其他标记,在InfowDindow中您可以注意到有多个标记。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top