当前位置: 首页 > ds >正文

Vue+Openlayers加载OSM、加载天地图

文章目录

  • 1. 介绍
  • 2. 加载底图
    • 2.1 加载默认OSM地图
    • 2.2 加载天地图

1. 介绍

Openlayers官网:https://openlayers.org/

安裝依赖:npm i ol

2. 加载底图

参考博客:
vue+openlayers环境配置:https://blog.csdn.net/cuclife/article/details/126195754
加载天地图:https://blog.csdn.net/weixin_43390116/article/details/122326847

2.1 加载默认OSM地图

主要的HomeView.vue内容:

<template><div class="home"><div id="map"></div></div>
</template><script>
import "ol/ol.css";
import { Map, View } from "ol";
import Tile from "ol/layer/Tile";
import OSM from "ol/source/OSM";export default {name: "HomeView",components: {},data() {return {map: null,};},methods: {initMap() {this.map = new Map({target: "map",layers: [new Tile({source: new OSM({wrapX: true,}),}),],view: new View({projection: "EPSG:4326",center: [114.064839, 22.548857],zoom: 8,}),});},},mounted() {this.initMap();},
};
</script>
<style scoped>
.home,
#map {height: 100%;width: 100%;
}
</style>

需确保网络通畅可以访问OSM。
效果图:
在这里插入图片描述

2.2 加载天地图

HomeView.vue主要内容(需要更换token):

<template><div class="home"><div id="map"></div></div>
</template><script>
import "ol/ol.css";
import { Map, View } from "ol";
import { defaults as Defaults } from "ol/control.js";
import TileLayer from "ol/layer/Tile";
import XYZ from "ol/source/XYZ";
export default {name: "HomeView",components: {},data() {return {map: null,};},methods: {initMap() {let token = "xxxx换成自己申请的天地图tokenxxxx";let url_vec = `http://t4.tianditu.com/DataServer?T=vec_w&tk=${token}&x={x}&y={y}&l={z}`;let url_cav = `http://t4.tianditu.com/DataServer?T=cva_w&tk=${token}&x={x}&y={y}&l={z}`;var source = new XYZ({url: url_vec,});var tileLayer = new TileLayer({title: "矢量图层",source,});var sourceCav = new XYZ({url: url_cav,});var tileLayerCav = new TileLayer({title: "标注图层",source: sourceCav,});this.map = new Map({target: "map",layers: [tileLayer, tileLayerCav],view: new View({projection: "EPSG:4326",center: [118.91, 32.1],zoom: 14,maxZoom: 18,minZoom: 1,}),//不显示地图自带控件(左上角的加号、减号)controls: new Defaults({zoom: false,rotate: false,}),});},},mounted() {this.initMap();},
};
</script>
<style scoped>
.home,
#map {height: 100%;width: 100%;
}
</style>

效果图:

在这里插入图片描述

http://www.xdnf.cn/news/15024.html

相关文章:

  • 周任务自动化升级:N8N与多维表格无缝联动全解析
  • 2025年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 【架构艺术】IC(个人贡献者)视角下产品研发规划的实战Tips
  • 一次内存“卡顿”全流程实战分析:从制造问题到优化解决
  • java中,stream的filter和list的removeIf筛选速度比较
  • JMM--数据原子操作
  • SpringAI与智能体入门
  • 解决kali Linux在VMware中的全局缩放问题
  • 量化可复用的UI评审标准(试验稿)
  • Python PyJWT详解:从入门到实战
  • 3dmax烘焙插件3dmax法线贴图烘焙教程glb和gltf元宇宙灯光效果图烘焙烘焙光影贴图支持VR渲染器
  • 针对工业触摸屏维修的系统指南和资源获取途径
  • NumPy-核心函数np.matmul()深入解析
  • CppCon 2018 学习:Surprises In Object Lifetime
  • 设计模式之访问者模式
  • 使用Langchain访问个人数据
  • SpringBoot系列—入门
  • PostgreSQL表操作
  • 深度学习5(深层神经网络 + 参数和超参数)
  • C++ 网络编程(15) 利用asio协程搭建异步服务器
  • 从数据洞察到设计创新:UI前端如何利用数字孪生提升用户体验?
  • 浏览器与服务器的交互
  • dify 1.5.1版本全面解析——知识库索引、动态参数及结构化输出插件全新登场
  • STM32的 syscalls.c 和 sysmem.c
  • 《C++初阶之类和对象》【经典案例:日期类】
  • RESTful API 安装使用教程
  • 黑马python(二十五)
  • Spring Boot + 本地部署大模型实现:优化与性能提升
  • 基于Linux的Spark本地模式环境搭建实验指南
  • 【github】想fork的项目变为私有副本