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

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.lryc.cn/news/581464.html

相关文章:

  • java学习——guava并发编程练习
  • 【Guava】1.0.设计虚拟机的方向
  • 第一个Flink 程序:词频统计 WordCount(流处理)
  • LeetCode--41.缺失的第一个正数
  • 《Redis》缓存与分布式锁
  • AGV选型指南:AGV智能搬运车智能问答系统助力从技术参数到供应商选择的完整方案
  • Flutter 项目开启 UI 层级虚线(UI Guides)
  • 深度学习篇---简单果实分类网络
  • JAVA 项目找不到符号
  • 零依赖Web数据管理系统:midb轻松管理
  • Node.js EventEmitter 深入解析
  • 数据挖掘:从理论到实践的深度探索
  • C++学习之STL学习:list的模拟实现
  • DTW模版匹配:弹性对齐的时间序列相似度度量算法
  • 处理GET请求:在Web开发中如何处理GET请求
  • 【C语言指南】深入剖析 C 语言递归函数
  • 爬虫-浏览器工具简介
  • ch03 部分题目思路
  • Qt实战:使用QSqlDatabase连接MySQL,并实现增删改查
  • 使用Python将PDF转换成word、PPT
  • 网络编程底层通信(socket)
  • 人工智能安全基础复习用:隐私保护
  • 力扣网编程45题:跳跃游戏II之正向查找方法(中等)
  • 群晖(Synology)存储ext4视频文件删除的恢复方法
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(五) - 基于随机森林算法预测职位分类
  • MySQL主从复制与读写分离概述
  • 【AI大模型】Spring AI 基于mysql实现对话持久存储详解
  • Neo4j 综合练习作业
  • 7,TCP服务器
  • 卫星通信终端天线的5种对星模式之一:信标跟踪