谷歌地图V3,如何获得标记/叠加数组?

时间:2013-07-27 04:53:05

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

现在很明显,如果我只是以正常方式添加它们,我会将它们保存在一个数组中,但在我的情况下,标记正在加载,但我使用的是KML图层。

所以在KML加载并且标记显示之后我基本上只想知道有多少,我可以找出一些愚蠢的黑客(用jQuery再次加载KML文件并在那里计算它),但理想情况下,我只想要myArray = map.getMarkers()myArray = map.getOverlays()之类的东西,是否存在类似的东西?

这似乎是一项如此简单的任务,而不是为什么我花了这么长时间才找到答案。也许这是不可能的?

3 个答案:

答案 0 :(得分:1)

没有这样的事情,你必须保留一个数组并在每次插入时添加对象ID。

答案 1 :(得分:1)

在使用KLM图层添加标记后,我不确定您是否能够访问这些标记。如果您没有那么多标记,那么我会说使用常规标记类加载它们。

也许我做得不对,但上次我尝试使用KLM图层实现标记时,我无法向它们添加任何事件,或者根本无法访问它们。

如果您只需要计算它们,那么我会说使用AJAX加载相同的KML文件,并将其解析为XML,您可以从那里获取元素来计算它们。

答案 2 :(得分:1)

您无法访问KmlLayer中的标记(Google服务器将其渲染为地图图块)。您可以使用FusionTableLayer(您可以将KML导入FusionTable,然后将查询修改为FusionTable以过滤标记)或第三方KML解析器,如geoxml3geoxml-v3(其中使用原生Google Maps v3对象渲染KML。

example using geoxml3

example using FusionTables