谷歌地图上太多针脚的最佳解决方案

时间:2013-12-06 18:36:23

标签: javascript google-maps google-maps-api-3

这是我的Google地图“设置”

  • 我从数据库中读取所有标记的位置(300以下) - 将这些标记作为Json
  • 发送到javascript中
  • 在javascript上我解析json,查看标记数组并创建一个新的google.maps.Marker。对于每个标记,我添加一个clicl事件,它将打开一个包含主图片和一些自定义细节的信息框(infoBox.js)。之后我创建了集群(使用MarkerClusterer),一切运行良好(至少有3-400个标记)

我想扩展并显示多达10k的标记(使用MarkerClusterer)。什么是最好的方法?

我正在考虑将所有标记数据写入文件(作为javascript数组或xml)并从那里读取javascript,因为查询10k位置的数据库是不切实际的。你有其他建议吗?

我应该使用相同的循环槽阵列并一次放置一个标记吗?  我查看了kml图层,但似乎我无法通过标记导航(我有一个上一个/下一个位置功能),我可能无法使用infobox.js?

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

正如@geocodezip所提到的那样,查看该文档,而不是查看群集解决方案,请查看Viewport Marker Management部分。

如果您的数据库支持地理空间查询,则只要地图为idle,您就可以请求仅返回给定边界内的标记。

google.maps.event.addListener(map, 'idle', function(){
    var bounds = map.getBounds(); //returns an object with the NorthEast and SouthWest LatLng points of the bounds

    //make the AJAX request passing in your `bounds`

    /*in the AJAX callback remove the current markers from the map and the cluster object, 
    and add the new ones along with their event handlers and re-add to the cluster object as well*/

});