我使用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