control~Plot(options)

标绘控件,支持点状、线状、面状几何体的标绘,同时绘制的几何体是面八字(一种拓扑结构)会出现不友好的效果。扩展几何体可以参考module:geomext
编辑状态下,选中要素后,鼠标置于节点位置,右键可以删除一个节点

Summary

Methods:
activate

激活标绘控件,只有将控件添加到地图上时才起作用。

clear

清空绘制内容,包括传入和内置的VectorLayer中的所有要素

deactivate

禁用标绘控件。如果标绘尚未结束,则取消当前正在进行的绘制行为,然后禁用控件。

destroy

销毁接口:销毁控件,释放占用的内存

disable3dPlot

禁用三维标绘,参数说明见构造参数enable3dPlot

disableEdit

禁用标绘控件的编辑功能

enable3dPlot

开启三维标绘,参数说明见构造参数enable3dPlot

enableEdit

启用标绘控件的编辑功能

getControlType

返回控件的类型

getLayer

获取承载标绘控件内容的图层

getPlotLayer

获取承载标绘控件内容的图层

getPlotType

获取标绘控件的绘制类型

isEditing

标绘控件是否处于编辑状态

isPlotting

标绘控件是否处于绘制状态

on

绑定事件,同一个绘制对象的同种类型事件,多次绑定前面的将被覆盖。

redo

正在绘制图形时,发生撤销节点操作后,重新执行之前的操作

removeEdit

禁用标绘控件的编辑功能,即将废弃,请使用disableEdit方法

setArrowSize

设置绘制出的折线箭头module:geomext~PolylineArrow、贝塞尔曲线箭头module:geomext~BezierCurveArrow、Cardinal曲线箭头module:geomext~CardinalCurveArrow
平行搜索区module:geomext~ParallelSearch、扇形搜索区module:geomext~SectorSearch中的箭头大小,地图单位。

setFeatureEdit

设置指定要素为编辑状态

setNextFeatureStyle

设置绘制样式,即将废弃

setPlotLayer

设置承载标绘控件内容的图层

setPlotStyle

设置绘制样式,已经绘制的要素样式不作更改

setPlotType

设置标绘类型。如果当前有正在进行的标绘行为,将被取消。

un

取消事件绑定

undo

正在绘制图形时,撤销当前的节点操作,已经完成绘制的要素不可撤销

Constructor

new Plot(options)

Parameters:
Name Type Description
options Object

必须项

Name Type Description
layer module:layer~VectorLayer

保存标绘要素的图层,建议单独为标绘创建一个图层,该图层单独使用一个画板。

editPointStyle module:style~Style

标绘控件修改要素时节点的样式,有默认样式

midPointStyle module:style~Style

标绘控件修改线、多边形要素时,节点之间有虚拟点位,表示中间可以新增点,虚拟点位的样式,有默认样式

enable3dPlot Boolean

是否开启三维标绘,默认为false,如果开启,标绘控件会和地图中enableHashCode为true的图层做相交判断,并以相交的三维坐标作为标绘点(注意有些几何比如矩形,对构造坐标的z值有要求,不支持三维标绘)。

mode Number

绘制时,地图平移模式,有两个枚举值0和1,默认为0。模式0下,开始标绘后,鼠标移动到边缘后地图自动平移,模式1下,开始标绘后,按CTRL或空格键地图可以拖动

snapTo Boolean

吸附。指在绘制状态,标识鼠标位置的移动点会自动吸附。默认为true。目前只支持xy平面的吸附。

pixelTolerance Number

吸附容差值,像素单位。指标绘移动点坐标到标绘图层其他要素的最近距离,在该距离内会触发自动吸附。默认为20。不设置或类型错误取用默认值。

Example
let plotControl = new hmap.control.Plot();
map.addControl(plotControl)

Methods

activate()

激活标绘控件,只有将控件添加到地图上时才起作用。

Example
plotControl.activate();

clear()

清空绘制内容,包括传入和内置的VectorLayer中的所有要素

deactivate()

禁用标绘控件。如果标绘尚未结束,则取消当前正在进行的绘制行为,然后禁用控件。

Example
plotControl.deactivate();

destroy()

销毁接口:销毁控件,释放占用的内存

Example
plotControl.destroy();

disable3dPlot()

