标题:Qt加载天地图离线api开发包/从官网趴地图js代码/费了九牛二虎之力终于搞定
作者:liudianwu
日期:2024-09-17 19:46
内容:
## 一、前言说明
网上关于如何趴天地图离线api文件的文章,只有少量的两三篇,而且几乎没有说全和说对,搞得评论也是一片懵逼,这里不行那你不行,思路可以借鉴就是。索性花了点时间,自己研究了如何从官网一步步趴下来js文件,最终所有离线能使用的功能全部搞定,也根本不会有http等访问的情况出现,彻底离线断网使用,加载本地瓦片速度超奇的快。
为啥要天地图离线?百度离线不可以吗?而且网上几乎流传的都是百度地图的离线开发包,有2.0和3.0版本的,但是里面其实也不全,还有不少http访问的代码没有去除。而且百度地图并不是国家标准坐标系火星坐标系,使用很多设备对接的时候,很不好处理,每次都需要经过坐标转换,而天地图使用的大地坐标系,和国际的地球坐标系几乎没有偏差,据说偏差在0.6m,这个相当于可以忽略了,民用级别完全是够了。本人亲自用手机开启走路轨迹,导出GPS坐标点,经常轨迹点回放测试,在天地图上验证几乎一致。
离线开发包制作说明:
1. 下载地图核心文件 http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥 ,核心文件必须下载。
2. 下载地图部件文件 http://api.tianditu.gov.cn/v4.0/components.js ,部件文件必须下载。
3. 下载地图样式文件 http://api.tianditu.gov.cn/v4.0/css/tianditu4.0.css 。地图样式文件必须下载。
4. 下载高级绘图文件 http://api.tianditu.gov.cn/v4.0/military.js 。非必须,一般用不上。
5. 下载服务请求文件 http://api.tianditu.gov.cn/v4.0/service.js 。非必须,用于发送网络请求获取逆地址解析、路径规划查询等,既然都离线了,也用不了。
6. 打开js文件和css文件,依次下载对应的图片,可以通过搜索 .png 查找对应的图片。
7. 打开核心js文件搜索 T.DomainFun(),将下面的路径改成本地的。
```cpp
E: "./",
e: "./image",
//E: T.Protocol.value + "api.tianditu." + T.Domain,
//e: T.Protocol.value + "api.tianditu." + T.Domain + "/v4.0/image",
```
8. 在路径这个位置下面是各种瓦片地址的在线地址,代码都是 return T.Protocol.value... ,这里可以不用改,直接在最终调用的地方更改更妥。
9. 最关键部分,将核心文件中的加载网络瓦片文件改成本地的,搜索 getTileUrl = function ,对应的函数就是返回的瓦片地址,里面总共定义了三种地图的瓦片,每一 ..
#1 [圣域天子 09-17 20:17]
总有时间搞研究,真好