【问题标题】:kmz file not displayed in google earth plugin - have to zoom and dezoom to get it displayedkmz 文件未显示在谷歌地球插件中 - 必须缩放才能显示
【发布时间】:2013-01-04 21:31:43
【问题描述】:

我必须使用 google earth 插件在我的网站中显示大型 kml 文件。该模型似乎总是正确下载但未显示:有时我必须右键单击插件 5 或 6 次才能看到正在显示的模型。 之后,如果我重新加载页面,它会正确显示。

我正在使用以下代码:

<script type="text/javascript" >
google.load("earth", "1");
var ge;
function init() {
    google.earth.createInstance('map3D', initCB, failureCB);
}

function initCB(instance) {
    ge = instance;
    ge.getWindow().setVisibility(true);
    ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);

    google.earth.fetchKml(ge, "<?php echo $kmz ?>", function(kmlObject) {
        if (kmlObject)
            {
                var la = ge.createLookAt('');
                la.set(<?php echo $lat ?>, <?php echo $long ?>, <?php echo $alt+500 ?>, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 10);
                ge.getView().setAbstractView(la);

                ge.getFeatures().appendChild(kmlObject);


            }
    });


 }
     function failureCB(errorCode) {
        alert("failure");
}

google.setOnLoadCallback(init);  
</script>

我也尝试使用 createNetworkLink,但问题仍然存在。 我应该改变什么才能让它工作?

谢谢!

【问题讨论】:

  • 当您说“大型 kml 文件”时,您的确切含义是什么?即文件是否包含大量标记?或者它是否加载大模型、大图像等?无论哪种情况,您都可以发布指向您的 kml 示例的链接吗?
  • 我的 kmz 文件大约为 4mB。它们由一个大的 dae 文件 (~2mB) 和一个大的纹理图像 (~2mB) 组成。我在这里上传了一个测试文件:benoit.hanotte.free.fr/ge.html 当插件第二次缩放时,模型应该会显示出来,但有时我必须缩小才能显示出来

标签: javascript kml google-earth-plugin kmz


【解决方案1】:

只是模型需要时间加载到导致问题的插件中。我已经在一些操作系统上的许多浏览器中对其进行了测试,并且在所有情况下行为都是相同的。

它在后续页面重新加载时起作用的原因是插件正在缓存数据,因此它实际上并没有第二次获取数据。

缩小、放大并没有做任何事情来更快地加载模型 - 它只是在加载之前消磨时间。

在我完成的每次测试中,模型总是加载 - 但可能需要 2 到 10 秒才能显示...

除了尝试优化 KMZ 存档中的 .dae 和图像文件以减小文件大小之外,您无能为力。这将使模型加载和显示速度比当前更快。

【讨论】:

  • 所以您无需放大和缩小即可显示?因为我什至在我的本地服务器上也遇到了这个问题,加载时间可以忽略不计,我必须双击右键才能显示它。我没有找到模型显示调用的任何回调方法,只有一个在加载完成时调用,显示加载消息会非常有用。
  • 是的,我不需要缩放来显示它。 AFAIK 本地服务器不会减少“加载时间”,只会减少“下载时间” - 无论文件来自插件的何处,仍然必须加载模型数据......我也使用本地服务器集对其进行了测试向上。我相信 api 中存在某种“加载完成”事件的开放功能请求。
  • 是的,它是:code.google.com/p/earth-api-samples/issues/detail?id=5 - 这是第 5 个请求,所以也许它永远不会被实现 :(
  • 是的,将不胜感激:(无论如何感谢您的帮助!
猜你喜欢
  • 2012-03-14
  • 2012-06-25
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2013-10-15
相关资源
最近更新 更多