绘制要素类。通过事件处理器 Handler可以在vector图层上绘制点、线、面等要素,
通过 active 和 deactive 两个方法,实现动态的激活和注销。
调用 active 方法激活控件,如:
drawPoint.activate();
调用 deactive 方法注销控件,如:
drawPoint.deactivate();
SuperMap. |
绘制要素类。通过事件处理器 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. |
|
Functions | |
cancel | 取消当前的绘制。这会移除当前绘制的要素,并且保持绘制控件在激活状态。 |
finishSketch | 结束要素的绘制,不包括当前已经绘制的点要素。需要提前结束而不是用户结束绘制时,可以调用此方法。 |
insertDeflectionLength | 给定一个偏转角度和长度,相对应当前绘制要素,插入一个点。偏转角度是顺时针方向。 |
insertDeltaXY | 相对于上一个插入的点,给定一个偏移距离,再插入一个点。 |
insertDirectionLength | 给定一个方向(角度)和长度,相对于当前绘制的要素,插入一个点。 |
insertXY | 给定点坐标,将一个点添加到当前轮廓上。只有当前的绘制的要素为线时才有效。 |
redo | 重新插入当前移除的点,该方法多由undo方法引发。 当任意点被添加时,undo堆栈会被清除。 |
undo | 移除当前绘制的要素的最后一个点。 |
{SuperMap.Snap} 捕捉对象,用于在绘制过程中对其他要素进行捕捉
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 // 具体绘制过程可以参见范例《数据集查询编辑---几何查询》 }
给定点坐标,将一个点添加到当前轮廓上。只有当前的绘制的要素为线时才有效。
insertXY: function( x, y )
相对于上一个插入的点,给定一个偏移距离,再插入一个点。
insertDeltaXY: function( dx, dy )
给定一个方向(角度)和长度,相对于当前绘制的要素,插入一个点。
insertDirectionLength: function( direction, length )
给定一个偏转角度和长度,相对应当前绘制要素,插入一个点。偏转角度是顺时针方向。
insertDeflectionLength: function( deflection, length )
移除当前绘制的要素的最后一个点。
undo: function()
重新插入当前移除的点,该方法多由undo方法引发。 当任意点被添加时,undo堆栈会被清除。
redo: function()
结束要素的绘制,不包括当前已经绘制的点要素。需要提前结束而不是用户结束绘制时,可以调用此方法。
finishSketch: function()
取消当前的绘制。这会移除当前绘制的要素,并且保持绘制控件在激活状态。
cancel: function()