SuperMap.Control.DrawFeature

绘制要素类。通过事件处理器 Handler可以在vector图层上绘制点、线、面等要素,

通过 active 和 deactive 两个方法,实现动态的激活和注销。

调用 active 方法激活控件,如:

drawPoint.activate();

调用 deactive 方法注销控件,如:

drawPoint.deactivate();

Inherits from

Summary
SuperMap.Control.DrawFeature 绘制要素类。通过事件处理器 Handler可以在vector图层上绘制点、线、面等要素,
Properties
snap {SuperMap.Snap} 捕捉对象,用于在绘制过程中对其他要素进行捕捉
Constants
EVENT_TYPES {Array(String)} 支持的事件类型。 支持的事件类型: featureadded - 添加要素时触发此事件,触发此事件时会传入事件参数,事件参数包含了绘制的要素 feature 信息。 beforefeatureadded - 创建要素触发此事件,触发此事件时会传入事件参数,事件参数包含了绘制的要素 feature 信息。
Properties
featureAdded {Function} 当要素绘制成功时调用该函数。
handlerOptions {Object} 常用于设置控件的事件处理器的非默认属性。
multi {Boolean} 标识当前绘制的对象由多个部分组成。当多次绘制时,程序会将绘制的要素组合成一个要素。默认为false。
style {Object} 用于设置所绘制Feature的样式。默认为图层的样式。
Constructor
SuperMap.Control.DrawFeature
Functions
cancel 取消当前的绘制。这会移除当前绘制的要素,并且保持绘制控件在激活状态。
finishSketch 结束要素的绘制,不包括当前已经绘制的点要素。需要提前结束而不是用户结束绘制时,可以调用此方法。
insertDeflectionLength 给定一个偏转角度和长度,相对应当前绘制要素,插入一个点。偏转角度是顺时针方向。
insertDeltaXY 相对于上一个插入的点,给定一个偏移距离,再插入一个点。
insertDirectionLength 给定一个方向(角度)和长度,相对于当前绘制的要素,插入一个点。
insertXY 给定点坐标,将一个点添加到当前轮廓上。只有当前的绘制的要素为线时才有效。
redo 重新插入当前移除的点,该方法多由undo方法引发。 当任意点被添加时,undo堆栈会被清除。
undo 移除当前绘制的要素的最后一个点。

Properties

snap

{SuperMap.Snap} 捕捉对象,用于在绘制过程中对其他要素进行捕捉

Constants

EVENT_TYPES

{Array(String)} 支持的事件类型。 支持的事件类型: featureadded - 添加要素时触发此事件,触发此事件时会传入事件参数,事件参数包含了绘制的要素 feature 信息。 beforefeatureadded - 创建要素触发此事件,触发此事件时会传入事件参数,事件参数包含了绘制的要素 feature 信息。

Properties

multi

{Boolean} 标识当前绘制的对象由多个部分组成。当多次绘制时,程序会将绘制的要素组合成一个要素。默认为false。

featureAdded

{Function} 当要素绘制成功时调用该函数。

handlerOptions

{Object} 常用于设置控件的事件处理器的非默认属性。

style

{Object} 用于设置所绘制Feature的样式。默认为图层的样式。

Constructor

SuperMap.Control.DrawFeature

Parameters

layer {SuperMap.Layer.Vector} 执行绘制要素的图层。
handler {SuperMap.Handler} 要素绘制事件处理器,指定当前绘制的要素类型和操作方法。
options {Object} 设置该类及其父类开放的属性。

构建 DrawFeature 控件,可用如下方法:

//声明一个矢量图层 vectorLayer 控件,用来呈现画面要素
var vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
//实例化一个 DrawFeature 控件,调用绘制多边形的事件处理器 Handler.Polygon
var drawPolygon = new SuperMap.Control.DrawFeature(vectorLayer, SuperMap.Handler.Polygon);
//监听 featureadded 事件,当添加要素时会触发此事件
drawPolygon.events.on({"featureadded": drawCompleted});
//map上添加控件
map.addControl(drawPolygon);
//激活控件
drawPolygon.activate();

