# 1、获取 MapGIS Client for JavaScript（Leaflet） 开发包

开发时需要引入 MapGIS Client for JavaScript（Leaflet）开发包；其中包括必备的 CSS 文件和 JS 文件；

开发库分为正式发行版和 Beta 版;

- 正式版：面向公网用户，半年发行一次，发行后不会增加新功能，仅会修订 BUG
- Beta 版：面向内网用户，每周发行一次，会修订 BUG 并增加新功能
  下面分别介绍两种版本包的获取方式：

## 1.1、正式发行版及其更新包

### 1.1.1、文件方式引入

**前往**[司马云官网](http://smaryun.com/dev/download_detail.html#/download828)**下载 MapGIS Client for JavaScript 开发库**

以 10.6.2.10 为例，其中：

- mapgis-client-for-javascript-dist-v10.6.2.10.rar 为开发库
- mapgis-client-for-javascript-all-v10.6.2.10.rar 为开发库+示例站点
  **Webclient-Leaflet-Plugin 所需开发包位于如下文件夹中**

- webclient-leaflet-plugin 库：`mapgis-client-for-javascript-all-v10.6.2.10\dist\cdn\zondyclient\webclient-leaflet-plugin.min.js`
- Leaflet 库：`mapgis-client-for-javascript-all-v10.6.2.10\dist\cdn\leaflet`
  **之后请将 webclient-leaflet-plugin.min.js 文件和 leaflet 文件夹拷贝出来，放入项目的静态资源目录**。

### 1.1.2、npm 方式引入

**通过公网 NPM 的方式进行安装**

```plain
npm install @mapgis/webclient-leaflet-plugin
```

## 1.2、Beta 版

### 1.2.1、文件方式引入

**请前往内网开发库下载 Webclient-Leaflet-Plugin 相关开发包**

- [@mapgis/webclient-leaflet-plugin](http://192.168.11.130:4873/-/web/detail/@mapgis/webclient-leaflet-plugin)
- [leaflet](https://github.com/Leaflet/Leaflet/releases/download/v1.9.2/leaflet.zip)
  以 16.1.26 版本为例进行说明

  1.在该网页中请先选择要下载的版本

<center>
  <img src="http://webclient.smaryun.com/static/modules/leaflet/source/img/开发指南_1.png" style="zoom:100%;" />
</center>

2.之后点击相应的版本号，在右侧点击下载按钮，下载压缩包

<center>
  <img src="http://webclient.smaryun.com/static/modules/leaflet/source/img/开发指南_2.png" style="zoom:100%;" />
</center>

**开发包位于如下文件夹中**

- webclient-leaflet-plugin 库：`webclient-leaflet-plugin-16.3.32\package\dist\webclient-leaflet-plugin.min.js`
- Leaflet 库：`leaflet-16.3.1\package\dist`

**请将**`leaflet-16.3.1\package\dist`**改名为 leaflet，之后将**`webclient-leaflet-plugin.min.js`

**文件和 leaflet 文件夹拷贝出来，放入项目的静态资源目录**

### 1.2.2、npm 方式引入

**请先将 npm 源切换为内网：**

```typescript
npm set registry http://192.168.11.130:4873/
```

**通过内网 NPM 的方式进行安装**

```plain
npm install @mapgis/webclient-leaflet-plugin
```

# 2、如何引入开发库

## 2.1、文件方式引入

**在 index.html 中引入引擎库和插件库**

```typescript
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <!--引擎库-->
    <link rel="stylesheet" href="http://{ip}:{port}/{你的路径}/leaflet/leaflet.css">
    <script src="http://{ip}:{port}/{你的路径}/leaflet/leaflet.js"></script>
    <!--plugin库-->
    <script src="http://{ip}:{port}/{你的路径}/zondyclient/webclient-leaflet-plugin.min.js"></script>
</head>
</html>
```

## 2.1、npm 方式引入

**通过 npm 的方式安装@mapgis/webclient-leaflet-plugin 插件库**

```typescript
npm install @mapgis/webclient-leaflet-plugin
```

# 3、初始化场景视图

## 3.1、文件方式引入

**在项目的 css 文件中设置地图视图容器的样式，否则地图视图无法显示**

```typescript
/*设置地图视图的样式，一定要设置否则地图无法显示*/
#你的地图视图的id {
    width: 100%;
    height: 100%;
    position: absolute;
}
```

**初始化地图视图对象**

```typescript
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
     <!--引擎库-->
    <link rel="stylesheet" href="http://{ip}:{port}/{你的路径}/leaflet/leaflet.css">
    <script src="http://{ip}:{port}/{你的路径}/leaflet/leaflet.js"></script>
    <!--plugin库-->
    <script src="http://{ip}:{port}/{你的路径}/zondyclient/webclient-leaflet-plugin.min.js"></script>
    <style>
      /*设置地图视图的样式，一定要设置否则地图无法显示*/
      #你的地图视图的id {
        width: 100%;
        height: 100%;
        position: absolute;
      }
    </style>
    <script>
      // 初始化图层管理容器
      const map = new zondy.Map()
      // 初始化地图视图对象
      const mapView = new zondy.leaflet.MapView({
        // 视图id
        viewId: '你的地图视图的id',
        // 图层管理容器
        map: map
      })
    </script>
</head>
<!--地图视图容器div-->
<div id="你的地图视图的id">
</div>
</html>
```

## 3.2、npm 方式引入

**以 VUE 项目为例，React 和 Angular 类似**

**在项目的 css 文件中设置地图视图容器的样式，否则地图视图无法显示**

```typescript
/*设置地图视图的样式，一定要设置否则地图无法显示*/
#你的地图视图的id {
    width: 100%;
    height: 100%;
    position: absolute;
}
```

**在你的 vue 组件的 template 中设置地图视图容器的 div 元素**

```typescript
<!--地图视图容器div-->
<div id="你的地图视图的id">
</div>
```

**引入需要的构造函数**

```typescript
import { MapView } from '@mapgis/webclient-leaflet-plugin'
import { Map } from '@mapgis/webclient-common'
```

**在 mounted 生命周期中初始化地图视图**

```typescript
// 初始化图层管理容器
const map = new Map()
// 初始化地图视图对象
const mapView = new MapView({
  // 视图id
  viewId: '你的地图视图的id',
  // 图层管理容器
  map: map
})
```

# 4、@mapgis/webclient-leaflet-plugin 版本说明

## 4.1、正式版

###  v17.8.1

**更新说明：**

1. 功能优化

- 修复已知问题

###  v17.8.0

**更新说明：**

1. 新增

- 新增视图卷帘工具

###  v17.6.25

**更新说明：**

1. 功能优化

- 修复已知问题

###  v17.6.24

**更新说明：**

1. 功能优化

- 修复已知问题

###  v17.6.23

**更新说明：**

1. 功能优化

- 修复已知问题

###  v17.6.22

**更新说明：**

- 此版本无更新

###  v17.6.21

**更新说明：**

- 此版本无更新

###  v17.6.20

**更新说明：**

- 此版本无更新

###  v17.6.19

**更新说明：**

- 此版本无更新

###  v17.6.18

**更新说明：**

- 修复部分图层截屏报错的问题

###  v17.6.17

**更新说明：**

1. 功能新增

- 增加图层出图完毕的监听事件


###  v17.6.16

**更新说明：**

1. 功能新增

- 提供卷帘相关的原生控件接口 L.Control.Swipe 、混合接口 SwipeControl、工具接口 SwipeTool

###  v17.6.15

**更新说明：**

1. 功能优化

- 修复已知问题

###  v17.6.14

**更新说明：**

1. 功能优化

- 修复地图图片图层图层过滤参数失效的问题

###  v17.6.13

**更新说明：**

- 此版本无更新

###  v17.6.12

**更新说明：**

- 此版本无更新

###  v17.6.11

**更新说明：**

- 此版本无更新

###  v17.6.10

**更新说明：**

- 此版本无更新

###  v17.6.9

**更新说明：**

- 此版本无更新

###  v17.6.8

**更新说明：**

- 此版本无更新

###  v17.6.7

**更新说明：**

- 此版本无更新

###  v17.6.6

**更新说明：**

- 此版本无更新

###  v17.6.5

**更新说明：**

- 此版本无更新

###  v17.6.4

**更新说明：**

- 此版本无更新

###  v17.6.3

**更新说明：**

- 此版本无更新

###  v17.6.2

**更新说明：**

- 此版本无更新

###  v17.6.1

**更新说明：**

- 此版本无更新

###  v17.6.0

**更新说明：**

1. 功能新增

- 支持百度、高德瓦片服务纠偏显示

2. 功能优化

- 此版本无更新

###  v17.4.7

**更新说明：**

1. 功能优化

- 修复leaflet-plugin混合加载的方式去加载动态服务显示异常的问题

###  v17.4.6

**更新说明：**

1. 功能优化

- 此版本无更新

**更新说明：**

1. 功能优化

- 此版本无更新

###  v17.4.4

**更新说明：**

- 修复 IGSMapImageLayer 图层动态出图级别受限问题

###  v17.4.3 

**更新说明：**

- 此版本无更新

###  v17.4.2 

**更新说明：**

- 此版本无更新


###  v17.4.1 

**更新说明：**

1. 功能优化

- 修复API文档中部分接口文档缺失的问题
- 优化视图截图功能

###  v17.4.0 

**更新说明：**

1. 功能新增

- 矢量瓦片支持设置请求头

2. 功能优化

- 优化聚合效果
- 修复文字注记转换问题

###  v17.2.8

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复已知问题

###  v17.2.7

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复图层服务数据范围异常时的地图加载问题

###  v17.2.6

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复图层服务数据范围异常时的地图加载问题

###  v17.2.5

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复文字注记转换问题

###  v17.2.4

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎优化聚合效果
- 二维（Leaflet）引擎矢量瓦片服务支持配置请求头token

###  v17.2.3

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复已知问题

###  v17.2.2

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎修复已知问题

###  v17.2.1 

**更新说明：**

1. 功能优化

- 二维（Leaflet）引擎优化命名空间结构
- 二维（Leaflet）引擎修复已知问题


###  v17.2.0 

**更新说明：**

1. 功能新增

- 二维（Leaflet）引擎矢量瓦片支持多区、带洞区裁剪
- 二维（Leaflet）引擎ArcGIS地图支持出一张图模式


###  v17.0.0 

**更新说明：**

1. 功能新增

- 二维Leaflet插件支持相同空间参考系支持不同裁图方式瓦片图层的叠加显示
- 二维Leaflet插件增加地图旋转功能
- 二维Leaflet插件支持动态服务图层支持多区、带洞区裁剪

2. 功能优化

- 二维Leaflet插件符号体系优化:
  增加文字光晕效果
  二维虚线样式优化

- 地图视图Leaflet插件 MapImageLayer 平滑更新

  

###  V16.8.0

**更新说明：**

- SpatialReference支持自定义坐标系（深汕坐标系）

- 二维地图增加地图旋转功能

- 示例数据及二维示例丰富、更新、完善

  

###  V16.6.0

**更新说明：**

1. 功能新增

- 新增自定义坐标系（如高斯）数据和服务(含矢量瓦片)的接入功能
- 新增全局的请求拦截器

2. 功能优化

- 完善和增强前端符号体系在 leaflet 引擎上的实现。



###  V16.4.0

**更新说明：**

- 基础对象接口优化升级，为不同地图引擎提供统一的数据模型支持，便于功能在不同引擎上的快速移植。

- 增强 MapGIS 高性能 GIS 服务接入能力，全面适配 MapGIS IGServer 2.0 服务接口。

- 新增支持 EPSG:4326 空间参考系矢量瓦片接入。

- 基础功能丰富与完善：地图图片图层支持根据视图全图范围取图；新增绘制工具和地图出图工具等。

- 增强客户端专题图功能，矢量瓦片图层、要素图层、WFS 图层、GeoJson 图层新增支持客户端专题图；地图图片图层新增支持服务端专题图；并统一不同地图引擎专题图接口。

- 示例完善：新增 MapGIS 瓦片/要素服务、ArcGIS 瓦片/地图服务、GeoJson 图层、矢量瓦片图层、图形图层、长度测量等示例，并优化若干示例。

  

###  V16.2.0

**更新说明：**

- 维护更新，修复若干 Bug

  

###  V16.0.0

**更新说明：**

- 维护更新，修复若干 Bug

  

###  V15.6.0

**更新说明：**

- 维护更新，修复若干 Bug

  

### V15.4.0

**更新说明：**

- 维护更新，修复若干 Bug

  

###  V15.2.0

**更新说明：**

1. 功能新增

- Leaflet 示例全面优化，提供配套示例说明文档与 API；
- 新增支持 ElasticSearch 的分布式大数据搜索与分析能力，可实现热力分析、聚类分析等功能。

2. 站点维护

- 示例说明文档美化

  

###  V15.0.0

**更新说明：**

- 全面整合了 Leaflet 等脚本库，代码模块化，采用最新的 JavaScript ES6 标准；
- 提供 Leaflet 开发库、示例、API，支持基于 OpenLayers5 的二维数据可视化（含 OGC、MapGIS 地图服务、第三方地图服务等）、量算、查询编辑、空间分析、专题图、矢量瓦片，以及大数据可视化与分析等功能；
- 新增集成 Echarts、MapV 可视化库，支持在 Web 三维模式下实现大数据可视化、大数据分析功能；
- 新增集成 Turf.js 客户端空间分析库，提供客户端空间计算能力，支持实现在客户端层的空间分析、拓扑分析、空间关系计算等功能。

