Vue中使用OpenLayers,之前写了是 OpenLayers  5.3的版本,最近又开始一个项目,继续采用的是Vue + OpenLayers (6.3.1),

这个项目主要是做气象数据,需要在地图上展示不同站点,数据查询,温度区域的展示,风场的展示等等,我会陆续更新。

从最开始的展示地图开始

 

  创建vue项目就省略了,OpenLayers通过NPM 安装

npm install ol -S

Vue页面

  OpenLayers 加载地图可以加载离线地图,也可以下载离线瓦片地图加载,

地图相关配置,我放在data中,以便后面动态改变。

<template>
  <div class="main">
    <div id="map" class="map" ></div>
  </div>
</template>
 import 'ol/ol.css'  // 在OpenLayers 6.3.1 版本使用需要引入css
data () {
    return {
      map: null,
      // url: '/static/openStreetMapsichuan/{z}/{x}/{y}.png', // 加载离线瓦片地图
      url: 'https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', // 加载在线瓦片地图
     // 地图View展示选项配置
      viewOptions: {
        projection: 'EPSG:4326',
        // center: [102.87855327334883, 29.95539168988012], // [104.089175, 30.650451]
        center: [104.089175, 30.650451], // [104.089175, 30.650451] 地图中心位置
        zoom: 8
        // extent: [101.9004807124176, 28.837774208959473, 103.38848561448468, 30.9210929107385], // [minX, minY, maxX, maxY]
        // minZoom: 6, 
        // maxZoom: 19 // 缩放最大级别控制
      },
      view: null,
      source: null,
      pielayer: null // 点线信息的图层
    }
  },
  mounted () {
    this.initMap()
  },
  methods: {
    // 加载地图底图
    initMap () {
      let _this = this
      var layers = new TileLayer({
        source: new XYZ({
          url: _this.url
        })
      })
      _this.view = new View(_this.viewOptions)
      this.map = new Map({
        layers: [ layers ],
        target: 'map',
        view: _this.view
      })
    },

这样基本的地图就可以看到了