【发布时间】:2013-02-28 15:28:32
【问题描述】:
我在我的应用程序中使用谷歌地图。我的地图上有数千个标记。
我可以在地图上很好地显示它们。我在 php 中使用 MySQL 作为我的数据库。
但是当同一位置有多个位置时,我会遇到问题。它只为所有位置显示一个标记(对于相同的位置)。
在 API 中,对此没有解决方案。任何人都可以帮助我吗?
提前谢谢...
【问题讨论】:
标签: php google-maps
我在我的应用程序中使用谷歌地图。我的地图上有数千个标记。
我可以在地图上很好地显示它们。我在 php 中使用 MySQL 作为我的数据库。
但是当同一位置有多个位置时,我会遇到问题。它只为所有位置显示一个标记(对于相同的位置)。
在 API 中,对此没有解决方案。任何人都可以帮助我吗?
提前谢谢...
【问题讨论】:
标签: php google-maps
这不是一个“问题”本身。想一想……如果多个点共享完全相同的地理位置,显然,它们都将由一个点表示。然而,真正发生的事情是,同一点的所有标记都堆叠在一起。
您可能想尝试使用 MarkerClusterer 来表示有多少标记与集群共享相同的地理位置: http://googlegeodevelopers.blogspot.com/2009/04/markerclusterer-solution-to-too-many.html
OTOH,如果您有那么多点共享相同的位置以首先需要聚类,那么以最大缩放级别对它们进行去聚类绝对没有意义。此外,markerclusterer 不会这样做。
如果您确实需要有关如何分别表示同一位置的多个点的可能解决方案,请参阅我的博客: http://act28.blogspot.com/2011/05/multiple-locations-with-same-latlong.html
【讨论】:
对于纬度/经度在缩小时出现在同一位置,但实际上不同,请查看http://code.google.com/apis/maps/documentation/javascript/v2/overlays.html#Marker_Manager的聚类示例对于完全相同的位置,您只能稍微改变一下位置。
【讨论】:
听起来您将一个标记直接放在另一个标记之上。您使用的是纬度/经度坐标吗?如果是这样,您可以通过从重复的纬度/经度中随机添加或减去(非常)小的值来调整重复的位置。有点 hacky,但我不确定你还能如何处理这个问题。
【讨论】:
我所做的是在一个特殊的数组键中散列长/纬度值。然后所有标记将在相同位置的相同数组键中,然后您可以迭代数组并在一个信息窗口中显示信息。
【讨论】: