# ArcGisDynamicLayer
查阅Leaflet API

#### new mars2d.layer.ArcGisDynamicLayer(options, highlight)
plugins/mars2d-esri/ArcGisDynamicLayer.js 28

ArcGIS Server 动态服务图层， 【需要引入mars2d-esri 插件库】

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | Object |  | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`url` | String |  | ArcGIS Server服务地址，如：https://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/
`layers` | Array.<String> |  | 可选 一个层id的数组，显示服务中的指定图层集合。
`layerDefs` | Object |  | 可选 SQL筛选器，以定义服务呈现的图像中包含哪些特性。对象与键一起使用，将每个查询映射到其各自的层。{ 3: "STATE_NAME='Kansas'", 9: "POP2007>25000" }
`format` | String | `'png24'` | 可选 图像的输出格式
`transparent` | Boolean | `true` | 可选 是否允许服务器产生透明的图像。
`opacity` | Number | `1` | 可选 图层的不透明度。应该是介于0(完全透明)和1(完全不透明)之间的值。
`dynamicLayers` | Object |  | 可选 用于覆盖服务定义的图层符号系统的一个或多个 JSON 对象的数组。需要哪些支持10.1+地图服务请求。
`disableCache` | Boolean | `false` | 可选 如果启用，将时间戳附加到每个请求以确保在服务器端创建新图像。
`minZoom` | Number |  | 可选 图层将显示在地图上的最远缩放级别。
`maxZoom` | Number |  | 可选 图层将显示在地图上的最近缩放级别。
`token` | String |  | 可选 如果您在服务需要传递令牌，它将包含在对服务的所有请求中。
`proxy` | String |  | 可选 代理服务URL
`useCors` | Boolean | `true` | 可选 如果此服务在发出 GET 请求时应使用 CORS。
`zIndex` | Number |  | 可选 用于图层间排序
`popup` | String | Array.<Globe.getTemplateHtml_template> | function |  | 可选 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
`popupOptions` | Map.PopupOptions |  | 可选 popup弹窗时的配置参数
`highlight` | object |  | 可选 鼠标移单击后高亮对应的矢量对象的样式
`options.id` | String | Number | `createGuid()` | 可选 图层id标识
`options.pid` | String | Number | `-1` | 可选 图层父级的id，一般图层管理中使用
`options.name` | String | `''` | 可选 图层名称
`options.pane` | String | `'tilePane'` | 可选 指定图层添加到地图的哪个pane的DIV中，用于控制不同层级显示的，优先级高于zIndex。

##### 参考:

- `支持的事件类型`

- 更多请参考L.esri.DynamicMapLayer类API

### 继承自

- L.esri.DynamicMapLayer

### 属性值

#### 只读 hasOpacity : boolean
plugins/mars2d-esri/ArcGisDynamicLayer.js 134

是否可以调整透明度

#### id : String|Number
plugins/mars2d-esri/ArcGisDynamicLayer.js 94

对象的id标识

#### 只读 isAdded : Boolean
plugins/mars2d-esri/ArcGisDynamicLayer.js 72

是否已添加到地图

#### name : String
plugins/mars2d-esri/ArcGisDynamicLayer.js 107

名称 标识

#### opacity : Number
plugins/mars2d-esri/ArcGisDynamicLayer.js 120

透明度

#### pid : String|Number
plugins/mars2d-esri/ArcGisDynamicLayer.js 81

对象的pid标识

#### show : Boolean
plugins/mars2d-esri/ArcGisDynamicLayer.js 143

显示隐藏状态

### 方法

#### addTo(map) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 445

将图层添加到地图

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

##### 返回值:

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

#### addTo(map) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisFeatureLayer.js 603

将图层添加到地图

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

##### 返回值:

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

#### bindPopup(content, options) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 290

绑定Popup弹窗配置

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | function | Popup弹窗回调方法
`options` | Map.PopupOptions | Object | 可选 Popup弹窗参数

##### 返回值:

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

##### 使用示例:

    dynamicMapLayer.bindPopup(function(err, featureCollection, response){
        var count = featureCollection.features.length;
        return (count) ? count + ' features' : false;
    });

#### bringToBack() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 272

在所有其他叠加层下方重绘此层。

##### 返回值:

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

#### bringToFront() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 281

在所有其他叠加层之上重绘此层。

##### 返回值:

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

#### find(callback, context) → Object
plugins/mars2d-esri/ArcGisDynamicLayer.js 402

返回IdentifyFeatures可用于查找特征的新对象。您的回调函数将传递一个带有结果或错误的GeoJSON。

