高德地图离线加载解决方案(内网部署)+本地地图瓦片加载

本文介绍如何在内网环境下使用高德地图的离线包,包括下载、加载地图瓦片和注意事项,以及在项目中的应用实例。特别提到一些已知问题和待解决的插件兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键词:高德地图、离线部署、内网部署、地图瓦片

目录

鸣谢

写在前面

声明

进入主题

如何使用

写在最后


鸣谢

注意:经测试与反馈,该离线包目前无法运行至 统信UOS 和 麒麟 操作系统,正在想办法解决

2023.12.06

uos和麒麟的内网加载包由CSDN的另一个开发者弄出来了,后续我整合下发出来,最近太忙了

2024.04.09

感谢大佬ZhongruiRao提供的方案,基于此方案写了一个插件集成教程,供大家参考​ 网页链接

鸣谢:@ZhongruiRao

写在前面

近期在项目中需要用到地图,于是我选择了较为大众的高德地图,在所有的功能实现后,得到通知需要在内网进行运行,我断网测试后发现并不能离开网络。官方的插件中发送了部分网络请求,所以导致无法在内网运行(白屏)的情况,于是我通过高德在线的JS API引入外链的方式保存了相关源代码并做了修改,使其所有的网络请求均变为本地请求。

如何使用高德地图请参考官方文档:快速上手-地图 JS API 2.0 | 高德地图API

【我这里用的是高德2.0JS API,所以请查看2.0文档】

声明

  • 本离线包基于高德地图js-api2.0,在此基础进行修改。
  • 本项目仅为个人兴趣开发,不收费,作者也不提供任何付费服务。
  • 本项目仅供个人学习研究使用。
  • 本项目禁止商用,禁止在企业项目开发中使用此地图离线包,禁止使用此离线包以及基于此项目二次开发的软件从事盈利活动。

进入主题

高德离线包我已经存至Gitee(自行下载即可):高德地图离线解决方案: 高德地图离线解决方案

加载地图瓦片(如何下载,如何加载在代码)请参考我的下一篇文章:高德地图内网加载地图瓦片、如何下载地图瓦片资源-CSDN博客

离线路径规划可参考我的另一篇文章:Java SpringBoot项目 + GraphHopper 实现地图离线路径规划-CSDN博客

如何使用

1.将下载的离线包放到项目的public下

2.在index.html中直接加载下载的amap文件夹下的AMap3.js,其余文件不可删除!!!如下图:

37e3b40066234767a122a002fb849315.png

3.在代码中直接new AMap即可,vue项目的话不需要再去导入map插件配置key(因为扒取这个源代码时已经利用了我申请的key),如下图直接使用即可。

引入后提示AMap不存在的,重新运行项目即可

bc665b376c20488bbe597c68e54d867c.png

代码如下

let map = new AMap.Map('map-container', { // 设置地图容器id
    resizeEnable: true,
    zoom: 12,
    resizeEnable: true,
    rotateEnable: true,
    pitchEnable: true,
    center: [94.89, 36.42],
    defaultCursor: 'pointer',
    showLabel: true,  //是否显示文字标注
})

我修改的这个离线包可直接使用 绘点,绘线,动态轨迹,坐标选取 ,地图框选等基本插件,无需再做其他修改

9a8f258c8da346ab88ce040ce9097a81.png73b8496b618f43bab6dd3bc08f533c02.png

211892460bda4cec933b4f1912e0b00f.png

注意:这个离线包没有实际测试包含了哪些插件,现在大家开发后需要断网测试一下看看哪些插件不能用,尽可能的替换掉,以免上了生产环境出现问题

目前已知反馈频率较高的是:AMap.ScaleAMap.ToolBarAMap.MarkerClusteAMap.PolyEditorAMap.MarkerCluster 这些插件不能使用,目前太忙,等有空了我把这些插件测试一下,如果不需要联网我再打进去

### Vue 应用中高德地图内网部署教程 #### 准备工作 为了在内网环境中成功部署带有高德地图功能的Vue应用,需先准备必要的环境和文件。确保已安装Node.js以及npm/yarn工具,并创建好Vue项目。 #### 获取离线开发包 从官方渠道或其他可信来源获取最新的高德地图离线开发包[^2]。该开发包包含了用于离线使用的JavaScript库和其他必需资源。将其解压到项目的`public`目录下以便后续引用。 #### 修改入口HTML文件 编辑位于`public/index.html`中的代码,在<head>标签内部加入如下script标签来引入本地存储的地图API脚本: ```html <script src="/path/to/amap.min.js"></script> <link rel="stylesheet" href="/path/to/amap.css"> ``` 注意替换路径为实际存放位置。 #### 地图初始化设置 对于基于Vue的应用程序来说,可以在组件挂载时通过调用AMap.Map()函数实例化一个新的地图对象并指定容器ID: ```javascript import { onMounted } from 'vue'; export default { setup() { let map; onMounted(() => { map = new AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923], // 默认中心点坐标 }); }); return {}; }, }; ``` 此段代码展示了如何利用Composition API模式下的生命周期钩子onMounted来进行地图控件的初始化操作[^1]。 #### 下载与管理瓦片数据 考虑到完全断开互联网连接的情况下仍能正常展示地理信息,则需要提前准备好所需的底图切片(Tiles)。这通常涉及到向服务商申请特定区域内的静态图片集合或是自行生产这些素材。之后按照一定规则存放在服务器上供前端请求读取。 #### 解决常见问题 - **加载失败**:确认所有依赖项都已被正确放置于可访问的位置;检查浏览器控制台是否有错误提示。 - **性能优化**:当处理大量标记或复杂交互逻辑时可能出现延迟现象,此时可以考虑采用懒加载策略减少初始渲染负担。 - **安全考量**:由于涉及敏感地理位置资料传输,建议采取适当的安全措施保护用户隐私不受侵犯。
评论 139
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海的鲸同学 luvi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值