new SketchPrismDrawTool(options)
棱柱草图绘制工具。
基于多边形底面创建拉伸三维面符号,适用于在三维草图编辑中绘制和编辑棱柱图形。 工具继承区绘制能力,并额外维护高度控制点、顶点编辑辅助图形以及绕 Z 轴的旋转编辑状态。
| Name | Type | Default | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | {} |
可选
构造参数。
|
Example
创建棱柱绘制工具
// ES5 引入方式
const { SketchPrismDrawTool } = zondy.tool.sketch
// ES6 引入方式
import { SketchPrismDrawTool } from '@mapgis/webclient-common'
const drawTool = new SketchPrismDrawTool({
view,
layer,
entityHeight: 500,
entityType: 'prism'
})
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 _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(points, sketchStyle, attributes, layer){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 142 -
添加棱柱或棱锥草图要素。
根据传入底面点集创建多边形几何,并使用当前
sketchStyle.fillStyle中的三维拉伸符号层生成实体图形。 创建后的要素会写入sketchStage.entityGraphic,并添加到指定图层。Name Type Description pointsArray.<(Point|Array.<Number>)> 底面点坐标集合。数组元素可以是
Point实例或坐标数组。sketchStyleSketchStyle | SketchStyle3D 面符号样式参数。当前实现保留该参数以兼容调用签名,实际符号来源为工具实例的
sketchStyle。attributesObject 可选 写入草图要素的属性对象。
layerGraphicsLayer 可选 要素添加到的目标图层;未传入时由底层添加逻辑使用工具默认图层。
Returns:
Type Description void -
addMidVertex(index, point){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 739 -
添加边中点辅助顶点。
当前实现保留旧版调用入口,仅创建一个点绘制工具并写入
sketchStage.midVertexGraphics。Name Type Description indexNumber 中点插入位置索引。当前实现未使用该参数。
pointPoint 边中点位置。
Returns:
Type Description void -
addVertex(point, index){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 755 -
在当前棱柱或棱锥底面中插入新的顶点。
具体插入逻辑由父类区绘制工具实现,本方法保持棱柱工具的统一调用入口。
Name Type Description pointPoint 新增或插入的顶点。
indexNumber 新增顶点的索引值,索引值从 0 开始。
Returns:
Type Description void -
inherited drawFeature()
sketchEditor/base/drawTools/SketchPolygonDrawTool.js, line 71 -
鼠标绘制图形:鼠标单击绘制区的一个顶点;鼠标移动,区图形随鼠标位置变动;鼠标双击,完成区图形绘制。
-
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 缩放后的坐标 -
inherited removeDrawTool()
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 1922 -
清除草图绘制工具
-
removeVertex(index){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 783 -
移除当前棱柱或棱锥底面的指定顶点。
具体移除逻辑由父类区绘制工具实现,本方法保持棱柱工具的统一调用入口。
Name Type Description indexNumber 需要移除的顶点索引值,索引值从 0 开始。
Returns:
Type Description void -
selectFeature(feature){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 242 -
选中棱柱或棱锥草图要素。
选中时同步缓存当前实体要素和拉伸高度,然后交由父类加载整体编辑辅助图形。
Name Type Description featureFeature 被选中的草图要素。
Returns:
Type Description void -
inherited selectFeatureRotate(feature)
sketchEditor/base/drawTools/SketchBaseDrawTool.js, line 3814 -
选中feature图形旋转
Name Type Description featureFeature 被选中feature对象
-
selectFeatureVertex(feature){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 257 -
进入棱柱或棱锥顶点编辑状态。
该方法会清理整体编辑辅助图形,并重新创建顶点、中点和高度控制点辅助图形; 如果配置了撤销重做管理器,会记录本次编辑状态切换前后的辅助图形变更。
Name Type Description featureFeature 被选中的草图要素。
Returns:
Type Description void -
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 startPanGraphics(feature, event)
sketchEditor/base/drawTools/SketchPolygonDrawTool.js, line 740 -
平移图形
Name Type Description featureFeature 被选中feature对象
eventObject 拾取事件
-
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
-
updateVertex(point, index){void}
sketchEditor/base/drawTools/SketchPrismDrawTool.js, line 769 -
更新当前棱柱或棱锥底面的指定顶点。
具体更新逻辑由父类区绘制工具实现,本方法保持棱柱工具的统一调用入口。
Name Type Description pointPoint 新的顶点。
indexNumber 需要更新的顶点索引值,索引值从 0 开始。
Returns:
Type Description void