【问题标题】:Dynamically addressing kml in Google Earth API for Google Maps v3在 Google Earth API for Google Maps v3 中动态寻址 kml
【发布时间】:2013-06-23 12:36:32
【问题描述】:

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

我在此处包含了示例脚本的链接: http://commondatastorage.googleapis.com/webgistank/TRMM_Checkbox_Example.html

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

【问题讨论】:

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


    【解决方案1】:

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

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

    引用了不存在的函数addOverlays

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

    “这是一个不同于谷歌官方提供的插件”

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

    你还说...

    “...它不再监听复选框动作。”

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

    通过查看您的代码,在通过

    初始化 Earth 插件之后
    googleEarth = new GoogleEarth(map);
    

    你没有用它做任何其他事情......你在你的问题中提到了谷歌代码游乐场上的interactive checkbox example,但据我所知,你实际上并没有实现该示例中的任何代码.

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-25
      • 2012-05-17
      • 1970-01-01
      • 2013-06-28
      • 2011-08-24
      • 2013-06-27
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多