我有一个OpenLayers Map ,我希望用户能够通过拖动鼠标来绘制一个框(类似于this example here,首先选择"select feature (0 features selected)"选项)并获取绘制框的边界 .
我可以设法使用下面的smth绘制框,但是当 Map 中没有任何特征或没有选择任何特征时它将无法工作,而且肯定会是这种情况 .
new OpenLayers.Control.SelectFeature(this._layers.osm, {
multiple: true,
box: true,
hover: false,
toggleKey: 'ctrlKey',
multipleKey: 'shiftKey',
onBeforeSelect: function() {
console.log(arguments);
}
})
有没有一种简单的方法可以在OpenLayers中实现这一点,或者我应该通过跟踪鼠标拖动和相应的绘制/删除多边形来完成繁重的工作?
谢谢 .
1 回答
尝试使用
"boxselectionend"
SelectFeature控件事件(需要2.12)但是这个事件不返回边界或做出的选择,只返回一个图层数组 .
另一种选择是在外部创建Handler.Box,这在某些情况下我做的是: