谷歌地图 - 成千上万的标记 - JSON

Fra*_*nek 8 javascript json google-maps google-maps-markers

在以下示例中,标记是从JSON加载的.

如果有20,000个标记,那么JSON将会非常大.

有没有办法根据缩放级别发送不同的JSON文件,而不是发送一个巨大的数组?

http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/examples/weather_map.html

Pet*_*ley 8

对于地图视图,存在"边界矩形"的概念.地图api为您提供两个纬度/经度坐标对 - 一个用于SW角,另一个用于NE角.

因此,如果您有一个返回JSON点的自定义数据服务,则需要接受这些坐标作为输入,并相应地调整返回的数据集(很可能是SELECT语句中的WHERE子句).

我没有记住这个边界矩形的详细信息,但这就是API文档的用途.


Edu*_*eni 6

有一个名为MarketClustered的新库可以帮助您

alt text http://gmaps-samples.googlecode.com/svn/trunk/images/screenshot_clusterereffect.jpg

即使数据太大,我认为将所有数据提供给地图会更好,并让它做到这一点.

  • 使用MarkerClusterer超过2,000个标记的任何东西对我来说都太慢了(在Firefox中 - Chrome和Safari 4可以达到大约8,000个).虽然它确实取决于标记的密集程度.我同意最好一次导入数据,而不是在缩放变化时发送数据块. (7认同)

The*_*ppo 0

解决此问题的可能方法:

  • 根据缩放级别在服务器端构建JSON(缺点:缩放后需要重新加载,优点:仅需要加载少量数据)
  • 包括有关如何在数据中访问标记的信息JSON(优点:只需加载一次数据,缺点:使用 迭代数据JavaScript
  • 计算可见标记JavaScript(优点:非常动态,缺点:计算负载繁重)