我正在使用Google Earth API for Google Maps v3在窗口中显示kml文件,然后可以在地图和地球浏览器之间切换。这是Google正式提供的插件,我遇到了在地球窗口中动态切换kml的问题。我使用复选框在Maps API V3窗口中切换它们,但是当浏览器切换到地球时,它不再监听复选框操作。基本上我要做的是在谷歌代码游乐场上复制交互式复选框示例,但我想我应该使用Maps V3脚本?
我在这里添加了一个示例脚本的链接: http://commondatastorage.googleapis.com/webgistank/TRMM_Checkbox_Example.html
非常感谢任何帮助! 问候, 克里
答案 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
方法 - 它清楚地显示了如何在地球插件中加载和显示数据。