我正在使用google-maps-utility-library-v3将 Google Earth API 视图合并到 Google Maps API v3 实现中。据我所知,这些 Google Maps API v3 / Earth API 实用程序是由用户 jlivni 编写的,到目前为止,哪些代码的可用性对我帮助很大。
(我的实现的非常粗略的工作原型在这里)
我遇到的问题是我想默认(在页面加载时)谷歌地球视图,而不是(如上面的原型中)地图 API v3 标准视图之一。
我在上面的链接(在 src 下)查看了(未编译的?)googleearth.js 的第 81、131 和 133 行,并在我的 JourneyImmersionInitialiseMapLoadGPXAnimate.js 中设置 Maps 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,
...这会导致右上角没有地图类型选项的灰色地图画布。一旦我从页面中选择了地球视图,我就可以在 Firebug 的控制台上使用标准地球 API 地图类型进行更改...
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)