前端加载高德离线地图的解决方案

这篇具有很好参考价值的文章主要介绍了前端加载高德离线地图的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

核心是需要下载地图瓦片放在本地,脱离在线地图服务,实现离线加载地图。

使用BIGMap工具下载地图离线瓦片到本地 下载地址:http://www.bigemap.com/reader/download/detail201802015.html BIGEMAP GIS Office-全能版

需要注册试用版(免费)

前端加载高德离线地图的解决方案

试用版可以下载到16级别的瓦片,单次下载不能超过100M

  1. 关于单次下载不能超过100M的问题 想到是否可以分多次框选区域去下载 得出结论是不行 因为分块下载的文件 同级别瓦片的文件名都是一样的 算法是根据瓦片名字去一一对应加载到屏幕相应xy位置上的。

下载瓦片时也可以通过选择行政区域来进行区域的划分

前端加载高德离线地图的解决方案

2、但是可以分级别去下载,然后再集成加载。

前端加载高德离线地图的解决方案

免费的可以下载谷歌、arcgis、TMS服务的瓦片,我下载的是arcgis服务的高德地图瓦片。

关于地图渲染流程:

电子地图涉及几种坐标系, 每种坐标的计量单位如下:经纬度是球面坐标,我们日常使用经纬度单位的是角度(deg),

在进行投影计算时需要换算为弧度(rad) 墨卡托投影得到的二维坐标单位是米(m);电子屏幕坐标的单位是像素(px)。

前端拿到的地图数据中绝大多数是墨卡托坐标,很小一部分是经纬度坐标。墨卡托或经纬度坐标需要先被换算成屏幕坐标,最后被CSS拼接或WebGL渲染。

加载本地arcgis算法如下:

前端加载高德离线地图的解决方案

AMapLoader.load({

key: "", // 申请好的Web端开发者Key,首次调用 load 时必填

version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15

plugins: ["AMap.Scale","AMap.DistrictSearch"], // 需要使用的的插件列表,如比例尺'AMap.Scale'等

})

.then((AMap) => {

var googleMapLayer = new AMap.TileLayer({

getTileUrl: function (a, b, c) {

var oo = "00000000";

var zz = c;

var z = "L" + zz;

var xx = a.toString(16);

var x = "C" + oo.substring(0, 8 - xx.length) + xx;

var yy = (b - 1).toString(16); //注意此处,计算方式变了

var y = "R" + oo.substring(0, 8 - yy.length) + yy;

return "/arcgis_layers/" + z + "/" + y + "/" + x + ".jpg";

},

opacity: 1,

zIndex: 99,

});

this.map = new AMap.Map("container", {

resizeEnable: true,

expandZoomRange: true,

zoom: 9,

zooms: [9, 13],

layers: [ new AMap.TileLayer(), googleMapLayer],

});

this.map.addControl(new AMap.Scale());

this.map.setCenter([106.976692, 26.236684]); // 中心点坐标

})

.catch((e) => {

console.error(e); //加载错误提示

});

通过算法来加载下载好得离线瓦片,这样就实现了离线地图。文章来源地址https://www.toymoban.com/news/detail-401391.html

到了这里,关于前端加载高德离线地图的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue实现离线地图+leaflet+高德瓦片

    1、我是通过leaflet和高德的瓦片实现的离线地图 2、可以通过npm、CDN和直接下载zip包实现引入leaflet,附上leaflet中文网 3、高德的瓦片是找了很多帖子无意看到的一份合适的瓦片下载项目(忘了原帖在哪),不过这个项目是Java项目,是通过后端大哥帮忙下载的,附上项目原地址

    2024年02月12日
    浏览(31)
  • Leaflet 加载高德地图

    在前面的文章中,我们学习了如何使用 Leaflet 创建一个基本的地图。在本文中,我们将学习如何在 Leaflet 中加载高德地图,并结合实际应用构建地图点击事件。 高德地图是一款由高德软件提供的数字地图服务,在国内使用较为广泛。高德地图提供了丰富的地图数据和 API 接口

    2024年03月25日
    浏览(35)
  • uni-app离线打包高德地图导入android studio不能正常显示

    本人使用的uni-app SDK版本:Android-SDK@3.8.7.81902_20230704 1.导入以上文件,依赖已经自动添加了 2.确保这个正常引入 3.修改AndroidMainifest.xml,添加自己的密钥

    2024年02月13日
    浏览(39)
  • 离线语音 IOT 软硬一体化解决方案

    随着物联网时代的到来,智能家居的概念越来越深入人心,而在智能家居场景之中,智能语音识别是当前最热门的方案之一。语音及AI 技术越来越广泛的应用到各个领域,语音识别作为智能设备的AI 控制入口,发挥着具大作用,能给用户带来友好的便利性。 在智能家居场景中

    2024年02月19日
    浏览(35)
  • 前端vue引入高德地图入门教程

    距离上一篇关于前端项目中使用高德地图的文章已经将近5年之久, 这是我的第一篇关于高德地图的文章 这期间前端技术日新月异,5年前JQuery还如日中天,如今已经销声匿迹,很少有公司招聘还在要求JQuery,更多的是Vue、React。 如今更多采用模块化开发,结合webpack、vite,我

    2024年02月11日
    浏览(35)
  • Postman启动慢一直加载解决方案

    下面给出正确删除数据方式 删除C:Users用户名AppDataRoaming下的Postman文件夹 会清空postman中的数据 最好提前做好备份

    2024年02月11日
    浏览(30)
  • 视频加载失败的原因及解决方案

    视频加载失败是在网页中常见的问题之一。当用户尝试播放上传的视频时,有时会遇到部分视频加载失败的情况。下面将详细讨论可能导致视频加载失败的原因,并提供相应的解决方案。 视频文件路径错误:视频加载失败的一个常见原因是视频文件路径错误。当在网页中嵌入

    2024年02月05日
    浏览(286)
  • 解决方案:解决https页面加载http资源报错

    HTTPS页面加载HTTP资源会报错的原因是出于安全性考虑。 HTTPS(HyperText Transfer Protocol Secure)是一种通过使用SSL/TLS加密通信来保护数据传输的协议,它确保了客户端和服务器之间的安全连接。 当HTTPS页面尝试加载非加密的HTTP资源时,存在以下问题: 混合内容警告:浏览器会发出

    2024年02月07日
    浏览(32)
  • 漏斗分析、 python学习路径地图、数据科学技能书知识地图、数据安全治理解决方案、AIGC发展研究、经营的本质…| 本周精华...

    ▲ 点击上方卡片关注我,回复“8”,加入数据分析·领地, 一起学习数据分析,持续更新数据分析学习路径相关资料~ (精彩数据观点、学习资料、数据课程分享、读书会、分享会等你一起来乘风破浪~ )回复“小飞象”,领取数据分析知识大礼包。 关注微信公众号: 木木

    2024年02月11日
    浏览(28)
  • 关于微信小程序列表懒加载的解决方案

      我们在渲染一个展示数组,不能一次性的把所有的元素都展示出来,这样可能会导致用户性能体验下降,因此我们需要把所有的元素先保存在一个容器里,等用户需要(上滑)的时候再拿出来显示,为了更加高效的开发,我封装了方法,为了让封装方法得到的数据能够持久

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包