经纬志
首页 / OpenLayers / 使用示例

框选要素

按住 Shift 拖出矩形,DragBox 的结束事件拿到范围,再用要素源的 getFeaturesInExtent 取出命中点并高亮。

OpenLayers 10.3.1 · 对应官方 box-selection.html · 更新 2026-10-27
源码与运行效果
运行效果

说明

ol.interaction.DragBox 的 condition 决定什么手势开始框选, 示例用 ol.events.condition.shiftKeyOnly,避免和普通拖拽平移冲突。 框选结束时 getGeometry() 返回一个面,取它的 getExtent() 即可 交给 source.getFeaturesInExtent() 做范围查询。

命中的要素通过 clone() 复制到独立的高亮图层,原图层数据不变, 清空选择只需要清空高亮图层的数据源。

操作结果
按住 Shift 拖拽出现矩形选框,松开后高亮命中的点
点击「清空选择」高亮图层清空,状态栏归零
普通拖拽地图平移,不触发框选

DragBox 的默认样式类名是 ol-dragbox,需要改颜色时覆盖这个类的背景与边框即可。