# Polyline
查阅Leaflet API

#### new mars2d.graphic.Polyline(options)
graphic/Polyline.js 72

线 矢量对象

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`latlngs` | Array.<L.LatLng> | * |  | 坐标数组
`style` | Polyline.StyleOptions |  | 可选 样式参数
`attr` | Object |  | 可选 属性信息
`hasEdit` | Boolean | `true` | 可选 是否可以编辑
`isAutoEditing` | Boolean | `false` | 可选 是否构造后就自动启动编辑(需要hasEdit:true时)
`hasMoveEdit` | Boolean | `true` | 可选 编辑时，是否可以整体平移
`popup` | String | HTMLElement | function |  | 可选 绑定的popup弹窗值，也可以bindPopup方法绑定
`popupOptions` | Map.PopupOptions |  | 可选 popup弹窗时的配置参数
`tooltip` | String | Array | function |  | 可选 绑定的tooltip弹窗值，也可以bindTooltip方法绑
`tooltipOptions` | Map.TooltipOptions |  | 可选 tooltip弹窗时的配置参数
`id` | String | Number |  | 可选 矢量数据id标识

##### 参考:

- `支持的事件类型`

### 继承自

- L.Polyline

### 属性值

#### 只读 area : Number
graphic/Polyline.js 165

围合的面积（单位：平方米）

#### attr : Object
graphic/Polyline.js 173

属性信息

#### 只读 center : L.LatLng
graphic/Polyline.js 143

中心点

#### 只读 coordinates : Array.<Array>
graphic/Polyline.js 130

经纬度位置坐标(数组对象)，示例 [ [123.123456,32.654321], [111.123456,22.654321] ]

#### 只读 distance : Number
graphic/Polyline.js 156

距离（单位：米）

#### id : String|Number
graphic/Polyline.js 100

对象的id标识

#### 只读 isAdded : Boolean
graphic/Polyline.js 220

是否已添加到地图

#### latlngs : Array.<L.LatLng>
graphic/Polyline.js 112

坐标位置数组

#### show : Boolean
graphic/Polyline.js 199

显示隐藏状态

#### style : Object
graphic/Polyline.js 186

样式信息

### 方法

#### addEventParent(obj) → Polyline
graphic/Polyline.js 881

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

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

##### 返回值:

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

#### addLatLng(latlng) → Polyline
graphic/Polyline.js 598

向折线添加一个给定点。 默认情况下，在多折线的情况下，将折线的第一个线添加，但可以通过将特定的线作为LatLng数组（您可以使用之前访问getLatLngs）来覆盖。

参数名称 | 类型 | 描述信息
--- | --- | ---
`latlng` | L.LatLng | 经纬度对象

##### 返回值:

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

#### addTo(map) → Polyline
graphic/Polyline.js 635

将图层添加到地图

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

##### 返回值:

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

#### bindContextMenu(contextmenuItems) → Map
graphic/Polyline.js 788

绑定右键菜单

参数名称 | 类型 | 描述信息
--- | --- | ---
`contextmenuItems` | Array.<Object> | 右键菜单数组

##### 返回值:

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

#### bindPopup(content, options) → Polyline
graphic/Polyline.js 654

绑定Popup弹窗配置

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | function | L.Popup | Popup弹窗内容
`options` | Map.PopupOptions | Object | 可选 Popup弹窗参数

##### 返回值:

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

#### bindTooltip(content, options) → Polyline
graphic/Polyline.js 721

绑定Tooltip弹窗配置

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | function | L.Tooltip | Tooltip弹窗内容
`options` | Map.TooltipOptions | Object | 可选 Tooltip弹窗参数

##### 返回值:

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

#### bringToBack() → Polyline
graphic/Polyline.js 626

将线移动到所有路径层的底部

##### 返回值:

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

#### bringToFront() → Polyline
graphic/Polyline.js 455

将线移动到所有路径层的顶部

##### 返回值:

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

#### closePopup() → Polyline
graphic/Polyline.js 684

关闭打开的弹窗

##### 返回值:

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

#### closeTooltip() → Polyline
graphic/Polyline.js 751

关闭打开的弹窗

##### 返回值:

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

#### destroy() → void
graphic/Polyline.js 902

销毁矢量对象

##### 返回值:

无

#### fire(type, data, propagate) → void
graphic/Polyline.js 842

触发指定类型的事件。

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

##### 返回值:

无

#### getBounds() → L.LatLngBounds
graphic/Polyline.js 608

