SnapManager API
大约 1 分钟
SnapManager API
SnapManager 管理对象捕捉功能,在绘图和编辑时自动吸附到实体的特征点。
引入
const { SnapManager, SnapMode, getSnapModeList } = vjmapext;通常通过 mapcadLayer.snapManager 访问。
属性
| 属性 | 类型 | 说明 |
|---|---|---|
enabled | boolean | 捕捉开关,默认 true |
方法
setSnapMode(mode)
设置捕捉模式。
| 参数 | 类型 | 说明 |
|---|---|---|
| mode | number | 捕捉模式位标志的组合值 |
// 启用端点 + 中点 + 圆心捕捉
mapcadLayer.snapManager.setSnapMode(
SnapMode.Endpoint | SnapMode.Midpoint | SnapMode.Center
);MapCadLayer 快捷方法
| 方法 | 说明 |
|---|---|
setSnapEnabled(enabled: boolean) | 等同 snapManager.enabled = enabled |
setSnapMode(mode: number) | 等同 snapManager.setSnapMode(mode) |
SnapMode 位标志
| 常量 | 值 | 说明 |
|---|---|---|
Endpoint | 1 | 端点捕捉 |
Midpoint | 2 | 中点捕捉 |
Center | 4 | 圆心/弧心捕捉 |
Quadrant | 8 | 象限点捕捉 |
Intersection | 16 | 交点捕捉 |
Perpendicular | 32 | 垂足捕捉 |
Tangent | 64 | 切点捕捉 |
Nearest | 128 | 最近点捕捉 |
Node | 256 | 节点捕捉 |
组合模式
使用位或运算组合多个模式:SnapMode.Endpoint | SnapMode.Center。传入 0 可关闭所有捕捉。
类型定义
SnapPoint
interface SnapPoint {
point: Point2D;
type: SnapType;
}SnapType
type SnapType = 'endpoint' | 'midpoint' | 'center' | 'quadrant'
| 'intersection' | 'perpendicular' | 'tangent' | 'nearest' | 'node';工具函数
getSnapModeList()
返回所有捕捉模式的本地化列表,可用于构建 UI。
const { getSnapModeList } = vjmapext;
const modes = getSnapModeList();
// [{ name: '端点', mode: 1 }, { name: '中点', mode: 2 }, ...]