#### # new VideoSketchEditor(options)

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object | 构造参数
`mapView` | VideoMapView | 视图
`sketchStyle` | SketchStyle | 草图样式

查看源代码 common/sketchEditor/VideoSketchEditor.js, line 13

### 继承关系

- SketchEditor

### 成员变量

类型: Number

#### # _drawTool

当前选中草图绘制工具

Overrides:
  - SketchEditor#_drawTool

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 110

类型: MapView | SecenView

#### # _editMode

草图编辑状态 0:没有画图或编辑状态 1:图形编辑 2:节点编辑 3:画图中

Overrides:
  - SketchEditor#_editMode

查看源代码 common/sketchEditor/base/SketchPointDrawTool.js, line 42

类型: function

#### # _hitTestEvent

草图拾取事件

Overrides:
  - SketchEditor#_hitTestEvent

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 37

类型: Array

#### # _hitTestEventHandlers

草图拾取事件处理集

Overrides:
  - SketchEditor#_hitTestEventHandlers

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 47

类型: GraphicsLayer

#### # _layer

草图图层

Overrides:
  - SketchEditor#_layer

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 27

类型: MapView | SecenView

#### # _mapView

地图视图

Overrides:
  - SketchEditor#_mapView

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 19

类型: Array

#### # _mouseEventHandlers

草图绘制鼠标事件处理集

Overrides:
  - SketchEditor#_mouseEventHandlers

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 42

类型: Number

#### # _redoUndoManager

草图回撤管理器

Overrides:
  - SketchEditor#_redoUndoManager

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 115

类型: Strign

#### # _sketchDataType

草图类型

Overrides:
  - SketchEditor#_sketchDataType

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 52

类型: SketchStage

#### # _sketchStage

草图绘图形集合

Overrides:
  - SketchEditor#_sketchStage

查看源代码 common/sketchEditor/base/SketchPointDrawTool.js, line 32

类型: SketchStyle

#### # _sketchStyle

草图符号

Overrides:
  - SketchEditor#_sketchStyle

查看源代码 common/sketchEditor/base/SketchBaseDrawTool.js, line 32

类型: Number

#### # _sketchTopologyTool

草图拓扑分析工具

Overrides:
  - SketchEditor#_sketchTopologyTool

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 130

类型: VideoPixelCoordTransforms

#### # readonly coorTransfomrs

像素坐标与地理坐标转换矩阵

Overrides:
  - SketchEditor#coorTransfomrs

查看源代码 common/sketchEditor/base/SketchEditor.js, line 61

类型: Number

#### # measureOption

草图量算配置项

Overrides:
  - SketchEditor#measureOption

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 105

类型: Object

#### # snappingOption

草图捕获配置项

Overrides:
  - SketchEditor#snappingOption

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 94

类型: Strign

#### # undoRedoManager

撤销回退管理器

Overrides:
  - SketchEditor#undoRedoManager

查看源代码 common/sketchEditor/base/SketchEditorNew.js, line 136

### 方法

#### # clearGeometry()

删除编辑中的几何

Overrides:
  - SketchEditor#clearGeometry

查看源代码 common/sketchEditor/base/SketchEditor.js, line 144

#### # getGeometry()

获取几何

Overrides:
  - SketchEditor#getGeometry

查看源代码 common/sketchEditor/base/SketchEditor.js, line 111

返回值:
类型: Geometry

#### # getSketchDataType()

获取当前草图数据类型

Overrides:
  - SketchEditor#getSketchDataType

查看源代码 common/sketchEditor/base/SketchEditor.js, line 102

返回值:
类型: SketchDataType

#### # getSketchStyle()

获取草图样式

Overrides:
  - SketchEditor#getSketchStyle

查看源代码 common/sketchEditor/base/SketchEditor.js, line 202

返回值:
类型: SketchStyle

#### # off(typesopt, fnopt, contextopt)

移除事件
示例如下:
[1、移除一个事件的指定回调函数]
[2、移除一个事件的所有回调函数]
[3、移除多个事件的同一个指定的回调函数]
[4、移除多个指定事件的回调函数]
[5、删除时指定上下文 - types类型为字符串]
[6、删除时指定上下文 - types类型为对象]

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`types` | string | 移除指定事件类型上绑定的回调函数 当类型为字符串时，可以移除单个或多个事件类型绑定的回调函数，单个事件："click"，多个事件：以空格分割:"click double-click"； 当types为对象时，使用如下方式移除事件：{'click': onClickFun, 'mouse-move': onMouseMoveFun}
`fn` | function | 事件回调函数，当types为字符串，且不指定要删除的回调函数时，删除该事件上的所有回调函数
`context` | Object | 事件回调函数的this关键字将指向的对象

Overrides:
  - SketchEditor#off

查看源代码 common/base/Evented.js, line 269

返回值:

当前实例

类型: Object

##### 示例

##### 移除一个事件的指定回调函数

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的off方法移除一个事件的回调函数
    view.off('click', clickFunction)

##### 移除一个事件的所有回调函数

    // 一个事件的回调函数1
    const clickFunction1 = function (event) {
      console.log("点击事件1:", event)
    }

    // 一个事件的回调函数2
    const clickFunction2 = function (event) {
      console.log("点击事件2:", event)
    }

    // 调用MapView或SceneView的off方法移除一个事件的所有回调函数
    // 不指定回调函数，则移除该事件上的所有绑定的回调函数
    view.off('click')

