vue+ts实现离线高德地图 内网离线高德地图

1、下载瓦片

我是用最简单的软件下载——MapDownloader
链接:https://pan.baidu.com/s/1Hz__HcA5QhtGmjLNezC_pQ
提取码:6lek

来源:https://blog.csdn.net/fuhanghang/article/details/131330034

2、部署私有化瓦片资源

这里也是用最简单的方式把第一步下载的瓦片通过nginx部署,后续访问瓦片资源时转到本地。这是关键点。nginx.conf 配置如下:

server{listen 18082;server_name	localhost;location / {root D:/GisMap/_alllayers;#try_files $uri $uri/ /index.html;#index index.html;}
}

3、下载map.js

1、先在高德官网申请key,https://console.amap.com/dev/key/app,申请好后会得到一个Key和一个安全密钥

注意:本文内的key和安全密钥皆为随机数,使用时要替换为自己的key

key:2236528b03e3dfb83051e93412341234

安全密钥:02069dade051826154e3c08a12341234

在这里插入图片描述

2、下载js,并引入

下载好的map.js放到项目根目录与index.html并列(位置不固定,看个人需求)

https://webapi.amap.com/maps?v=2.0&key=你的key
例:https://webapi.amap.com/maps?v=2.0&key=2236528b03e3dfb83051e93412341234

在index.html中引入

<script type="text/javascript" src="./maps.js"></script>
3、下载一些其它地图资源
https://vdata.amap.com/style_icon/2.0/icon-biz-big.pnghttps://vdata.amap.com/style_icon/2.0/icon-normal-big.pnghttps://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png

跟瓦片放一起

在这里插入图片描述

4、更改map.js

1、打开下载的map.js,把最后一行的https://webapi.amap.com,替换成本地瓦片地址http://127.0.0.1:18082
在这里插入图片描述
全局搜索icon-biz-bigicon-normal-big,共6处地方都换成本地地址
在这里插入图片描述

5、页面代码

<template><div ref="wrapRef" :style="{ height, width }"></div>
</template>
<script lang="ts">
import { defineComponent, ref, nextTick, unref, onMounted } from 'vue';export default defineComponent({name: 'AMap',props: {width: {type: String,default: '100%',},height: {type: String,default: 'calc(100vh - 78px)',},},setup() {const wrapRef = ref<HTMLDivElement | null>(null);let AMapSelf = (window as any).AMap;const Icon = new AMap.Icon({size: new AMap.Size(26, 35),image: 'gaodemap/poi-marker-default.png',imageSize: new AMap.Size(26, 35),});async function initMap() {const wrapEl = unref(wrapRef);if (!wrapEl) return;AMapSelf = new AMap.Map(wrapEl, {resizeEnable: true,zoom: 15, // 初始化缩放级别viewMode: '3D',center: [119.28, 26.08], // 初始化中心点// 指定离线地图路径layers: [new AMap.TileLayer({visible: true,zIndex: 99,opacity: 1,getTileUrl: (a, b, c) => {//经纬度转换成本地瓦片所在路径let flag = '00000000';let zz = c;let z = 'L' + zz;let xx = a.toString(16);let x = 'C' + flag.substring(0, 8 - xx.length) + xx;let yy = b.toString(16);let y = 'R' + flag.substring(0, 8 - yy.length) + yy;return 'gaodemap/' + z + '/' + y + '/' + x + '.png';},}),],});AMapSelf.setDefaultCursor('pointer');AMapSelf.on('click', (e) => {AMapSelf.clearMap();var marker = new AMap.Marker({position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()),icon: Icon,offset: new AMap.Pixel(-13, -30),});AMapSelf.add(marker);var text = '您在 [ ' + e.lnglat.getLng() + ',' + e.lnglat.getLat() + ' ] 的位置双击了地图';alert(text);});}onMounted(() => {initMap();});return { wrapRef };},
});
</script>

6、别忘了配置项目的转发

在这里插入图片描述

7、效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺序表和链表面试题

文章目录 顺序表(1)原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。(2)删除有序数组中的重复项(3)合并两个有序数组 链表(1)删除链表中等于给定值 val 的所有节点(2)反转一个单链表(3) 合并两个有序链表(4)链表的中间结点(5)链表中…

顶级资源!五个免费图标素材网站

图片太花哨了&#xff0c;纯文本太单调了&#xff1f;别忘了设计师的魔法武器——图标&#xff01;图标材料是UI设计师不可缺少的一部分。优秀的图标设计不仅可以提高界面美感&#xff0c;还可以提高用户的互动体验&#xff0c;帮助用户更好地了解应用程序的功能和信息。在本文…

动态类型语言与静态类型语言的对比与比较

编程语言可以根据类型系统和类型检查时机分为动态编程语言和静态编程语言两大类&#xff0c;它们在运行时的代码检查方式、变量类型的使用方式等方面有很大的区别。这一块你知道吗&#xff1f; 本文将为您详细讲解两种编程语言的优缺点&#xff0c;以及它们的应用场景。 动态编…

Innodb-ruby深入探索Innodb存储结构

达在之前已经分享过Innodb数据存储结构知识&#xff0c;但是都是基于理论原理知识理解&#xff0c;今天利用Innodb文件解析工具ruby进行探索Innodb真实的存储结构。 索引原理过程&#xff1a;【Mysql】 InnoDB引擎深入 - 数据页 | 聚集索引_innodb的聚集索引的数据插入_Surviv…

2952. 需要添加的硬币的最小数量(结论题)

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 分析知&#xff1a;设指针值从1开始依次递增&#xff0c;每次将coins里的值累加起来看能否得到或者大于当前指针值 &#xff0c;否则就将该指针值累加起来&#xff0c;即需要添加的数 class Solution …

老师需要具备的能力

作为一名老师&#xff0c;需要具备许多能力&#xff0c;来有效地教授学生知识和技能。本文将从以下几个方面探讨老师所需具备的能力。 一、教学能力 教学是老师工作的核心&#xff0c;因此老师需要具备高超的教学能力。这包括了开展教学计划、教学设计、授课技巧和引导学生思考…

bootstrap中的图标元素可以免费使用

Available glyphsIncludes over 250 glyphs in font format from the Glyphicon Halflings set. Glyphicon 网址如下&#xff1a; Components Bootstrap

2024年天津财经大学珠江学院专升本专业课考试《经济学》考试大纲

天津财经大学珠江学院2024年高职升本科专业课考试《经济学》考试大纲 一、本大纲系天津财经大学珠江学院2024年高职升本科《经济学》课程考试大纲。所列考试范围出自郑健壮、王培才主编的教材《经济学基础&#xff08;第二版&#xff09;》&#xff0c;清华大学出版社&#xf…

线程控制.

线程已经成为调度的基本单位了&#xff0c;每一个线程都属于同一个地址空间中&#xff0c;所有的线程都属于同一个进程 换句话任何一个线程尝试调用geipid它应该是同一个pid 可是OS选择线程时&#xff0c;他怎么知道哪个线程是主线程&#xff1f;哪个是新线程&#xff1f;线程也…

C语言-字符串变量

字符串变量 char* s “Hello, world!”&#xff1b; s是一个指针&#xff0c;初始化为指向一个字符串常量 由于这个常量所在的地方&#xff0c;所以实际上s是const char* s&#xff0c;但是由于历史的原因&#xff0c;编译器接受不带const的写法但是试图对s所指的字符串做写…

CAD画图-模型和布局区别,视图命令MV使用(用于局部放大显示)

模型和布局的图像区别 模型的图像&#xff1a; 是我们常编辑的cad文件&#xff0c;我们可以对里面内容进行编辑和测量等操作 布局的图像&#xff1a;为了可以更好的看到每个部件的相对位置&#xff0c;但对于里面的点位的标注就不行了&#xff0c;但可以对图像中的某些部位进行…

软件项目功能测试框架

测试用例的编写需要按照一定的思路进行&#xff0c;而不是想到哪写到哪&#xff0c;一般测试机制成熟的公司都会有公司自己自定义的测试用例模板&#xff0c;以及一整套的测试流程关注点&#xff0c;当然我们自己在测试生涯中也应当积累一套自己的测试框架&#xff0c;所有功能…

二极管:TVS瞬态抑制二极管

一、什么是TVS二极管 TVS&#xff08;Transient Voltage Suppressors&#xff09;&#xff0c;即瞬态电压抑制器&#xff0c;又称雪崩击穿二极管。 TVS二极管的符号如下图所示 什么是雪崩击穿 雪崩击穿是有必要了解一下的&#xff0c;不然后面还有齐纳击穿&#xff0c;搞不…

第二十一章 网络通信

21.1 网络程序设计基础 网络程序设计编写的是与其他计算机进行通信的程序。 局域网与互联网 服务器是指提供信息的计算机或程序&#xff0c;客户机是指请求信息的计算机或程序。网络用于连接服务器与客户机&#xff0c;实现两者间的相互通信。 网络协议 网络协议规定了计算…

P4715 【深基16.例1】淘汰赛-仅思路

首先从题干要求入手&#xff0c;我们可以了解到题目要求是二进一&#xff0c;不难想到这是二叉树的题 再来&#xff0c;从题干可以知道&#xff0c;我们所采用的结构体除了需要有树的两个左右节点指针外&#xff0c;还需要两个变量用来储存“能力值”和“编号” 在这道题中&am…

竞赛选题 题目:基于深度学习的图像风格迁移 - [ 卷积神经网络 机器视觉 ]

文章目录 0 简介1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 简介 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习卷积神经网络的花卉识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

CoreDNS实战(三)-CoreDNS+ETCD实现DNS负载均衡

1 概述 DNS负载均衡简单来说就是通过一个域名绑定多个IP地址&#xff0c;当客户端访问域名时&#xff0c;DNS服务器将轮询返回其中一个IP&#xff0c;实现客户端分流的作用。 在K8s环境中CoreDNS作为容器服务的DNS服务器&#xff0c;那么就可以通过CoreDNS来实现DNS负载均衡&a…

【Linux】基础IO--重定向理解Linux下一切皆文件缓冲区

文章目录 一、重定向1.什么是重定向2.dup2 系统调用3.理解输入重定向、输出重定向和追加重定向4.简易shell完整实现 二、理解linux下一切皆文件三、缓冲区1.为什么要有缓冲区2.缓冲区的刷新策略3.缓冲区的位置4.实现一个简易的C语言缓冲区5.内核缓冲区 一、重定向 1.什么是重定…

Java---类的继承

文章目录 1. 理解继承2. 继承概述3. 代码块理解4. 继承的好处与弊端5. 继承中变量的访问特点6. super关键字7. 继承中构造方法访问特点8. 继承中成员方法访问特点9. 方法重写10. 方法重写注意事项11. Java继承注意事项 1. 理解继承 2. 继承概述 1. 继承是面向对象的三大特征之一…

客观题测试-第6章图

第1关&#xff1a;图-客观题测试 &#xff08;一&#xff09; 1、无向图中一个顶点的度是指图中&#xff08;&#xff09;。 A、通过该顶点的简单路径数 B、与该顶点相邻接的顶点数 C、与该顶点连通的顶点数 D、通过该顶点的回路数 2、以下说法正确的是&#xff08;&…