获取线的矩形边界

##### 返回值:

矩形边界

#### getContextMenu() → Array.<Object>
graphic/Polyline.js 798

获取绑定的右键菜单

##### 返回值:

右键菜单数组

#### getLatLngs() → Array.<L.LatLng>
graphic/Polyline.js 589

返回折线的坐标点的数组，或者在多折线的情况下返回嵌套的点阵列。

##### 返回值:

经纬度数组

#### getPopup() → L.Popup
graphic/Polyline.js 712

获取当前绑定在图层上的Popup弹窗对象

##### 返回值:

Popup弹窗对象

#### getTooltip() → L.Tooltip
graphic/Polyline.js 779

获取当前绑定在图层上的Tooltip弹窗对象

##### 返回值:

Tooltip弹窗对象

#### isPopupOpen() → boolean
graphic/Polyline.js 693

当前绑定的弹窗是是否打开

##### 返回值:

是否打开弹窗

#### isTooltipOpen() → boolean
graphic/Polyline.js 760

当前绑定的弹窗是是否打开

##### 返回值:

是否打开弹窗

#### listens(type, propagate) → Boolean
graphic/Polyline.js 869

是否有绑定指定的事件

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

##### 返回值:

是否存在

#### off(types, fn, context) → void
graphic/Polyline.js 829

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

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

##### 返回值:

无

#### on(type, fn, context) → void
graphic/Polyline.js 816

绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | String | EventType | Object | 事件类型，当是Object时可以添加一组类型/侦听器对，例如 {click: onClick, mousemove: onMouseMove}
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### once(types, fn, context) → void
graphic/Polyline.js 855

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

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

##### 返回值:

无

#### openPopup(latlng) → Polyline
graphic/Polyline.js 674

打开Popup弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`latlng` | L.LatLng | 可选 位置,如果latlng没有设置则在默认的所在位置打开。

##### 返回值:

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

#### openTooltip(latlng) → Polyline
graphic/Polyline.js 741

打开Tooltip弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`latlng` | L.LatLng | 可选 位置,如果latlng没有设置则在默认的所在位置打开。

##### 返回值:

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

#### redraw() → Polyline
graphic/Polyline.js 617

重新绘制。在更改路径所使用的坐标之后会很有用。

##### 返回值:

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

#### remove() → Polyline
graphic/Polyline.js 645

将图层从地图上移除

##### 返回值:

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

#### removeEventParent(obj) → Polyline
graphic/Polyline.js 891

移除抛出事件到父类

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

##### 返回值:

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

#### setLatLngs(latlngs, updateEditeMarkers) → Polyline
graphic/Polyline.js 267

用给定的地理位置数组代替更新折线中的所有点。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`latlngs` | Array.<L.LatLng> |  | 经纬度数组
`updateEditeMarkers` | boolean | `true` | 可选 是否在编辑状态更新编辑点

##### 返回值:

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

#### setOffset(offset) → Polyline
graphic/Polyline.js 399

设置线的偏移值，常用于平行线

参数名称 | 类型 | 描述信息
--- | --- | ---
`offset` | Number | 偏移值（像素）

##### 返回值:

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

#### setPopupContent(content) → Polyline
graphic/Polyline.js 702

设定绑定在图层上的弹窗的内容

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | L.Popup | Popup弹窗内容

##### 返回值:

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

#### setStyle(newStyle) → Polyline
graphic/Polyline.js 287

设置 样式信息 的钩子方法

参数名称 | 类型 | 描述信息
--- | --- | ---
`newStyle` | Polyline.StyleOptions | 本次更新的部分样式信息,内部会合并属性

##### 返回值:

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

#### setTooltipContent(content) → Polyline
graphic/Polyline.js 769

设定绑定在图层上的弹窗的内容

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | String | HTMLElement | L.Tooltip | Tooltip弹窗内容

##### 返回值:

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

#### toGeoJSON(options) → Object
graphic/Polyline.js 319

将图层数据导出为GeoJSON格式规范对象。

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 可选 参数对象:
参数名称 | 类型 | 描述信息
--- | --- | ---
`precision` | Number | 可选 保留经纬度的小数位数

##### 返回值:

GeoJSON格式规范对象

#### toJSON() → Object
graphic/Polyline.js 581

将矢量数据的坐标、样式及属性等信息导出为对象，可以用于存储。

##### 返回值:

导出的坐标、样式及属性等信息

