首页 / OpenLayers / 使用示例
框选要素
按住 Shift 拖出矩形,DragBox 的结束事件拿到范围,再用要素源的 getFeaturesInExtent 取出命中点并高亮。
源码与运行效果
说明
ol.interaction.DragBox 的 condition 决定什么手势开始框选,
示例用 ol.events.condition.shiftKeyOnly,避免和普通拖拽平移冲突。
框选结束时 getGeometry() 返回一个面,取它的 getExtent() 即可
交给 source.getFeaturesInExtent() 做范围查询。
命中的要素通过 clone() 复制到独立的高亮图层,原图层数据不变,
清空选择只需要清空高亮图层的数据源。
| 操作 | 结果 |
|---|---|
| 按住 Shift 拖拽 | 出现矩形选框,松开后高亮命中的点 |
| 点击「清空选择」 | 高亮图层清空,状态栏归零 |
| 普通拖拽 | 地图平移,不触发框选 |
DragBox 的默认样式类名是 ol-dragbox,需要改颜色时覆盖这个类的背景与边框即可。