kmz文件没有显示在谷歌地球插件中 - 必须缩放和解除缩放才能显示它

时间:2013-01-04 21:31:43

标签: javascript kml google-earth-plugin kmz

我必须使用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,但问题仍然存在。 我应该改变什么才能让它发挥作用?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

缩小,放大并没有做任何更快的加载模型 - 它只是将时间传递到加载。

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

除了尝试优化KMZ存档中的.dae和图像文件以减小文件大小之外,您还可以做很多事情。这将使模型加载和显示比当前更快。