Google地球插件 - 受限制的范围或框

时间:2013-03-01 13:00:58

标签: google-earth-plugin

在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);
    }
}

例如,在我不倾斜视图的初始情况下,南北(北减去南)的关系是静态的,但是当我倾斜视图时,关系会增长,并且初始视口不能用于知道实际的视口没关系。

再次感谢!

1 个答案:

答案 0 :(得分:0)

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

请参阅此SO Question链接到此Google Example

的链接

通过倾斜视图来查看Google示例,并查看两者之间产生的差异