#### # new DrawElement(viewer)

几何绘制类

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`viewer` | Viewer | 视图对象

##### 示例

    // ES5引入方式
    const { DrawElement } = zondy.cesium
    // ES6引入方式
    import { DrawElement } from "@mapgis/webclient-cesium-plugin"

    var drawElement = new DrawElement();
    // 修改绘制类型，支持，贴地，贴模型等参数设置

### 方法

#### # destroy()

销毁对象

#### # setGroundPrimitiveType(groundPrimitiveTypeopt)

修改自定义绘图时Primitive是否贴合地面或者贴合模型的属性

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`groundPrimitiveType` | String | 'NONE' | {NONE, TERRAIN, MODEL, BOTH}，NONE不贴地也不贴模型，TERRAIN仅贴地，MODEL仅贴模型，BOTH都贴

##### 示例

    drawElement.setGroundPrimitiveType('TERRAIN');

#### # startDrawingCircle(options)

绘制圆

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object |
`callback` | function | 回调函数，用于返回绘制的圆的中心点和半径

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.startDrawingCircle({
        color: new Cesium.Color(0.2, 0.4, 0.3, 1.0),
        callback: function (result) {
            var circle = new zondy.esium.DrawElement.CirclePrimitive({
                center: result.center,
                radius: result.radius,
                height: result.height,
                asynchronous: false,
                material: Cesium.Material.fromType('Color', {
                    color: new Cesium.Color(1.0, 0.0, 0.0, 1.0)
                })
            });
            scene.primitives.add(circle);
            circle.setEditable();
            primitivesList.push(circle);
        }
    });

#### # startDrawingExtent(options)

绘制矩形区功能

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object |
`callback` | function | 回调函数，用于返回绘制的矩形的点

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.startDrawingExtent({
        color: new Cesium.Color(0.3, 0.8, 0.7),
        callback: function (result) {
            var redRectangle = new zondy.esium.DrawElement.ExtentPrimitive({
                extent: result.extent,
                height: result.height,
                material: Cesium.Material.fromType('Color', {
                    color: new Cesium.Color(1.0, 0.0, 0.0, 1.0)
                })
            });
            scene.primitives.add(redRectangle);
            redRectangle.setEditable();
            primitivesList.push(redRectangle);
        }
    });

#### # startDrawingMarker(options)

绘制圆

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object |
`callback` | function | 回调函数，用于返回绘制的圆的中心点和半径

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.startDrawingMarker({
        addDefaultMark: true,
        color: new Cesium.Color(0.5, 0.2, 0.8, 1.0),
        callback: function (result) {}
    });

    drawElement.startDrawingMarker({
        addDefaultMark: false,
        color: new Cesium.Color(0.5, 0.2, 0.8, 1.0),
        callback: function (result) {
        var pointGeometry = viewer.entities.add({
            position: result.position,
            point: {
                color: Cesium.Color.SKYBLUE,
                pixelSize: 10,
                outlineColor: Cesium.Color.YELLOW,
                outlineWidth: 3,
                disableDepthTestDistance: Number.POSITIVE_INFINITY
            }
        });
    }
    });

#### # startDrawingPolygon(options)

绘制多边形区功能

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object |
`callback` | function | 回调函数，用于返回绘制多边形的点

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.startDrawingPolygon({
        color: new Cesium.Color(0.5, 0.8, 0.3),
        callback: function (result) {
            //alert(position);
            var polygon = new zondy.esium.DrawElement.PolygonPrimitive({
                positions: result.positions,
                //material: Cesium.Material.fromType('Checkerboard') //materialEnd
                material: Cesium.Material.fromType('Color', {
                    color: new Cesium.Color(1.0, 0.0, 0.0, 1.0)
                })
            });
            scene.primitives.add(polygon);
            polygon.setEditable();
            primitivesList.push(polygon);
        }
    });

#### # startDrawingPolyline(options)

绘制线功能

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`options` | Object |
`callback` | function | 回调函数，用于返回绘制的线的点

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.startDrawingPolyline({
        color: new Cesium.Color(0.3, 0.7, 0.8, 1.0),
        callback: function (result) {
            var polyline = new zondy.esium.DrawElement.PolylinePrimitive({
                positions: result.positions,
                width: 1,
                geodesic: true
            });
            scene.primitives.add(polyline);
            polyline.setEditable();
            primitivesList.push(polyline);
        }
    });

#### # stopDrawing()

停止绘制

##### 示例

    var drawElement = new zondy.esium.DrawElement(viewer);
    drawElement.stopDrawing();