# 介绍
Vue2ol 是库openlayers (opens new window)的包装库
为了轻松封装 openlayers (opens new window) 的常用功能,提供了一系列可组合的 vue 组件。
# 特征
# 继承原有目录结构
为了保持与openlayers的一致,组件名称是根据openlayers模块路径转为驼峰形式。如下所示:
- ol/layer/Vector->Vue2olLayerVector
- ol/source/Vector->Vue2olSourceVector
需要注意的是当openlayers模块名中包含多个大写时,只保留首字母为大写。如下所示:
- ol/source/XYZ->Vue2olSource/Xyz
- ol/geom/MultiLineString->Vue2olGeomMultilinestring
# 调用方式一致
大部分组件都定义了options
参数,通过此参数可以实现openlayers构造函数的移植。
使用函数式创建一个地图
let layer=new ol.layer.Tile({
source:new ol.source.OSM()
})
let map=new ol.Map({
target: 'map', //地图容器div的ID
//地图视图设置
view: new ol.View({
center: [0, 0],
projection: ol.proj.get("EPSG:4326"),
zoomFactor: 2,
maxZoom: 18,
zoom: 5
})
});
map.addLayer(layer);
使用声明书创建一个地图
<template>
<vue2ol-map style="height:400px;">
<vue2ol-view :options="viewOptions">
</vue2ol-view>
<vue2ol-layer-tile>
<vue2ol-source-osm></vue2ol-source-osm>
</vue2ol-layer-tile>
</vue2ol-map>
</template>
<script>
export default {
data() {
return {
viewOptions: {
center: [0, 0],
projection: ol.proj.get("EPSG:4326"),
zoomFactor: 2,
maxZoom: 18,
zoom: 5
}
};
}
};
</script>
# 响应式
如果props中的属性在openlayers中有对应的set方法,那么修改属性时地图也会随着变化。
快速开始 →