禁用三维标绘,参数说明见构造参数enable3dPlot

disableEdit()

禁用标绘控件的编辑功能

enable3dPlot()

开启三维标绘,参数说明见构造参数enable3dPlot

enableEdit(editType)

启用标绘控件的编辑功能

Parameters:
Name Type Description
editType String

编辑类型,默认值为undefined,要素和节点都可以编辑

Example
//事件回调枚举:
//editType.FEATURE   只编辑要素(只拖动要素)
//editType.POINT     只编辑节点(只拖动节点)
plotControl.enableEdit(plotControl.editType.FEATURE)

getControlType() → {String}

返回控件的类型

Returns:
String -

标绘控件类型的名称。

getLayer() → {module:layer~VectorLayer}

获取承载标绘控件内容的图层

Returns:
module:layer~VectorLayer -

矢量图层

getPlotLayer() → {module:layer~VectorLayer}

获取承载标绘控件内容的图层

Returns:
module:layer~VectorLayer -

矢量图层

getPlotType() → {String}

获取标绘控件的绘制类型

Returns:
String -

绘制类型,参见PlotTypes枚举module:control~PlotTypes

isEditing() → {Boolean}

标绘控件是否处于编辑状态

Returns:
Boolean -

返回标绘控件的编辑状态,如果正在编辑则返回true,否则返回false

isPlotting() → {Boolean}

标绘控件是否处于绘制状态

Returns:
Boolean -

返回标绘控件的绘制状态,如果正在绘制则返回true,否则返回false

on(type, callback)

绑定事件,同一个绘制对象的同种类型事件,多次绑定前面的将被覆盖。

Parameters:
Name Type Description
type String

触发类型 plotEventType的项

callback function

回调函数

Example
//事件回调枚举:
//plotEventType.NEWPOINT     绘制图形时,新增一个节点时触发
//plotEventType.CHANGEPOINT  绘制图形时,控制点随鼠标变化时触发
//plotEventType.PLOTFINISHED 单个图形绘制完成时触发
//plotEventType.EDITSTART    编辑图形时,编辑单个节点前触发
//plotEventType.EDITPOINT    编辑图形时,编辑单个节点时触发
//plotEventType.EDITMOVEEND  编辑图形时,移动一个要素或节点结束时触发
//plotEventType.EDITFINISHED 编辑图形时,完成单个编辑时触发
plotControl.on(plotControl.plotEventType.NEWPOINT,function(data){
     console.log(data);
})

redo()

正在绘制图形时,发生撤销节点操作后,重新执行之前的操作

removeEdit()

禁用标绘控件的编辑功能,即将废弃,请使用disableEdit方法

Deprecated:
  • Yes

setArrowSize()

设置绘制出的折线箭头module:geomext~PolylineArrow、贝塞尔曲线箭头module:geomext~BezierCurveArrow、Cardinal曲线箭头module:geomext~CardinalCurveArrow
平行搜索区module:geomext~ParallelSearch、扇形搜索区module:geomext~SectorSearch中的箭头大小,地图单位。

setFeatureEdit(feature)

设置指定要素为编辑状态

Parameters:
Name Type Description
feature module:feature~Vector

矢量要素,确保该矢量要素已经添加到正在标绘的图层中

Example
plotControl.setFeatureEdit(feature);

setNextFeatureStyle(style)

设置绘制样式,即将废弃

Parameters:
Name Type Description
style module:style~Style

绘制样式

Deprecated:
  • Yes

setPlotLayer(layer)

设置承载标绘控件内容的图层

Parameters:
Name Type Description
layer module:layer~VectorLayer

矢量图层

setPlotStyle(style)

设置绘制样式,已经绘制的要素样式不作更改

Parameters:
Name Type Description
style module:style~Style

绘制样式,不设置或设置错误取标绘要素图层的样式

setPlotType(plotType)

设置标绘类型。如果当前有正在进行的标绘行为,将被取消。

Parameters:
Name Type Description
plotType String

设置绘制类型,参见PlotTypes枚举module:control~PlotTypes,如果设置undefined则停止绘制

un(type)

取消事件绑定

Parameters:
Name Type Description
type String

触发类型 plotEventType的项

undo()

正在绘制图形时,撤销当前的节点操作,已经完成绘制的要素不可撤销