#### unbindContextMenu() → Map
graphic/Polyline.js 807

解除绑定右键菜单

##### 返回值:

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

#### unbindPopup() → Polyline
graphic/Polyline.js 665

解除绑定Popup弹窗配置

##### 返回值:

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

#### unbindTooltip() → Polyline
graphic/Polyline.js 732

解除绑定Tooltip弹窗配置

##### 返回值:

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

### 定义的类型

#### mars2d.graphic.Polyline.EventType
graphic/Polyline.js 46

当前类支持的`EventType`事件类型（包括自定义字符串事件名）

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`add` | String | 在矢量数据添加到图层(或地图)上之后触发
`remove` | String | 在矢量数据从图层(或地图)上移除之后触发
`click` | String | 当用户单击（or taps）地图时触发
`dblclick` | String | 当用户双击（or double-taps）地图时触发
`mousedown` | String | 当用户在图层上按下鼠标按钮时触发
`mouseover` | String | 当鼠标进入图层时触发
`mouseout` | String | 当鼠标离开图层时触发
`popupopen` | String | 当绑定到当前图层的Popup弹窗打开时触发
`popupclose` | String | 当绑定到当前图层的Popup弹窗关闭时触发
`tooltipopen` | String | 当Tooltip提示框绑定到这个图层并打开时触发
`tooltipclose` | String | 当Tooltip提示框绑定到这个图层并关闭时触发

##### 使用示例:

    //绑定监听事件
    graphic.on('click', function (event) {
      console.log('触发了事件',event)
    });

##### 参考:

- BaseClass#on
- BaseClass#off

#### mars2d.graphic.Polyline.StyleOptions
graphic/Polyline.js 10

线矢量对象 支持的样式信息

##### 属性:

属性名称 | 类型 | 可选 | 默认值 | 描述信息
--- | --- | --- | --- | ---
`color` | string | <可选> | '#3388ff' | 颜色
`opacity` | Number | <可选> | 1.0 | 透明度，取值范围：0.0-1.0
`width` | Number | <可选> | 2 | 线宽
`offset` | Number | <可选> |  | 平行偏移值（像素），可用于平行线
`gradientColors` | Array.<string> | <可选> |  | 多颜色线时，颜色数组
`lineCap` | String | <可选> | 'round' | 在线两段使用的形状, 如: butt、round、square
`lineJoin` | String | <可选> | 'round' | 在线转折处使用的形状, 如: miter、round、bevel
`dashArray` | string | <可选> |  | 定义虚线线型，用于定义笔划模式,如："5, 10" 、 "5, 5, 1, 5"
`dashSpeed` | Number | <可选> |  | 边框中，定义虚线线型时，可以指定速度，让其运动起来
`dashOffset` | String | <可选> |  | 指定了dash模式到路径开始的距离，如果使用了一个百分比值，那么这个值就代表了当前viewport的一个百分比,值可以取为负值。
`smoothFactor` | Number | <可选> | 1.0 | 数值的大小可以简化每个缩放级别的折线。更多的意味着更好的性能和更平滑的外观，而更少的意味着更准确的表示。
`noClip` | Boolean | <可选> | false | 禁用折线裁剪
`interactive` | Boolean | <可选> | true | 是否触发鼠标事件，如果false，该层不会发出鼠标事件，并且将作为底层地图的一部分。
`renderer` | L.Renderer | <可选> |  | 使用的Renderer 特定实例。优先于地图的默认渲染器。
`snakingSpeed` | Number | <可选> | 300 | 在snakeIn方法中的速度（像素/秒）
`text` | string | <可选> |  | 设置线上标注的文本
`textOptions` | object | <可选> |  | 线上标注的文本的参数 ###### Properties 属性
属性名称 | 类型 | 可选 | 描述信息
--- | --- | --- | ---
`orientation` | number | <可选> | 旋转角度
`repeat` | boolean | <可选> | 是否重复
`gap` | boolean | <可选> | 重复的间隔空闲个数
`offset` | number | <可选> | 在线宽度的偏移值
`below` | boolean | <可选> | 在路径下方显示文本
`center` | boolean | <可选> | 根据折线的边界框将文本居中
`attributes` | object | <可选> | SVG的setAttribute支持的所有属性值
`highlight` | Polyline.StyleOptions | <可选> |  | 【预留功能，待后续版本开发】鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
`label` | Label.StyleOptions | <可选> |  | 支持附带文字的显示