使用MarkerClusterer、JSON/AJAX的数百万Google地图标记

使用MarkerClusterer、JSON/AJAX的数百万Google地图标记,ajax,json,google-maps,Ajax,Json,Google Maps,我正在开发大型地理位置网站。在谷歌地图上,有超过250万个地方可以通过标记和信息窗口(当标记被点击时)显示 我使用MarkerClusterer缩小单个标记的负载 但是,我担心如果浏览器(JSON等)中有如此多的数据会真的杀死页面 更改平移时通过标识映射边界加载按需JSON的任何建议 对资源中心的任何建议都将不胜感激。请看一看,我认为它可以满足您的需求: 只有当前可见的标记才能实际创建 如果太多的标记可见,则将它们分组到集群中 标记 您可以查找四键。四键是降低维度复杂性和构建感兴趣点集群的完美

我正在开发大型地理位置网站。在谷歌地图上,有超过250万个地方可以通过标记和信息窗口(当标记被点击时)显示

我使用MarkerClusterer缩小单个标记的负载

但是,我担心如果浏览器(JSON等)中有如此多的数据会真的杀死页面


更改平移时通过标识映射边界加载按需JSON的任何建议

对资源中心的任何建议都将不胜感激。

请看一看,我认为它可以满足您的需求:

  • 只有当前可见的标记才能实际创建
  • 如果太多的标记可见,则将它们分组到集群中 标记

您可以查找四键。四键是降低维度复杂性和构建感兴趣点集群的完美选择。有许多不同的方法,如z曲线、hilbert曲线、peano曲线。为了进一步限制限制,您可以将集群附加到google maps的边界框和缩放级别。

有一个适用于google maps api v3的marker Clusterer版本,但这不是问题所在。问题是,您仍然可以使用JS(通过JSON/AJAX检索250万个位置)在浏览器中处理底层数据。这很可能是太多了,除非你在一个快速连接上使用速度最快的计算机和大量的内存

对于那些在自己的网站上考虑这个问题的人,请记住,越来越多的移动设备正在访问这些网站,而这些设备上的javascript无法处理几乎同样多的点。我自己的网站与最新版本的iOS6决裂,现在我不得不通过将我的js更改为更简单的系统负载来适应


但要回到手头的答案,您需要做的是在地图边界发生变化时进行新的ajax调用,如果缩放太远,您必须限制检索的数量,并实现一些系统来向用户显示并非所有的结果。如果我没记错的话,我的站点使用了250的限制,并在位置周围显示了一个边框(连同markerclusterer一起对它们进行聚类)。在填充真实数据之前,我做了一个成千上万的测试数据库,这个数字似乎是性能和信息的最佳折衷。(但那是在我使用手机和api的v3之前)。v3应该更加精简,但移动设备有限,因此您必须进行测试。

我使用的是marker clusterer plus库,其标记大小上限为200,默认缩放级别为8。在缩放更改或拖动时,地图上将出现另外200个标记


如果缩小,标记将聚集,反之亦然

“有没有建议在平移发生变化时通过标识地图边界来加载按需JSON。”---是的,地图边界发生变化时按需加载(CO)我认为群集只适用于Google Maps v2,该版本很快就会被弃用。您是否有指向此库的链接?