2013-03-01 57 views
0

在OpenLayers 2D地图中,有一个属性称为限制范围,不允许在定义的边界框外平移或缩放。Google地球插件 - 限制范围或框

我可以在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

为什么你不告诉我们你已经在做什么,所以我们可以提供关于如何扩展它的建议 – lifeIsGood 2013-03-02 01:04:43

+0

那里我用我最初的代码更新了问题..谢谢! – gonzalomelov 2013-03-05 14:32:54

回答

0

也许你应该考虑使用hitTest()代替getViewportGlobeBounds()

参见本SO Question可链接到这个Google Example

具有与谷歌例一出戏倾斜角度,看到两个

之间所产生的差