Google Earth插件:setAbstractView渲染完成后的setTour

问题描述

|| 我正在尝试使用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,但是这种超时方法仍然太幼稚。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...