2012-02-27 84 views
1

我正在开发大型地理位置网站。 Google地图上有超过250万个地方可以显示标记和信息窗口(点击标记时)。使用MarkerClusterer,JSON/AJAX的数百万Google Map Marker

我正在使用MarkerClusterer来缩小单个标记的负载。

但是,如果浏览器(JSON等)中的数据太多,真的会杀死页面,

任何建议,通过在更改平移时标识地图边界来按需加载JSON。

任何建议,以资源也赞赏。

+1

“在平移改变时通过标识地图边界来加载按需JSON的任何建议。” ---是的,在地图边界发生变化时按需加载(CO) – zerkms 2012-02-27 22:48:39

回答

0

看一看Cluster我认为它可能做你想要什么:

  • 只有标记当前可见真正得到建立。
  • 如果有太多的标记是可见的,那么它们组合成集群 标记
+0

我认为Cluster只适用于即将被弃用的Google Maps v2。 – Baer 2012-06-01 17:48:41

0

你可以找一个quadkey。 quadkey非常适合降低维度复杂性并构建感兴趣点的集群。有许多不同的方法,如z曲线,希尔伯特曲线,佩诺诺曲线。为了进一步限制约束,您可以将群集事件附加到边界框和谷歌地图的缩放级别。

0

有一个标记Clusterer的版本,适用于谷歌地图API的v3,但这不是问题在这里。问题在于,你仍然在使用JS处理浏览器中的底层数据(通过JSON/AJAX检索到250万个地方)。这很可能是太多了,除非你使用速度很快的计算机进行快速连接。

对于那些在自己的网站上考虑这个问题的人,请记住越来越多的移动设备正在访问这些网站,而且这些设备上的JavaScript无法处理的点数几乎没有。我自己的网站打破了iOS6的最新版本,现在我必须通过改变我的js来适应更容易的系统负载。

但是,要回到手边,您需要做的是在地图边界发生变化时创建一个新的ajax调用,并且如果变焦过远,您必须限制数量检索并执行一些系统以向用户显示并非所有结果都显示。如果我正确记得,我的网站使用了250的限制,并且显示了位置周围的边界矩形(以及markerclusterer以对它们进行聚类)。在填充真实数据之前,我做了数千和数千的测试数据库,这个数字似乎是性能和信息的最佳折衷。 (但那是在我移动之前和api的v3之前)。 V3应该更简化,但移动设备是有限的,所以你必须测试。

0

我正在使用标记群集加上库的标记大小上限为200和默认缩放级别8.在缩放更改或拖动时,另外200个标记将出现在地图上。

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

+0

你有任何机会链接到这个图书馆? – yochannah 2013-12-30 18:04:32