Vue集成openlayers

1.安装ol库

使用cnpm i ol -s命令安装

2.建一个olMap.vue文件夹

<template>
    <div class='olMap'>
        <h2>{{this.name}}</h2>
        <div class='map'  ref='rootmap'></div>
    </div>
</template>

<script>
import 'ol/ol.css'
import { Map, View } from 'ol'
import mapconfig from '../../mapconfig'

export default {
    name: 'HomeMap',
    data () {
        return {
            name: '地图展示',
            map: null
        }
    },
    mounted () {
        var mapcontainer = this.$refs.rootmap
        this.map = new Map({
          target: mapcontainer,
          layers: mapconfig.streetmap(),
          view: new View({
            projection: 'EPSG:4326',    
            center: [mapconfig.x, mapconfig.y], 
            zoom: mapconfig.zoom
          })
        })
    }
}

</script>

<style lang='stylus'>
    .olMap
        width: 100%
        .map
            height: 100%
            .ol-attribution
                display: none
            .ol-zoom 
                display: none
</style>    
View Code

3.在首页home.vue中使用该olMap组件

<template>
    <div>
      <home-header></home-header>
         <home-swiper></home-swiper>
    <home-content></home-content>
         <home-map></home-map>
     </div>
</template>

<script>
import HomeHeader from './components/Header'
import HomeSwiper from './components/Swiper'
import HomeContent from './components/Content'
import HomeMap from './components/olMap'

export default {
  name: 'Home',
  components: {
    HomeHeader,
    HomeSwiper,
    HomeContent,
    HomeMap
  }
}
</script>

<style>
</style>
View Code

4.使用mapconfig.js文件

import TileLayer from 'ol/layer/Tile'
import TileArcGISRest from 'ol/source/TileArcGISRest'
import OSM from 'ol/source/OSM'
import XYZ from 'ol/source/XYZ'

let maptype = 1         
//0表示部署的离线瓦片地图,1表示OSM,2表示使用Arcgis在线午夜蓝地图服务
var streetmap=function(){
    var maplayer = null
    switch(maptype){
        case 0:
            maplayer=new TileLayer({
                source: new XYZ({
                    url:'http://127.0.0.1:7080/streetmap/shenzhen/{z}/{x}/{y}.jpg'
                })
            })
        break
        case 1:
            maplayer=new TileLayer({
                source: new OSM()
            })
        break
        case 2:
            maplayer=new TileLayer({
                source:new TileArcGISRest({
                    url:'https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer'
                })
            })
        break
    }
    return [maplayer]
}

var mapconfig = {
    x: 114.064839,     
    y: 22.548857,
    zoom: 15,          
    streetmap: streetmap
}

export default mapconfig
View Code

5.效果如下

 源码地址:https://gitee.com/newGlobe/vueLearn/tree/master/src/pages/

转载于:https://www.cnblogs.com/gisblog/p/10430258.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种用户界面开发框架,而OpenLayers是一个专门用于地理信息系统(GIS)开发的JavaScript库。通过将这两者结合使用,我们可以开发出功能强大的地理信息应用程序。 Vue2 OpenLayers是指使用Vue2框架来构建一个集成OpenLayers功能的应用程序。Vue2提供了一种声明式的语法和组件化的开发方式,能够更轻松地管理应用程序的状态和界面。而OpenLayers则提供了一系列用于加载、显示、交互、分析和操作地图数据的功能。 使用Vue2 OpenLayers的好处包括: 1. 组件化开发:我们可以将地图、图层、标记、工具栏等功能封装为Vue组件,方便复用和维护。 2. 响应式设计:Vue2的响应式机制可以自动追踪数据变化,并更新相应的界面,使地图应用能够实时地反映数据的变化。 3. 灵活的数据绑定:Vue2支持双向数据绑定,可以将地图数据与界面元素进行绑定,用户操作地图时,数据会相应地更新。 4. 强大的交互功能:OpenLayers提供了丰富的交互功能,如地图缩放、平移、标记绘制、要素选择等,能够满足各种地图应用的需求。 5. 异步加载数据:Vue2支持异步组件加载,可以通过按需加载地图数据,提高应用程序的加载性能。 综上所述,Vue2 OpenLayers是一种利用Vue2框架和OpenLayers库开发地理信息应用程序的技术组合,能够提供灵活、高效和交互性强的地图应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值