该 GIS 二维地图 Vue3 组件库是基于 OpenLayers 开发的。
本组件库是源于 Github 上的开源组件库 vue3-openlayers by Melih Altıntaş ,在其基础上根据自身的需求进行了定制,并且修复了一些问题。
-
npm package 地址: https://www.npmjs.com/package/@rsmap/vue3ol
# install current vue3ol version
npm install @rsmap/vue3ol
# or
yarn add @rsmap/vue3ol
- 在 main.js (或其它入口) 引入组件,关键代码如下:
import OpenLayersMap from '@rsmap/vue3ol'
// 0.6.0 之前版本
import '@rsmap/vue3ol/dist/vue3ol.css'
// 0.6.0(包含) 之后版本
import '@rsmap/vue3ol/dist/styles.css'
app.use(OpenLayersMap)
-
0.6.0
之前版本没有类型定义文件,请创建一个d.ts
文件(或使用已有的文件),文件内加入如下代码来声明 module
declare module '@rsmap/vue3ol'
- 接下来便可以使用本组件库了
- upgrade
openlayers
to version 10.x
- 组件
OlSourceVectorTile
恢复format
属性参数默认值
- 修复组件
OlSourceWMTS
中crossOrigin
属性设置无效的问题
- 组件
OlMap
恢复zLevelRange
属性参数
- 修复组件
OlSourceWMTS
无法读取元数据capabilitiesUrl
的问题
-
所有layer组件
忽略属性properties
的变化监听, 避免组件销毁过程中产生错误 - 组件
ol-source-image-wms
优化capabilitiesUrl
请求次数
- 组件
ol-source-image-wms
增加了属性parseCapabilitiesToOptions
, 支持自定义方法设定瓦片请求参数
- 修复
OlSourceWMTS
请求瓦片时,由于一些Capabilities XML
中GetTile
URL 参数不完整出现请求瓦片失败的问题
- 修复
map
组件由于control
属性未初始化默认带有ZoomControl
的问题 - 修改运算符
??
写法,提高兼容性 - 修改
OlSourceXYZ
中属性opaque
(是否为不透明图层) 默认值为false
- upgrade
openlayers
to version 7.x
- 组件
ol-source-image-wms
增加了属性capabilitiesUrl
,以支持通过 wms 的元数据(GetCapabilities)来加载 wms 图层
-
ol-zoom-level-control
组件以增加precision
属性, 对地图层级显示精度进行控制
-
ol-tile-layer
组件的增加图层添加到map
的added
事件及从map
移除的removed
事件
-
ol-tile-layer
组件的事件moveend
触发时机调整,并且在事件对象中增加图层信息
-
ol-tile-layer
组件增加五个事件postrender
,prerender
,propertychange
,change
,moveend
- 升级 openlayers 和 ol-ext 的版本
-
ol-map
组件以及各个 Layer 增加zIndexRange
属性, 各个 Layer 增加pin()
方法, 对图层 zIndex 范围进行控制
-
ol-style-text
组件增加backgroundFill
和backgroundStroke
属性
-
Map
组件移除掉了两个 openlayers 6.0 后已弃用的参数loadTilesWhileAnimating
与loadTilesWhileInteracting
- 组件
ol-interaction-transform
增加方法 getSelectedFeatures 获取选中 layer 的 features
- 默认注册 projection
EPSG:4490
- 新增 control
ol-zoom-level-control
, 用于显示当前 map 的 zoom level - 组件
ol-source-wmts
增加配置项tileLoadFunction
- 新增两个组件
ol-filter-mask
与ol-filter-crop
, 用于在图层上添加蒙板或者对图层进行裁剪
-
ol-source-wmts
组件修复 crossOrigin 赋值失效 Bug
-
ol-source-wmts
组件的调整 TileGrid 默认的最高级别
-
ol-webglpoints-layer
与ol-source-webglpoints
组件的调优, 主动 dispose 资源,以及调整使用features
属性时的性能
-
ol-basic-draw
组件的完善 增加坐标系 允许单次绘制多个图形和单个图形 ,允许开启测面测距功能
- 增加
ol-basic-draw
组件 增加属性isMeasure
开启测量工具 - 组件
ol-source-wmts
绕过了 openlayers 自身的一个 bug
- 组件
ol-source-wmts
增加了属性capabilitiesUrl
,以支持通过 wmts 的元数据(GetCapabilities)来加载 wmts 图层
- 组件
ol-source-wmts
的层级做了优化
- 新增
ol-mvt-style-layer
,可以加载 mapbox style 定义的矢量瓦片 -
ol-source-wmts
组件增加requestEncoding
属性
-
ol-source-vector-tile
提供属性projection
,用于配置tile grid的 projection
-
ol-source-vector
增加属性once
,若该属性为true
,会将features
属性markRaw
参考,可明显提升性能 -
ol-source-xyz
增加属性attributions
和属性tileGrid
- 增加几个与 webgl 相关的组件:
ol-webglpoints-layer
,ol-webgl-tile-layer
,ol-source-webglpoints
- 修复组件
ol-overlay
的属性positioning
的类型的 bug
- 合并代码,加入
ol-projection-register
组件,支持注册新的 projection
- 新增矢量瓦片组件
ol-vector-tile-layer
和ol-source-vector-tile
- 组件
ol-source-image-wms
增加了time
参数 - 修复了
SourceWMTS.vue
的一个 bug
-
ol-swipe-control
bug 修复:卷帘的图层列表变化时,卷帘未更新 -
ol-source-image-arcgis-rest
: 增加 arcgis rest 类型的栅格源