new SketchModelDrawTool(options)
三维模型草图绘制工具。
用于在三维草图编辑中放置、拾取和编辑 glTF/GLB 等模型资源。工具以点几何作为模型锚点,
并通过 ObjectSymbol3DLayer 的资源地址和模型矩阵维护模型的平移、缩放和旋转状态。
| Name | Type | Default | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | {} |
可选
构造参数。
|
Example
创建模型绘制工具
// ES5 引入方式
const { SketchModelDrawTool } = zondy.tool.sketch
// ES6 引入方式
import { SketchModelDrawTool } from '@mapgis/webclient-common'
const drawTool = new SketchModelDrawTool({
view,
layer,
extensionOptions: {
modelUrl: './model.glb'
}
})
drawTool.start()
Extends
Members
-
arcTypeNumber
-
弧线类型
-
editOptionObject
-
草图选中编辑配置项
-
elevationInfoSketchStyle
-
图形高程模式参数
-
extensionOptionsObject
-
草图编辑的扩展属性,可以通过该属性传入草图编辑额外需要的参数
-
layerGraphicsLayer
-
草图图层
-
sketchStageSketchStage
-
草图绘图形集合
-
sketchStyleSketchStyle
-
草图符号
-
typeString
-
草图工具类型名
-
undoRedoManagerString
-
草图撤销回退管理器
-
地图视图
Methods
-
inherited _getProjectionOnRotatedAxes(rotationAngle, startPoint, endPoint){Object}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3294 -
计算点2到中心点在旋转后坐标轴上的投影距离
Name Type Description rotationAnglenumber 旋转角度(弧度)
startPointObject 起始点(中心点),格式 { x, y }
endPointObject 终止点(目标点),格式 { x, y }
Returns:
Type Description Object 返回 { x, y } 表示在旋转后坐标系中的投影距离 -
inherited _getProjectionOnRotatedAxes1(rotation, startPoint, endPoint){Object}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3331 -
计算点到坐标轴方向的分量
Name Type Description rotationnumber 坐标系旋转角度(弧度,正值为顺时针)
startPointObject 起点(原点)像素坐标 {x, y}
endPointObject 终点(P点)像素坐标 {x, y}
Returns:
Type Description Object 返回 {x, y} - 点在旋转后坐标系的x轴和y轴方向上的分量距离 -
inherited _getSphereCenterPoint()
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 4041 -
获取立体几何的中心点
-
inherited _rotatePoint(angleDegrees, P, Q){Object}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3384 -
计算点Q绕点P旋转后的坐标
Name Type Description angleDegreesnumber 旋转角度(度),逆时针为正,顺时针为负
PObject 旋转中心点坐标
QObject 旋转前Q点坐标
Returns:
Type Description Object Q点旋转后的坐标 -
addFeature(point, sketchStyle, attributes, layer){void}
sketchEditor/base/drawTools/SketchModelDrawTool.js, line 161 -
添加模型草图要素。
根据模型锚点创建点几何模型要素,并添加到目标图层。
Name Type Description pointPoint | Array.<Number> 模型锚点。
sketchStyleSketchStyle | SketchStyle3D 符号样式参数。
attributesObject 可选 写入模型要素的属性对象。
layerGraphicsLayer 可选 要素添加到的目标图层。
Returns:
Type Description void -
addFeatureByGeometry(geometry, sketchStyle, attributes, layer){void}
sketchEditor/base/drawTools/SketchModelDrawTool.js, line 197 -
通过已有几何添加模型草图要素。
该入口用于从外部几何或持久化结果恢复模型草图。
Name Type Description geometryGeometry 模型锚点几何。
sketchStyleSketchStyle | SketchStyle3D 符号样式。
attributesObject 可选 写入模型要素的属性对象。
layerGraphicsLayer 可选 要素添加到的目标图层。
Returns:
Type Description void -
inherited addVertex(point, index)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1954 -
当前草图图形中插入新的顶点
Name Type Description pointPoint 新增/插入顶点
indexNumber 新增点的索引值,索引值从0开始
-
drawFeature(){void}
sketchEditor/base/drawTools/SketchModelDrawTool.js, line 97 -
开始鼠标点击放置模型。
单击地图后将屏幕点转换为地图点,创建模型要素并触发绘制完成事件。
Returns:
Type Description void -
inherited getDistanceByPixel(pixel){Number}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1975 -
根据像素单位获取距离
Name Type Description pixelNumber 编辑状态码
Returns:
Type Description Number 距离 -
inherited getMidScaleCoordinates(coordinates, direction, extent, startPoint, movePoint, oriCoordinates){Number}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2106 -
获取图形通过四个中点缩放后的坐标
Name Type Description coordinatesArray 坐标数组
directionString 方向
extentExtent 图形extent范围
startPointPoint 移动前的点
movePointPoint 移动后的点
oriCoordinatesPoint 图形原始坐标
Returns:
Type Description Number 缩放后的坐标 -
inherited getPanCoordinates(coordinates, deltaX, deltaY, pointType, extent){Number}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1993 -
获取平移后的坐标
Name Type Description coordinatesArray 坐标数组
deltaXNumber x轴偏移量
deltaYNumber y轴偏移量
pointTypeNumber 点属性类型
extentNumber 点所在范围
Returns:
Type Description Number 平移后的坐标 -
inherited getScaleCoordinates(coordinates, direction, extent, startPoint, movePoint, oriCoordinates){Number}
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2023 -
获取图形通过四个顶点缩放后的坐标
Name Type Description coordinatesArray 坐标数组
directionString 方向
extentExtent 图形extent范围
startPointPoint 移动前的点
movePointPoint 移动后的点
oriCoordinatesPoint 图形原始坐标
Returns:
Type Description Number 缩放后的坐标 -
hitTestFeature(feature, event, options){void}
sketchEditor/base/drawTools/SketchModelDrawTool.js, line 319 -
拾取模型草图并进入对应编辑状态。
方法会缓存模型外包球、primitive 和模型矩阵,用于后续旋转、缩放和平移辅助图形计算。
Name Type Description featureFeature 被拾取的模型要素。
eventObject 拾取事件参数。
optionsObject 拾取附加参数。
Name Type Description modelBoundingGeometryObject 模型外包球和中心点信息。
modelMatrixCesium.Matrix4 模型当前矩阵。
primitiveObject Cesium primitive 对象。
Returns:
Type Description void -
inherited removeDrawTool()
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1922 -
清除草图绘制工具
-
inherited removeVertex(index)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1967 -
移除草图图形的某个顶点
Name Type Description indexNumber 需移除的顶点的索引值,索引值从0开始
-
inherited selectFeatureRotate(feature)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3814 -
选中feature图形旋转
Name Type Description featureFeature 被选中feature对象
-
inherited setSketchStyle(sketchStyle)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1742 -
设置草图样式
Name Type Description sketchStyleSketchStyle -
inherited setSnapAndReferGeometries(geometries)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2874 -
设置捕获和线造区边界参考几何图形集合
Name Type Description geometriesArray.<Geometry> 可选,几何图形集合。
-
inherited setSnapFeatures(features)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3808 -
设置捕获和线造区边界参考几何图形集合
Name Type Description featuresArray.<Geometry> 可选,几何图形集合。
-
inherited start()
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 176 -
开始绘制草图
-
inherited stop()
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 189 -
停止绘制草图
-
inherited updateFeature(point, feature)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1900 -
更新feature
Name Type Description pointPoint 待更新的位置
featureFeature 被更新的feature
-
inherited updateVertex(point, index)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1961 -
更新当前草图图形的某个顶点
Name Type Description pointPoint 新的顶点
indexNumber 需更新的顶点的索引值,索引值从0开始