谷歌地图标记互相遮挡

3

我在标记隐藏在其他标记后面时遇到了问题。
当地址彼此太接近时,例如:20号街,22号街

更改zIndex是无济于事的,因为那只是"堆叠"。
我该如何使标记"漂浮",以便它们都在地图上可见?


你使用任何数据库来存储坐标吗? - Argiropoulos Stavros
是的,我唯一看到的解决方案就是控制每个地理位置,如果两个位置太接近,就将其中一个微调一下。 - Steven
没错。在一个类似的问题中,我确实做到了这一点。在将地点插入数据库之前,我会检查周围的区域是否已经存在地点,如果存在足够接近的地点,我会稍微移动它们。 - Argiropoulos Stavros
你还有那段代码吗? :) - Steven
这就是为什么我问你使用的是哪种DBMS,因为我使用的是PostGIS,并且我使用特定于该数据库的函数。 - Argiropoulos Stavros
5个回答

2

2
我已经看过了,那并不能解决我的问题。它只会在缩小时聚类标记。一旦你放大,标记就会可见并堆叠在一起。 - Steven
超链接已经过时了。你提到了这个功能的名称“标记聚类”,这很好。 - ChrisW
谢谢@ChrisW,我已经用新链接更新了答案。 - herostwist


0

使用较小的标记可能会有所帮助。当我遇到这个问题时,我将标记图像的大小从20x34像素改为20x20像素。


我测试了一下,但没有帮助。位置仍然相同,图标大小也相同,因此它们将彼此隐藏。 - Steven

0

所以,你可以使用mysql空间扩展MBRContains(围绕您的点的矩形,您表格的几何列)

-当然,如果您的表格有一个几何列,这很容易(在创建时选择点作为列类型,并在执行插入时必须使用GeomFromText)-

检查另一个地方是否存在于该矩形内,如果是,则将新到来的地方移动,直到mbrcontains返回false或类似的内容。

希望能对您有所帮助。


0

我使用标记聚合器并遇到了同样的问题。我在坐标上添加了一个小的随机数。我不想改变标记的位置,因此在卫星模式下问题仍然存在,但在地图模式下我们可以更多地缩放。

这可能不是一个好的解决方案,但对于我的应用程序已经足够了。


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