在OpenLayers 2D地图中,有一个名为受限范围的属性,不允许在定义的边界框外平移或缩放。
我可以在3D中使用Google地球插件制作类似内容吗?
显然,问题在于人们可以弯曲(倾斜)视图,这在2D中是无法实现的。 如果地图没有在地图中弯曲或倾斜,我已经限制了视图,但这远远不是我想要的......
谢谢!
更新1:
到目前为止,我已经在viewchangeend事件上使用处理程序限制了bbox,如果实际视口(北,南,东,西)超出某些预定义的初始值,我将视图再次移动到初始位置。
var viewchangeend = function viewchangeendhandler(){
var actualViewport = {
north: ge.getView().getViewportGlobeBounds().getNorth(),
south: ge.getView().getViewportGlobeBounds().getSouth(),
east: ge.getView().getViewportGlobeBounds().getEast(),
west: ge.getView().getViewportGlobeBounds().getWest()
};
if (actualViewport.north > initialViewport.north || actualViewport.south < initialViewport.south ||
actualViewport.east > initialViewport.east || actualViewport.west < initialViewport.west){
var la = ge.createLookAt('');
la.set(initialX, initialY, 0, ge.ALTITUDE_RELATIVE_TO_GROUND, 0 , 0, 50000);
ge.getView().setAbstractView(la);
}
}
例如,在我不倾斜视图的初始情况下,南北(北减去南)的关系是静态的,但是当我倾斜视图时,关系会增长,并且初始视口不能用于知道实际的视口没关系。
再次感谢!
答案 0 :(得分:0)
也许您应该考虑使用hitTest()
代替getViewportGlobeBounds()
请参阅此SO Question链接到此Google Example
的链接通过倾斜视图来查看Google示例,并查看两者之间产生的差异