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

使用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); //加载错误提示

});

通过算法来加载下载好得离线瓦片,这样就实现了离线地图。

前端加载高德离线地图的解决方案相关推荐

  1. 使用OpenLayers加载高德离线地图简单实用

    转载请标注:http://blog.csdn.net/qq_25552049/article/details/79453414 概述   OpenLayers是一个用于开发WebGIS客户端的Java ...

  2. ArcGIS Javascript API 加载高德在线地图扩展

    利用ArcGIS JavaScript API加载高德在线地图的扩展 /*** Created by WanderGIS on 2015/7/15.*/ define(["dojo/_bas ...

  3. Qt之加载百度离线地图(WebKit和WebEngine)

    最近翻看进年前写了一篇关于百度离线地图的博客:Qt加载百度离线地图,发现存在很多问题,比如不能加载折线等图形覆盖物:只支持QtWebKit,不支持QtWebEngine. 之前做项目需要在百度离线地图 ...

  4. Vue+OpenLayers入门(加载高德在线地图)

    开发环境的搭建在上一篇教程中已有描述,如果不知道怎么搭建,请移步Vue+OpenLayers入门(加载OSM在线地图) 此代码为加载高德在线地图以及清除地图上的默认控件: <template&g ...

  5. Qt加载高德在线地图

    Qt使用QWebView加载高德地图 首先 widget.h文件中对变量.槽函数声明 private:QWebView* m_pWebView; // QWebView对象private slots: ...

  6. Qt加载百度离线地图

    1.下载百度地图离线API 1.3 下载链接:http://download.csdn.net/detail/caoshangpa/9476608,网上虽然出现了2.0版本离线API,但是经试用,存在 ...

  7. vue前端项目引用高德离线地图

    由于上一篇下载离线地图瓦片的工具有问题,需要更换工具重新下载离线瓦片,步骤如下: 下载离线瓦片(后端) 1.1用MapDownloader,下载离线地图瓦片 工具提取码: mmdl 需要对工具作如下配 ...

  8. QT实现加载百度离线地图

    在Qt中加载百度地图需要用到网络浏览器,在此采用webEngine模块,然后用webchannel进行qt与HTML/JavaScript的交互. 需求描述:软件加载百度地图,用鼠标在地图上选点,并进 ...

  9. qml加载高德在线地图

    Qml加载在线高德地图 1:上高德地图开发平台注册开发者账号,并申请key: https://lbs.amap.com/api/javascript-api/guide/abc/prepare 2:准 ...

最新文章

  1. 为什么Bugs没有被修复?
  2. 字符串数字转换成对应的Double数值
  3. 完美世界推穿戴式设备:能消灭“宅玩家”吗?
  4. 整了个程序员专用的红包封面,喜欢的来领咯!
  5. python全栈学习--day3
  6. JavaScript学习笔记(6)BOM(浏览器对象模型)pc网页特效(停止学习)
  7. 文件上传测试 bugku
  8. SAP CRM ABAP Product search authorization check - 产品搜索的权限检查机制
  9. 远程计算机关闭了怎么办,怎么远程关闭电脑 远程关闭电脑方法【详细步骤】...
  10. 以某种结构遍历添加的基础类
  11. jQuery -gt; end方法的使用方法
  12. 又丢脸了,“要源码上门自取”,结果美女真上门了!国内企业再惹争议
  13. jenkins 2.121.1 部署项目
  14. 2020 华为 一面 二面 面经
  15. FileInputStreamFileOutputStream
  16. Docker 学习笔记(四)-- Docker 可视化界面
  17. Java实例化对象的几种方式
  18. 西门子杯-工业信息网络化
  19. 【MySQL面试】MyISAM和InnoDB的不同
  20. LSV打印并制作城市地图教程 还可以做分布图、标注图

热门文章

  1. 2018展望| AI:巨头生态开始站队,深入垂直行业才能赚钱
  2. 物联网高温作业应用场景耐高温无线收发串口透传模块推荐
  3. 【安全知识分享】夏季高温作业与应急知识(附下载)
  4. 遗传算法(GA)附Matlab代码(copy能用)寻优算法
  5. TP4056/4057/4054充电不转灯闪FAE技术
  6. hp750w服务器电源如何加电压显示,LITEON PS-2751-7H 02131058 750W RH1288V3服务器电源模块...
  7. 用 wingrub 引导Linux安装详述
  8. xp系统服务器管理器怎么打开方式,winXP系统怎么打开控制面板管理工具
  9. 获得临时文件目录(Temp文件夹)
  10. 火星文输入法?---互联网的主流与非主流