我使用google-maps-utility-library-v3将Google地球API视图合并到Google Maps API v3实现中。这些Google Maps API v3/Earth API实用程序由用户jlivni编写,据我所知,迄今为止,哪些代码对我的帮助非常大。Google Maps API v3谷歌地球API集成 - 加载时加载地球视图
(我的执行非常粗略的工作原型here)
我的问题是,我想预设(在页面加载)的谷歌地球视图,而不是(如上面的原型)一个的Maps API v3标准视图。
我已经看过线81,131和133(未编译?)googleearth.js在上面的链接(src下),并试图在我的JourneyImmersionInitialiseMapLoadGPXAnimate.js内设置地图API选项时,以下...
var myOptions = {
zoom: 18,
center: arr_lat_lon[currentTrk][currentTrkseg][0],
scaleControl: true,
tilt: 45,
mapTypeId: earthMapType,
overviewMapControl: true,
overviewMapControlOptions: {
opened: true
}
};
map = new google.maps.Map(document.getElementById("map"), myOptions);
...但得到...
ReferenceError: earthMapType is not defined
此外,我已经试过......
mapTypeId: GoogleEarth.earthMapType,
...这导致灰色地图画布在右上角没有地图类型选项。一旦我选择从页面我可以在标准地球API地图类型之间在使用Firebug的控制台,然后改变地球视图...
earth.getInstance().getOptions().setMapType(earth.getInstance().MAP_TYPE_EARTH)
......或者......
earth.getInstance().getOptions().setMapType(earth.getInstance().MAP_TYPE_SKY)
...但同样,在地方的最后一个元素的使用导致earthMapType或GoogleEarth.earthMapType的一个错误在Firebug控制台,这一次......
Error: Error calling method on NPObject!
任何帮助将不胜感激。 在此先感谢
(因为我是一个新手,我不能提供这个职位两个以上的链路,但想补充一点,我已经看过stackoverflow.com/questions/3039250/google-earth-integrated- with-google-maps-api-v3)
感谢您的迅速响应,非常感谢。功能请求(参考191)添加到问题跟踪器。上面的黑客攻击确实很好。在我选择答案之前,我想知道是否可以阐明实现答案时的一个敲门效应:在添加'setTimeout('googleEarth.showEarth _();',1000);'(你的答案)之前,我的调用(例如)'googleEarth.getInstance()。getView()。setAbstractView(lookAt);'工作正常,但现在它不 - 我应该以不同的方式调用实例,即不是googleEarth.getInstance()?感谢 – 2012-08-03 09:44:11
...对不起:'不起作用',因为它不会将选定的可见Google地球视图平移到我的lookAt变量中定义的位置,在添加'setTimeout('googleEarth.showEarth_() ;',1000);'如果我先从画布右上角手动选择Google地球视图。谢谢 – 2012-08-03 09:47:54
在showEarth_()完成之后(可能在第一次调用它几秒钟后),您对地球实例执行的所有操作(包括设置抽象视图)都需要完成。当我得到你的功能要求时,我还会添加一个你可以听的事件,以便你知道它什么时候准备好了...... – jlivni 2012-08-03 19:01:30