天地图卫星影像下载及Key获取(离线地图服务部署阶段三:下载天地图卫星影像)

2025-10-29 11:39:05

一、账号注册及Key获取

1.进入天地图官网:天地图API,点击控制台进行账号注册。

2.登录成功后点击控制台,选择应用管理,创建新应用。

配置好你就可以获得对于的Key了,如下图所示

二、地图数据下载GeoJSON

1.打开天地图服务中心下载地图数据:天地图 服务中心

2.下载你需要的数据,假设我需要下载两个数据,分别是全国数据和嘉兴市的地图数据。

全国数据的下载,按如下配置好后点击下载数据,等待下载完成即可:

嘉兴市数据的下载,在选择地区选择好省市开始下载即可:

浏览器下载好数据应该如下显示:

三、QGIS软件中添加并显示对应地图数据

1.在 QGIS 中添加天地图服务 :

你需要分别添加卫星影像底图和地名注记图层。

(1)在 QGIS 的“浏览器”面板中,找到 XYZ Tiles,右键点击并选择 新建连接...

(2)添加卫星影像底图:在点开新建连接后把Name和URL配置好并点击确定。

卫星影像底图的链接:天地图API

注意:

这里的配置都是两两配对的,比如我用的是影像底图:

http://t0.tianditu.gov.cn/img_w/wmts?tk=您的密钥球面墨卡托投影

那么对应使用的影像注记就是:

http://t0.tianditu.gov.cn/cia_w/wmts?tk=您的密钥球面墨卡托投影

当前给的路径并不是正确的,需要完整的路径应该是:

https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=你的密钥

https://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=你的密钥

你只要在对应的“你的密钥”的位置填入你的第一步获得的密钥即可。

接下来,我们回归主体,在下图新建连接里面分别填入(填入的名称Name可以随意):

Name:TDT Satellite

URL:https://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=你的密钥

然后就可以点击确定后,双击那个你已经新建的连接,效果如下则说明你成功添加了:

(3)添加影像注记图层(和上述步骤2类似) :在点开新建连接后把Name和URL配置好并点击确定。效果如下:

注意:图层Layers谁在上面优先显示谁,如下图

2.在 QGIS 中添加地图数据GeoJSON并下载对应离线的地图数据 :

(1)将之前下载好的地图数据拖入QGIS软件中,效果如下:

(2)使用插件生成地图瓦片包:

1)安装插件:

点击菜单栏 插件 -> 管理并安装插件...

在搜索框中输入 QTiles,找到后点击“安装插件”

2)打开插件: 安装成功后,在工具栏上找到它的图标。

3)配置参数,当前我打算下载中国地图瓦片包,具体配配置(全国地图级别ZOOM一般是0-10,市级别的用10-15)如下图:

output的参数可以通过点击右侧的更多三个点的按钮,按如下配置:

配置好后单击run等待其下载完毕。

上面之前说过,地图数据需要成对下载,刚刚下载了影像底图,现在下对应的影像注记,记住layers的图层需要切换为注记的那个连接,然后依次配置好开始下载:

接下来是嘉兴市的影像底图和对应的对应的影像注记,配置如下:

(3)配置地图config.json:

假设你已经下好了大量的地图数据:

我们需要一个json文件来做映射配置,方便地图服务的部署:

例如我的config.json内容如下:

{

"options": {

"paths": {

"root": "/data",

"mbtiles": "/data"

}

},

"data": {

"chinac_img_w_0_10":{

"mbtiles": "chinac_img_w_0_10.mbtiles"

},

"china_cia_w_0_10":{

"mbtiles": "china_cia_w_0_10.mbtiles"

},

"jiaxin_img_w_10_15":{

"mbtiles": "jiaxin_img_w_10_15.mbtiles"

},

"jiaxin_cia_w_10_15":{

"mbtiles": "jiaxin_cia_w_10_15.mbtiles"

}

}

}

以上完成后还需要用下文的docker来运行地图服务。

3.在 QGIS 中添加地图数据GeoJSON并下载对应离线的地图数据 :

(1)重新拉取 Docker 镜像

首先,你需要从打开Docker Desktop后在命令提示符或powershell重新拉取 maptiler/tileserver-gl 镜像(注意:你需要开启vpn连接外网才可以,否则会连接超时)。打开您的终端(Terminal)并执行以下命令:

docker pull maptiler/tileserver-gl

(2)查找下载好的镜像名称

docker images

你会看到一个列表,类似这样:

(3)运行容器

现在,你的离线镜像已经成功加载并准备就绪,通过以下命令启动你的地图服务:

把在我本地的地图项目启动起来:将容器的8080端口映射到主机的8083端口:

docker run --rm -it -p 8083:8080 -v "C:\Users\dddsg\Desktop\mymapTiles":/data maptiler/tileserver-gl:latest

C:\Users\dddsg\Desktop\mymapTiles是你下载好的瓦片包:

注意:在测试过程中我遇到bug,我执行结果如下:

C:\Users\dddsg>docker run --rm -it -p 8083:8080 -v "C:/Users/dddsg/Desktop/公安项目/地图服务相关/mymapTiles":/data maptiler/tileserver-gl:latest

WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested

Starting tileserver-gl v5.3.1

Using specified config file from config.json

Starting server

Listening at http://[::]:8080/

SQLITE_READONLY: attempt to write a readonly database

报错说我的文件夹是只读无法写入,应该是在桌面创建文件夹导致的,你需要把里面的文件移到一个新的你自己创建的文件夹,例如我之后执行:

docker run --rm -it -p 8083:8080 -v "C:/Users/dddsg/Desktop/公安项目/地图服务相关/mymap":/data maptiler/tileserver-gl:latest

其中C:/Users/dddsg/Desktop/公安项目/地图服务相关/mymap 就是我自己新建的项目,执行后

在浏览器中的地址栏写入:

http://localhost:8083/

这是我们映射的端口,效果图如下:

这说明我们本地的项目成功跑起来了,恭喜你完成到这一步,接下来在vscode部署实现地图的展示,我还在对代码进行研究,之后熟悉会更新下一期。

六合神话
华智融new7220POS机怎么样