0
使用Google Earth插件,我试图加载KML文件,查找并渲染其LookAt组件,并且在视图完成渲染后,加载参观 控件。Google地球插件:setTour()AFTER setAbstractView()完成渲染
我不是很流利的javascript,我不知道我遇到的问题是javascript idiocy(我的)还是无视GEP的工作方式。在阅读文档时,没有看到GEP为go.getView()提供的任何“endevent”。setAbstractView()...
因此,我尝试了我能想到的最简单的事情...超时。它加载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);