#### # new MeasureAreaTool(viewer, options)

面积测量工具

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`viewer` | Object |  | 视图
`options` | Object |  | 包含以下属性的对象
`callBack` | function | function(result, positions){} | 回调函数，返回测量结果值
`labelCallBack` | function | function(result, label){} | 测量完毕后提示框的回调函数，可以覆盖提示内容
`labelStyle` | LabelGraphics | {} | labelStyle 提示框样式，参考`LabelGraphics`
`lineStyle` | PolylineGraphics | {} | lineStyle 测量线式，参考`PolylineGraphics`
`polygonStyle` | PolygonGraphics | {} | polygonStyle 测量点样式，参考`PolygonGraphics`
`closePointStyle` | Billboard | {} | closePointStyle 删除测量结果图标样式，参考`Billboard`
`exHeight` | Number | 0 | 附加高程偏移 （避免遮挡）
`disableDepthTestDistance` | Number | Number.POSITIVE_INFINITY | 只要小于这个距离深度检测就会失效，就会一直显示在最前面 不会被遮挡
`spaceArea` | Boolean |  | 是否计算空间点面积 默认计算的是球面投影面积
`lineColor` | Cesium.Color |  | 边线颜色
`areaColor` | Cesium.Color |  | 选定区域颜色
`isTerrain` | Boolean | false | 是否针对地形，为true时对地形数据进行贴地面积测量，为false时进行空间面积测量
`xPaneNum` | Number | 32 | 地形贴地面积测量中，向经度方向插入采样点的数量
`yPaneNum` | Number | 32 | 地形贴地面积测量中，向纬度方向插入采样点的数量
`classificationType` | Number | 0 | 测量区域的绘制结果显示，区分地形、模型，为0代表在地形上绘制，为1代表在模型上绘制，为2代表同时在地形和模型上绘制
`style` | Cesium.LabelStyle | Cesium.LabelStyle.FILL | label 文字的样式，支持填充、线框。填充和线框， FILL, OUTLINE, FILL_AND_OUTLINE
`font` | String | '12pt 楷体' | label 的字体以及大小 @see https://html.spec.whatwg.org/multipage/canvas.html#text-styles
`fillColor` | Cesium.Color | Cesium.Color.WHITE | label 的字体颜色
`outlineColor` | Cesium.Color | Cesium.Color.WHITE | label 文字线框的颜色
`outlineWidth` | Number | 4.0 | label 的外轮廓边线
`verticalOrigin` | Cesium.VerticalOrigin | Cesium.VerticalOrigin.BOTTOM | label 的摆放位置
`showBackground` | Boolean | true | 是否显示 label 的背景
`backgroundColor` | Cesium.Color | new Cesium.Color(0, 0, 0, 0.4) | lable 背景的颜色
`pixelOffset` | Cartesian2 | new Cesium.Cartesian2(0, -4) | label 相对于设定点的偏移位置
`enableScaleByDistance` | Number | true | 是否启用标签随视角高度缩放功能
`scaleByDistance` | Number |  | 标签代销随视角高度缩放函数，用户可自定义，不传则使用默认函数,会传入一个当前的相机视角高度,返回一个NearFarScale函数对象，详见下方示例
`isContinueDraw` | Number | true | 是否连续绘制，true：是，false：否
`isMultiple` | Number | true | 是否显示多个测量结果，true：是，false：否
`showRuntimeResult` | Number | false | 是否显示实时的量算结果，true：是，false：否

作者:
  - 韩彦生

##### 示例

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

    function callBack(measureResult){
    }
    var measureAreaTool = new MeasureAreaTool(viewer,
    {
        callBack:callBack,
        isTerrain:true,
        xPaneNum:32,
        yPaneNum:32,
        scaleByDistance: function(height) {
            if (height < 30) {
                return new NearFarScalar(30, 3, 180, 0);
            } else if (height < 60) {
                return new NearFarScalar(60, 3, 360, 0);
            } else if (height < 120) {
                return new NearFarScalar(120, 3, 720, 0);
            } else if (height < 240) {
                return new NearFarScalar(240, 2, 1200, 0);
            } else if (height < 480) {
                return new NearFarScalar(480, 2, 2400, 0);
            } else if (height < 960) {
                return new NearFarScalar(960, 2, 4800, 0);
            } else if (height < 1920) {
                return new NearFarScalar(1920, 2, 9600, 0);
            } else if (height < 3840) {
                return new NearFarScalar(3840, 2, 19200, 0);
            } else if (height < 7680) {
                return new NearFarScalar(7680, 2, 38400, 0);
            } else if (height < 15360) {
                return new NearFarScalar(15360, 2, 76800, 0);
            } else if (height < 30720) {
                return new NearFarScalar(30720, 2, 153600, 0);
            } else if (height < 61440) {
                return new NearFarScalar(61440, 2, 307200, 0);
            } else if (height < 122880) {
                return new NearFarScalar(122880, 2, 614400, 0);
            } else if (height < 245760) {
                return new NearFarScalar(245760, 2, 1228800, 0);
            } else if (height < 491520) {
                return new NearFarScalar(491520, 2, 2457600, 0);
            } else if (height < 983040) {
                return new NearFarScalar(983040, 2, 4915200, 0);
            } else if (height < 1966080) {
                return new NearFarScalar(1966080, 2, 9830400, 0);
            } else if (height < 3932160) {
                return new NearFarScalar(3932160, 1, 19660800, 0);
            } else if (height < 7864320) {
                return new NearFarScalar(7864320, 1, 39321600, 0);
            } else if (height < 15728640) {
                return new NearFarScalar(15728640, 1, 78643200, 0);
            }
            return new NearFarScalar(15728640, 1, 78643200, 0);
        }
    });
    measureAreaTool.startTool();  //开始测量
    //measureAreaTool.stopTool(); //结束测量

### 方法

#### # clear()

清除所有测量结果，仍可绘制（绘制事件仍然是激活状态）

#### # startTool()

开始测量

#### # stopTool(isKeepResultopt)

结束测量，测量工具处于不能绘制(不激活状态)

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`isKeepResult` | Boolean | false | 是否保留测量结果。默认为false不保留测量结果