问题描述
||
我正在尝试使用Google Earth插件加载KML文件,查找并渲染其LookAt组件,并在视图渲染完成后加载游览
控件。
我不太熟练使用javascript,也不确定我遇到的问题是javascript愚蠢(我的)还是对GEP工作方式的不了解。阅读文档时,没有看到GEP为go.getView()。setAbstractView()提供的\“ endevent \” ...
因此,我尝试了我能想到的最简单的方法……超时。它加载kml并呈现kml LookAt,但根本不加载游览控件。如果删除if / timeout结构,则GEP会取消渲染setAbstractView并立即加载游览控件。有任何想法吗?
function whenloaded(kmlObject) {
if (!kmlObject) {
setTimeout(function() {
alert(\'Bad or Null KML file\');
},0);
return;
}
ge.getFeatures().appendChild(kmlObject);
if (kmlObject.getAbstractView() !== null) {
ge.getView().setAbstractView(kmlObject.getAbstractView());
}
// Walk the DOM looking for a KmlTour
walkKmlDom(kmlObject,function() {
if (this.getType() == \'KmlTour\') {
tour = this;
return false; // stop the DOM walk here.
}
});
}
var url = \'url/to/file.kml\';
google.earth.fetchKml(ge,url,whenloaded());
if (timeout !== null)
ge.getTourPlayer().setTour(tour);
// wait for 5000 ms
timeout = window.setTimeout(function() {
vcTimeout = null;
},5000);
解决方法
是的,它是javascript ...在这里的GEP组中回答了已更正的js,但是这种超时方法仍然太幼稚。