我必须使用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,但问题仍然存在。 我应该改变什么才能让它发挥作用?
谢谢!
答案 0 :(得分:1)
只是模型花费时间加载到导致问题的插件中。我已经在一些操作系统上的许多浏览器中对它进行了测试,并且在所有情况下的行为都是相同的。
它在后续页面重新加载时起作用的原因是插件正在缓存数据,因此它实际上不是第二次获取数据。
缩小,放大并没有做任何更快的加载模型 - 它只是将时间传递到加载。
在我完成的每个测试中,模型总是加载 - 但可能需要2到10秒才能显示......
除了尝试优化KMZ存档中的.dae和图像文件以减小文件大小之外,您还可以做很多事情。这将使模型加载和显示比当前更快。