Javascript 从OpenLayers中的“选择框”获取框边界

Javascript 从OpenLayers中的“选择框”获取框边界,javascript,openlayers,Javascript,Openlayers,我有一个OpenLayers地图,我希望用户能够通过拖动鼠标(类似于,首先选择“选择特征(0个特征已选定)”选项)绘制一个框,并获得绘制框的边界 我可以像下面这样使用smth来绘制长方体,但是当地图中没有特征或没有选择特征时,它将不起作用,这肯定是事实 new OpenLayers.Control.SelectFeature(this._layers.osm, { multiple: true, box: true, hover: false,

我有一个OpenLayers地图,我希望用户能够通过拖动鼠标(类似于,首先选择“选择特征(0个特征已选定)”选项)绘制一个框,并获得绘制框的边界

我可以像下面这样使用smth来绘制长方体,但是当地图中没有特征或没有选择特征时,它将不起作用,这肯定是事实

new OpenLayers.Control.SelectFeature(this._layers.osm, {
        multiple: true,
        box: true, 
        hover: false, 
        toggleKey: 'ctrlKey', 
        multipleKey: 'shiftKey',
        onBeforeSelect: function() {
            console.log(arguments);
        }
    })
在OpenLayers中有没有一种简单的方法来实现这一点,或者我应该通过跟踪鼠标拖动并相应地绘制/删除多边形来完成繁重的工作

谢谢。

尝试使用SelectFeature控件的事件(需要2.12)

但此事件不返回边界或所做的选择,只返回层数组

另一个选项是在外部创建Handler.Box,在某些情况下,我会这样做:

var mySelectFeature = OpenLayers.Control.SelectFeature(...);
var myHandlerBox = new OpenLayers.Handler.Box(
    mySelectFeature, {
        done: function(bounds) {
            OpenLayers.Control.SelectFeature.prototype.selectBox.apply(
                              mySelectFeature, arguments);
            ... your code ...
        }
    },
    {}
);

仅包含WMS图层的地图中可能的要素是什么?我尝试了您的代码示例,但是没有调用“done”回调函数,因为我想没有选择任何功能。。。谢谢。事实上,我采用了Handler.Box方法。我创建了一个自定义控件并使用了Handler.Box,如示例所示+1并接受为我指明正确方向的答案。