//定义 drawCompleted 函数,触发 featureadded 事件会调用此函数
//事件参数 eventArgs 包含了绘制的要素 feature 信息 {feature: featureObj}
function drawCompleted(eventArgs) {
    // 获取传入参数 eventArgs 的几何信息
    var geometry = eventArgs.feature.geometry;
    // TODO
    // 具体绘制过程可以参见范例《数据集查询编辑---几何查询》
}

Functions

insertXY

insertXY: function( x,
y )

给定点坐标,将一个点添加到当前轮廓上。只有当前的绘制的要素为线时才有效。

Parameters

x {Number} 点要素的X坐标值。
y {Number} 点要素的y坐标值。

insertDeltaXY

insertDeltaXY: function( dx,
dy )

相对于上一个插入的点,给定一个偏移距离,再插入一个点。

Parameters

dx {Number} 点要素的x坐标轴偏移量。
dy {Number} 点要素的y坐标轴偏移量。

insertDirectionLength

insertDirectionLength: function( direction,
length )

给定一个方向(角度)和长度,相对于当前绘制的要素,插入一个点。

Parameters

direction {Number} x坐标轴顺时针方向的角度。
length {Number} 相对于上一个点的距离。

insertDeflectionLength

insertDeflectionLength: function( deflection,
length )

给定一个偏转角度和长度,相对应当前绘制要素,插入一个点。偏转角度是顺时针方向。

Parameters

deflection {Number} 相对于上一个要素片段(例如:组成折线的最后一条直线)的顺时针角度。
length {Number} 相对于上一个点的距离。

undo

undo: function()

移除当前绘制的要素的最后一个点。

Returns

{Boolean} 操作是否成功。

redo

redo: function()

重新插入当前移除的点,该方法多由undo方法引发。 当任意点被添加时,undo堆栈会被清除。

Returns

{Boolean} 操作是否成功。

finishSketch

finishSketch: function()

结束要素的绘制,不包括当前已经绘制的点要素。需要提前结束而不是用户结束绘制时,可以调用此方法。

cancel

cancel: function()

取消当前的绘制。这会移除当前绘制的要素,并且保持绘制控件在激活状态。

捕捉类,在绘制以及编辑要素时,将捕捉类开启,则会捕捉的效果,即鼠标点在某一要素附近时,绘制点或者编辑点会被捕捉到要素上去
insertXY: function( x,
y )
给定点坐标,将一个点添加到当前轮廓上。只有当前的绘制的要素为线时才有效。
insertDeltaXY: function( dx,
dy )
相对于上一个插入的点,给定一个偏移距离,再插入一个点。
insertDirectionLength: function( direction,
length )
给定一个方向(角度)和长度,相对于当前绘制的要素,插入一个点。
insertDeflectionLength: function( deflection,
length )
给定一个偏转角度和长度,相对应当前绘制要素,插入一个点。偏转角度是顺时针方向。
undo: function()
移除当前绘制的要素的最后一个点。
redo: function()
重新插入当前移除的点,该方法多由undo方法引发。 当任意点被添加时,undo堆栈会被清除。
finishSketch: function()
结束要素的绘制,不包括当前已经绘制的点要素。需要提前结束而不是用户结束绘制时,可以调用此方法。
cancel: function()
取消当前的绘制。这会移除当前绘制的要素,并且保持绘制控件在激活状态。
控件类,提供了多种控件,比如比例尺控件,鹰眼控件,缩放条控件等等。 用于处理 Control 事件的事件处理器 Handler,内部封装了一系列的浏览器事件, 在控件(control)实现过程中可调用Handler,通过 active和 deactive两个方法,实现动态的激活和注销。
该图层用于渲染矢量要素。
用于处理Control事件的事件处理器。 事件处理器(Handler)内部封装了浏览器事件监听及其相应的处理方法,当一个事件处理器被激活时, Handler中定义的浏览器事件监听及其相应的方法被注册到浏览器监听器,在浏览器事件被触发之后, 首先会调用Handler中处理该浏览器事件的方法来做事件的确认和信息封装,然后才再传递给Control等做具体响应处理。 当一个处理器被注销,这些方法在事件监听器中也会相应的被取消注册。
Close