Class: SketchModelDrawTool

SketchModelDrawTool

new SketchModelDrawTool(options)

sketchEditor/base/drawTools/SketchModelDrawTool.js, line 24

三维模型草图绘制工具。

用于在三维草图编辑中放置、拾取和编辑 glTF/GLB 等模型资源。工具以点几何作为模型锚点, 并通过 ObjectSymbol3DLayer 的资源地址和模型矩阵维护模型的平移、缩放和旋转状态。

Name Type Default Description
options Object {} 可选

构造参数。

Name Type Default Description
view MapView | SceneView 可选

地图视图对象,提供拾取、坐标转换和交互事件能力。

layer GraphicsLayer 可选

草图图层对象,用于承载绘制完成的模型要素。

sketchStyle SketchStyle | SketchStyle3D 可选

草图符号样式。工具会从点符号样式中读取 ObjectSymbol3DLayer

extensionOptions Object 可选

扩展参数。

Name Type Description
modelUrl String 可选

模型资源地址,会写入三维对象符号层的 resource.href

_moveDirection String 'horizontal' 可选

辅助编辑工具的移动方向,内部使用。

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

草图编辑的扩展属性,可以通过该属性传入草图编辑额外需要的参数

草图图层

sketchStageSketchStage

草图绘图形集合

sketchStyleSketchStyle

草图符号

typeString

草图工具类型名

undoRedoManagerString

草图撤销回退管理器

地图视图

Methods

inherited _getProjectionOnRotatedAxes(rotationAngle, startPoint, endPoint){Object}

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3294

计算点2到中心点在旋转后坐标轴上的投影距离

Name Type Description
rotationAngle number

旋转角度(弧度)

startPoint Object

起始点(中心点),格式 { x, y }

endPoint Object

终止点(目标点),格式 { x, y }

Returns:
Type Description
Object 返回 { x, y } 表示在旋转后坐标系中的投影距离

inherited _getProjectionOnRotatedAxes1(rotation, startPoint, endPoint){Object}

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3331

计算点到坐标轴方向的分量

Name Type Description
rotation number

坐标系旋转角度(弧度,正值为顺时针)

startPoint Object

起点(原点)像素坐标 {x, y}

endPoint Object

终点(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
angleDegrees number

旋转角度(度),逆时针为正,顺时针为负

P Object

旋转中心点坐标

Q Object

旋转前Q点坐标

Returns:
Type Description
Object Q点旋转后的坐标

addFeature(point, sketchStyle, attributes, layer){void}

sketchEditor/base/drawTools/SketchModelDrawTool.js, line 161

添加模型草图要素。

根据模型锚点创建点几何模型要素,并添加到目标图层。

Name Type Description
point Point | Array.<Number>

模型锚点。

sketchStyle SketchStyle | SketchStyle3D

符号样式参数。

attributes Object 可选

写入模型要素的属性对象。

layer GraphicsLayer 可选

要素添加到的目标图层。

Returns:
Type Description
void

addFeatureByGeometry(geometry, sketchStyle, attributes, layer){void}

sketchEditor/base/drawTools/SketchModelDrawTool.js, line 197

通过已有几何添加模型草图要素。

该入口用于从外部几何或持久化结果恢复模型草图。

Name Type Description
geometry Geometry

模型锚点几何。

sketchStyle SketchStyle | SketchStyle3D

符号样式。

attributes Object 可选

写入模型要素的属性对象。

layer GraphicsLayer 可选

要素添加到的目标图层。

Returns:
Type Description
void

inherited addVertex(point, index)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1954

当前草图图形中插入新的顶点

Name Type Description
point Point

新增/插入顶点

index Number

新增点的索引值,索引值从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
pixel Number

编辑状态码

Returns:
Type Description
Number 距离

inherited getMidScaleCoordinates(coordinates, direction, extent, startPoint, movePoint, oriCoordinates){Number}

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2106

获取图形通过四个中点缩放后的坐标

Name Type Description
coordinates Array

坐标数组

direction String

方向

extent Extent

图形extent范围

startPoint Point

移动前的点

movePoint Point

移动后的点

oriCoordinates Point

图形原始坐标

Returns:
Type Description
Number 缩放后的坐标

inherited getPanCoordinates(coordinates, deltaX, deltaY, pointType, extent){Number}

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1993

获取平移后的坐标

Name Type Description
coordinates Array

坐标数组

deltaX Number

x轴偏移量

deltaY Number

y轴偏移量

pointType Number

点属性类型

extent Number

点所在范围

Returns:
Type Description
Number 平移后的坐标

inherited getScaleCoordinates(coordinates, direction, extent, startPoint, movePoint, oriCoordinates){Number}

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2023

获取图形通过四个顶点缩放后的坐标

Name Type Description
coordinates Array

坐标数组

direction String

方向

extent Extent

图形extent范围

startPoint Point

移动前的点

movePoint Point

移动后的点

oriCoordinates Point

图形原始坐标

Returns:
Type Description
Number 缩放后的坐标

hitTestFeature(feature, event, options){void}

sketchEditor/base/drawTools/SketchModelDrawTool.js, line 319

拾取模型草图并进入对应编辑状态。

方法会缓存模型外包球、primitive 和模型矩阵,用于后续旋转、缩放和平移辅助图形计算。

Name Type Description
feature Feature

被拾取的模型要素。

event Object

拾取事件参数。

options Object

拾取附加参数。

Name Type Description
modelBoundingGeometry Object

模型外包球和中心点信息。

modelMatrix Cesium.Matrix4

模型当前矩阵。

primitive Object

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
index Number

需移除的顶点的索引值,索引值从0开始

inherited selectFeatureRotate(feature)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3814

选中feature图形旋转

Name Type Description
feature Feature

被选中feature对象

inherited setSketchStyle(sketchStyle)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1742

设置草图样式

Name Type Description
sketchStyle SketchStyle

inherited setSnapAndReferGeometries(geometries)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 2874

设置捕获和线造区边界参考几何图形集合

Name Type Description
geometries Array.<Geometry>

可选,几何图形集合。

inherited setSnapFeatures(features)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3808

设置捕获和线造区边界参考几何图形集合

Name Type Description
features Array.<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
point Point

待更新的位置

feature Feature

被更新的feature

inherited updateVertex(point, index)

sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1961

更新当前草图图形的某个顶点

Name Type Description
point Point

新的顶点

index Number

需更新的顶点的索引值,索引值从0开始