我是靠谱客的博主 顺利荷花,最近开发中收集的这篇文章主要介绍vue+Tomcat虚拟目录加载openlayers离线地图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

注意:加载的离线地图,使用了Tomcat的虚拟目录,其他方式暂时加载不出来地图瓦片(切片规则无法对上)
以淄博市的离线地图瓦片为例

地图离线目录结构
在这里插入图片描述

拿到目录之后,配置Tomcat的虚拟目录(虚拟目录有多种配置方式,我这边方式供参考,该方式可以无需重启Tomcat就可以生效)

在本机Tomcat目录下的conf/Catalina/localhost目录下,创建一个xml文件,里面添加如下语句

<Context docBase="C:worktempmap"/>

其中c:worktempmap对应的是地图瓦片的物理路径,如下图
在这里插入图片描述

另外,特别注意,假如使用的后台IDE是idea,需要在idea里面做如下设置

在这里插入图片描述

启动后台之后的访问虚拟目录的效果图

在这里插入图片描述

前台需要执行一次 npm install ol,安装ol下对应的API
前台Vue代码
<template>
  <div class="mapMoniter" style="width: 100%;height: 100%;">
    <div id="map" class="map"/>
  </div>
</template>
<script >
// 初始化地图相关
import TileLayer from 'ol/layer/Tile'
import XYZ from 'ol/source/XYZ'
import OlMap from 'ol/Map'
import OlView from 'ol/View'
import { get as getProjection } from 'ol/proj'
export default{
  data() {
    return {
    }
  },
  created() {
  },
  mounted() {
    this.initMap()
  },
  methods: {
  initMap() {
      var targetMap = document.getElementById('map')
      var offlineMapLayer = new TileLayer({
        source: new XYZ({
          url: BASE_API.SERVER_IP + 'map/{z}/{x}/{y}.png',// 加载虚拟目录下的图片
          // 这块的BASE_API.SERVER_IP是我这边配置的静态路径ip,值如下:http://192.168.4.61:8080/
          wrapX: true
        })
      })
      var projection = getProjection('EPSG:4326')
      var map = new OlMap({
        layers: [offlineMapLayer],
        view: new OlView({
          center: [118.10131072998047, 36.819305419921875],// 地图中心
          projection: projection, // 对应地图的切片规则
          zoom: 13,// 地图初始化渲染等级
          minZoom: 9, // 地图最小缩放等级
          maxZoom: 16,// 地图最大缩放等级
          zoomControl: true// 地图是否可被缩放控制
        }),
        target: targetMap.id
      })
    }
  }
}

</script>
<style scoped>
.map
{
  height: 100%;
  width: 100%;
}
</style>
效果图

在这里插入图片描述
注意一点的是,Vue里面使用openlayers,必须声明对应的所有类,才可以调用对应的api,否则即便是打debugger,在控制台很明显看到有存在对应的API也会报undefined,对比说明下,比如TileLayer这个API,在原生js中,只需要ol.Tile.Layer即可调用,但是vue不可以,你声明了Ol之后,通过ol.tile.layer调用,会直接报tileundefined,官方文档也给了对应的import方式,可以参考

最后

以上就是顺利荷花为你收集整理的vue+Tomcat虚拟目录加载openlayers离线地图的全部内容,希望文章能够帮你解决vue+Tomcat虚拟目录加载openlayers离线地图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部