![]() |
1
2
一般来说,OpenLayers绝对不支持googleearth的3D模式(我是OpenLayers的开发人员,我只知道这是 可能的 OpenLayers主要是一个2D绘图客户机,不太可能实现将其所有调用转换为GoogleMaps/EarthAPI调用的功能。
简而言之:这是行不通的,没有简单的解决方案。如果你想要3D,你可能需要自己构建更多。 |
![]() |
2
1
Google地图v3的googleearth插件通过 script from the google-maps-utility-library-v3 (googleearth.js) @jlivni 已经采取的措施是监听googlemapsv3的add/remove事件并添加相应的googleearth Api对象。 我相信类似的方法也可以用于OpenLayers。我是OpenLayers的新手,刚刚开始研究这个问题,但我会在这里发布更新。 我现在唯一能补充的是Google Earth插件的初始化,这在v3中是不同的:
复杂的部分是我们需要为googleearth定义一个新的地图类型,并将这个类型添加到googlemap对象中。但是如果不创建一个类型为Google.maps.MapTypeId.SATELLITE的图层,Google地图对象就不存在了。 不是很干净,但至少它让我的状态与作者的这篇文章谷歌地图v3。 最后,可以通过修改findMapTypeControlDiv()函数使OpenLayers控件可见:
[更新] 我已经修改了findMapTypeControlDiv()函数,现在我寻找OpenLayers LayerSwitcher:
[更新2] 我已经解决了图层切换面板的问题。诀窍是将googleearth插件div附加到正确的div(GMaps的原始代码将其附加到Map Controls数组)。另一个问题是设置zIndex以确保LayerSwitcher位于顶部。 当GE插件运行时,我仍然有一个问题,我试图最小化LayerSwitcher,调用OpenLayers.Event.stop()使GE插件崩溃(Chrome)或LayerSwitcher消失(IE8)。 我想从Google派生原始代码,制作一个在OpenLayers上工作的GE插件层。 不管怎样,这里是我最新的变化:
我在这里建立了一个github项目: https://github.com/ZiglioUK/GoogleEarth-for-OpenLayers |
![]() |
3
0
我对OpenLayers中不同的层类型已经不太熟悉了,但关键是googleearth API和googlemapsapi是完全不同的。乍一看,我不明白为什么需要将它添加到googlemaps类型中(假设我是这么认为的)。 正如Chris已经暗示的那样,只需将您的Earth API集成视为与任何现有Google层完全不同的全新事物;这些API中的语法和概念并不十分相似,至少据我所知,它们不足以让您获得在OpenLayers中对现有Google地图集成进行子类化的任何优势。 也就是说,我希望mapsv3/Earth集成的代码将是有帮助的,并且类似于将它与OpenLayers集成所需的操作。同时,我也看到一些其他人也对此进行了尝试,比如这个geoExt示例,您可能也会发现它很有用: http://dev.geoext.org/sandbox/cmoullet/ux/GoogleEarthPanel/examples/GoogleEarthPanelExample.html |
![]() |
Bill · 在Mac/Chrome中使用CSS缩放播放器混乱 10 年前 |
![]() |
Bill · 动态更改链接的KML文件中多边形的颜色 11 年前 |
![]() |
Nicholas Pappas · 谷歌地球回调未启动 12 年前 |