参数名称 | 类型 | 描述信息
--- | --- | ---
`callback` | function | 回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

L.esri.Find对象

##### 使用示例:

    dynamicMapLayer.find()
      .layers('18')
      .text('Colorado')
      .run(function(error, featureCollection){
        console.log(featureCollection);
      });

#### getDynamicLayers() → Array.<Object>
plugins/mars2d-esri/ArcGisDynamicLayer.js 353

返回一组 JSON 对象，表示从地图服务请求的修改后的图层符号系统。

##### 返回值:

SQL筛选器

#### getLayerDefs() → Object
plugins/mars2d-esri/ArcGisDynamicLayer.js 334

返回用于渲染的当前层SQL筛选器。

##### 返回值:

SQL筛选器

#### getLayers() → Array.<String>
plugins/mars2d-esri/ArcGisDynamicLayer.js 315

返回层构造函数中指定的可见层数组。

##### 返回值:

可见层数组

#### identify(callback, context) → Object
plugins/mars2d-esri/ArcGisDynamicLayer.js 386

返回一个IdentifyFeatures新对象，可用于识别该图层上的要素。您的回调函数将传递一个带有结果或错误的GeoJSON。

参数名称 | 类型 | 描述信息
--- | --- | ---
`callback` | function | 回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

L.esri.services.IdentifyFeatures对象

##### 使用示例:

    dynamicMapLayer.identify()
      .at(latlng)
      .run(function(error, featureCollection){
        console.log(featureCollection);
      });

#### metadata(callback, context) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 372

请求有关此要素图层的元数据。将使用error和调用回调metadata。

参数名称 | 类型 | 描述信息
--- | --- | ---
`callback` | function | 回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

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

##### 使用示例:

    dynamicMapLayer.metadata(function(error, metadata){
      console.log(metadata);
    });

#### query(callback, context) → Object
plugins/mars2d-esri/ArcGisDynamicLayer.js 419

返回L.esri.Query可用于查询此服务的新对象。

参数名称 | 类型 | 描述信息
--- | --- | ---
`callback` | function | 回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

L.esri.Query对象

##### 使用示例:

    mapService.query()
      .layer(0)
      .within(latlngbounds)
      .run(function(error, featureCollection, response){
        console.log(featureCollection);
      });

#### redraw() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 436

用于向服务发出新请求并绘制响应。

##### 返回值:

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

#### redraw(id) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisFeatureLayer.js 584

从要素层使用提供的 id 重绘要素。

参数名称 | 类型 | 描述信息
--- | --- | ---
`id` | String | Number | 要素的 id

##### 返回值:

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

#### refresh() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisFeatureLayer.js 594

从地图上存在的要素图层重新绘制所有要素。

##### 返回值:

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

#### remove() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 455

将图层从地图上移除

##### 返回值:

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

#### remove() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisFeatureLayer.js 613

将图层从地图上移除

##### 返回值:

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

#### setDynamicLayers(dynamicLayers) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 362

在您想要修改服务本身中定义的图层符号系统的情况下，用于以数组形式插入原始 dynamicLayers JSON。

参数名称 | 类型 | 描述信息
--- | --- | ---
`dynamicLayers` | Array.<Object> | SQL筛选器

##### 返回值:

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

#### setLayerDefs(layerDefs) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 343

使用SQL筛选器新图层定义重绘图层, layerDefs选项。

参数名称 | 类型 | 描述信息
--- | --- | ---
`layerDefs` | Object | SQL筛选器

##### 返回值:

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

#### setLayers(layers) → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 324

重绘图层以显示传递的图层 id 数组。

参数名称 | 类型 | 描述信息
--- | --- | ---
`layers` | Array.<String> | 可见层数组

##### 返回值:

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

#### unbindPopup() → ArcGisDynamicLayer
plugins/mars2d-esri/ArcGisDynamicLayer.js 306

解除绑定Popup弹窗配置

##### 返回值:

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

### 定义的类型

#### mars2d.layer.ArcGisDynamicLayer.EventType
plugins/mars2d-esri/ArcGisDynamicLayer.js 5

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

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`loading` | String | 当新功能开始加载时触发。
`load` | String | 当地图当前边界中的所有要素都已加载时触发。
`requeststart` | String | 当对服务的请求开始时触发。
`requestend` | String | 当对服务的请求结束时触发。
`requestsuccess` | String | 当对服务的请求成功时触发。
`requesterror` | String | 当对服务的请求响应错误时触发。
`authenticationrequired` | String | 当对服务的请求失败并需要身份验证时，这将被触发。

##### 使用示例:

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

##### 参考:

- BaseClass#on
- BaseClass#off