在Google地球API for Google Maps v3中动态寻址kml

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

标签: google-maps-api-3 google-earth google-earth-plugin

我正在使用Google Earth API for Google Maps v3在窗口中显示kml文件,然后可以在地图和地球浏览器之间切换。这是Google正式提供的插件,我遇到了在地球窗口中动态切换kml的问题。我使用复选框在Maps API V3窗口中切换它们,但是当浏览器切换到地球时,它不再监听复选框操作。基本上我要做的是在谷歌代码游乐场上复制交互式复选框示例,但我想我应该使用Maps V3脚本?

我在这里添加了一个示例脚本的链接: http://commondatastorage.googleapis.com/webgistank/TRMM_Checkbox_Example.html

非常感谢任何帮助! 问候, 克里

1 个答案:

答案 0 :(得分:1)

您的代码中存在错误。例如,行

 google.maps.event.addListenerOnce(map, 'tilesloaded', addOverlays);

引用不存在的函数addOverlays

另外,我不确定你的意思......

  

“这是Google正式提供的插件”

...因为它是完全相同的插件。

您还声明......

  

“......它不再收听复选框操作。”

浏览器会侦听操作,而不是地球插件。复选框事件仍在触发,代码无效的原因是“Google Earth Api”(用于控制插件的api)使用与Google Maps Api完全不同的对象和方法(用于控制地图的api) 。 google.maps.KmlLayer之类的东西根本就不存在于地球Api中。因此,当复选框事件触发时会导致错误,因为您正在调用不存在的对象上的方法。

通过

初始化地球插件后,查看代码
googleEarth = new GoogleEarth(map);

你没有做任何其他事情......你在问题中提到了Google代码游乐场上的interactive checkbox example,但据我所知,你实际上没有实现任何代码来自那个例子。

再看一下该示例中的函数loadKml方法 - 它清楚地显示了如何在地球插件中加载和显示数据。