##### 移除多个事件的同一个指定的回调函数

    // 多个事件的同一个回调函数
    const eventFunction = function (event) {
      console.log("事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个事件的同一个指定的回调函数
    view.off('click double-click', eventFunction)

##### 移除多个指定事件的回调函数

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个指定事件的回调函数
    view.off({
       // 移除click事件上一个指定的函数
      "click": clickFunction,
      // 移除double-click上所有指定的函数
      "double-click": undefined
    })

##### 删除时指定上下文 - types类型为字符串

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的off方法移除一个事件的回调函数
    view.off('click', clickFunction, view)
    // 调用MapView或SceneView的off方法移除一个事件的所有回调函数
    view.off('click', undefined, view)

##### 删除时指定上下文 - types类型为对象

    // 一个事件的回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }
    // 调用MapView或SceneView的off方法移除多个指定事件的回调函数
    view.off({
       // 移除click事件上一个指定的函数
      "click": clickFunction,
      // 移除double-click上所有指定的函数
      "double-click": undefined
    }, view)

#### # on(typesopt, fnopt, contextopt)

注册一个新的监听事件;
示例如下：
[1、注册一个事件]
[2、一次注册多个事件 - 同一个回调函数]
[3、一次注册多个事件 - 分别指回调应函数]
[4、当types为字符串时 - 指定上下文]
[5、当types为对象时 - 指定上下文]

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`types` | String | Object | null | 事件类型 当types为字符串时，可以定义单个或多个事件，单个事件："click"，多个事件：以空格分割:"click double-click"； 当types为对象时，使用如下方式指定事件：{'click': onClickFun, 'mouse-move': onMouseMoveFun}
`fn` | function | null | 事件回调函数
`context` | Object | null | 事件回调函数的this关键字将指向的对象

Overrides:
  - SketchEditor#on

查看源代码 common/base/Evented.js, line 173

返回值:

当前实例

类型: Object

##### 示例

##### 注册一个事件

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    view.on('click', clickFunction)

##### 一次注册多个事件 - 同一个回调函数

    // 初始化一个事件回调函数
    const eventFunction = function (event) {
      console.log("事件:", event)
    }

    // 调用MapView或SceneView的on方法注册多个事件
    // 多个事件类型使用同一个回调函数
    view.on('click right-click-down', eventFunction)

##### 一次注册多个事件 - 分别指回调应函数

    // 初始化一个左键点击事件回调函数
    const clickFunction = function (event) {
      console.log("click事件:", event)
    }

    // 初始化一个右键按下事件回调函数
    const rightClickFunction = function (event) {
      console.log("right-click-down事件:", event)
    }

    // 调用MapView或SceneView的on方法注册多个事件
    // 每一个事件类型，使用单独的回调函数
    // 注意使用此种方式，一种类型的事件仅能指定一个回调函数
    view.on({
      "click": clickFunction,
      "right-click-down": rightClickFunction
    })

##### 指定上下文 - types类型为字符串

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
      console.log("上下文对象:", this)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    // 指定view为回调函数的上下文对象
    view.on('click', clickFunction, view)

##### 指定上下文 - types类型为对象

    // 初始化一个点击事件回调函数
    const clickFunction = function (event) {
      console.log("点击事件:", event)
      console.log("上下文对象:", this)
    }
    // 调用MapView或SceneView的on方法注册一个点击事件
    // 指定view为回调函数的上下文对象
    view.on({
      "click": clickFunction,
      "right-click-down": clickFunction
    }, view)

#### # setSketchStyle(sketchStyle)

设置草图样式

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`sketchStyle` | SketchStyle |

Overrides:
  - SketchEditor#setSketchStyle

查看源代码 common/sketchEditor/base/SketchEditor.js, line 169

##### 示例

    // ES5引入方式
    const { SimpleFillSymbol, SimpleLineSymbol } = Zondy.Symbol
    const { Color, SketchStyle } = Zondy
    // ES6引入方式
    import { SimpleFillSymbol, SimpleLineSymbol, Color, SketchStyle } from "@mapgis/webclient-common"
    // 新建一个填充样式
    const fillStyle = new SimpleFillSymbol({
      color: new Color(0, 255, 255, 1),
      outline: new SimpleLineSymbol({
        color: new Color(255, 0, 0, 1),
        width: 2
      })
    })
    // 新建一个草图样式
    const sketchStyle = new SketchStyle({
      // 传入填充样式给区注记使用
      fillStyle: fillStyle,
      // 绘制线注记时显示分段长度
      isShowSegmentLength: true,
      // 绘制区注记时显示面积
      isShowArea: true
    })
    videoSketchEditor.setSketchStyle(sketchStyle)

#### # start(dataType)

开始草图编辑

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`dataType` | SketchDataType | 草图编辑类型

Overrides:
  - SketchEditor#start

查看源代码 common/sketchEditor/base/SketchEditor.js, line 65

#### # stop()

结束草图编辑

Overrides:
  - SketchEditor#stop

查看源代码 common/sketchEditor/base/SketchEditor.js, line 90