# Measure
查阅Leaflet API

#### new mars2d.thing.Measure(options)
thing/Measure.js 6

图上量算类

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 可选 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`hasEdit` | Boolean | `false` | 可选 是否可编辑
`isAutoEditing` | Boolean | `true` | 可选 完成测量时是否自动启动编辑(需要hasEdit:true时)
`isContinued` | Boolean | `false` | 可选 是否连续测量
`label` | Label.StyleOptions |  | 可选 测量结果文本的样式
`id` | String | Number | `createGuid()` | 可选 对象的id标识
`enabled` | Boolean | `true` | 可选 对象的启用状态
`eventParent` | BaseClass | Boolean |  | 可选 指定的事件冒泡对象，默认为所加入的map对象，false时不冒泡事件
`pid` | String | Number | `-1` | 可选 量算对应的图层父级的id，一般图层管理中使用
`name` | String | `''` | 可选 量算对应的图层名称

### 继承自

- BaseThing

### 属性值

#### enabled : Boolean
core/BaseThing.js 76

设置对象的启用和禁用状态。

继承自:
  - BaseThing#enabled

#### 只读 graphicLayer : GraphicLayer
thing/Measure.js 31

对应的矢量图层

#### 只读 graphics : Array.<Marker>|Array.<Polyline>|Array.<Polygon>|Array.<Circle>|Array.<Rectangle>|*
thing/Measure.js 41

图层内的Graphic集合对象

#### 只读 hasMeasure : Boolean
thing/Measure.js 51

是否有进行量算

#### id : String|Number
core/BaseThing.js 63

对象的id标识

继承自:
  - BaseThing#id

#### 只读 isAdded : Boolean
core/BaseThing.js 55

是否已添加到地图

继承自:
  - BaseThing#isAdded

#### 只读 options : Object
core/BaseClass.js 18

当前类的构造参数

继承自:
  - BaseClass#options

#### 只读 state : State
core/BaseThing.js 44

当前对象的状态

继承自:
  - BaseThing#state

### 方法

#### addEventParent(obj) → BaseClass
core/BaseClass.js 294

添加抛出事件到父类，它将接收传播的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#addEventParent

#### addTo(map) → BaseThing
core/BaseThing.js 95

添加到地图上，同 map.addThing

参数名称 | 类型 | 描述信息
--- | --- | ---
`map` | Map | 地图对象

##### 返回值:

当前对象本身，可以链式调用

继承自:
  - BaseThing#addTo

#### area(options) → AreaMeasure
thing/Measure.js 154

面积测量（水平面）

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`style` | Polygon.StyleOptions |  | 可选 面的样式
`unit` | String | `'auto'` | 可选 计量单位,`MeasureUtil#formatArea`可选值：auto、m、km、mu、ha 。auto时根据面积值自动选用k或km

##### 返回值:

面积测量控制类 对象

#### clear() → void
thing/Measure.js 184

清除测量

##### 返回值:

无

#### clearDrawing() → boolean
thing/Measure.js 192

清除正在绘制的对象

##### 返回值:

是否清除了对象

#### destroy(noDel) → void
core/BaseClass.js 33

销毁当前对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`noDel` | Boolean | `false` | 可选 false:会自动delete释放所有属性，true：不delete绑定的变量

##### 返回值:

无

继承自:
  - BaseClass#destroy

#### distance(options) → DistanceMeasure
thing/Measure.js 139

测量 空间长度

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`style` | Polyline.StyleOptions |  | 可选 路线的样式
`unit` | String | `'auto'` | 可选 计量单位,`MeasureUtil#formatDistance`可选值：auto、m、km、mile、zhang 。auto时根据距离值自动选用k或km
`maxPointNum` | Number | `9999` | 可选 绘制时，最多允许点的个数
`showAddText` | Boolean | `true` | 可选 是否显示每一段的增加部分距离，如（+10.1km）

##### 返回值:

长度测量控制类 对象

#### endDraw() → void
thing/Measure.js 175

完成绘制和编辑，如有未完成的绘制会自动完成。 在移动端需要调用此方法来类似PC端双击结束。

##### 返回值:

无

#### fire(type, data, propagate) → BaseClass
core/BaseClass.js 199

触发指定类型的事件。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | EventType | String |  | 事件类型
`data` | Object |  | 可选 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
`propagate` | BaseClass | Object | `null` | 可选 将事件传播给父类 (用addEventParent设置)

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#fire

#### hasEventParent(obj) → BaseClass
core/BaseClass.js 321

是否绑定了抛出事件到指定父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#hasEventParent

#### listens(type, propagate) → Boolean
core/BaseClass.js 244

是否有绑定指定的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | EventType | String | 事件类型
`propagate` | Object | 可选 是否判断指定的父类 (用addEventParent设置的)

##### 返回值:

是否存在

继承自:
  - BaseClass#listens

#### off(types, fn, context) → BaseClass
core/BaseClass.js 90

解除绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | EventType | String | Array.<EventType> | 可选 事件类型,未传值时解绑所有事件
`fn` | function | 可选 绑定的监听器回调方法,未传值时解绑所有指定类型对应事件
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#off

#### on(types, fn, context) → BaseClass
core/BaseClass.js 52

绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 组织事件冒泡

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | EventType | String | Array.<EventType> | 事件类型
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#on

#### once(types, fn, context) → BaseClass
core/BaseClass.js 271

绑定一次性执行的指定类型事件监听器 与on类似，监听器只会被触发一次，然后被删除。

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | EventType | String | Array.<EventType> | 事件类型
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#once

#### remove(destroy) → void
core/BaseThing.js 108

从地图上移除，同map.removeThing

参数名称 | 类型 | 描述信息
--- | --- | ---
`destroy` | Boolean | 可选 是否调用destroy释放

##### 返回值:

无

继承自:
  - BaseThing#remove

#### removeEventParent(obj) → BaseClass
core/BaseClass.js 307

移除抛出事件到父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - BaseClass#removeEventParent

#### stopDraw() → Measure
thing/Measure.js 165

取消并停止绘制，如有未完成的绘制会自动删除

##### 返回值:

当前对象本身,可以链式调用

#### updateUnit(unit) → void
thing/Measure.js 202

更新量测结果的单位

参数名称 | 类型 | 描述信息
--- | --- | ---
`unit` | String | 计量单位,`MeasureUtil#formatDistance` `MeasureUtil#formatArea` 可选值：auto、m、km、mile、zhang 等。auto时根据距离值自动选用k或km

##### 返回值:

无