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