天地图卫星影像下载及Key获取(离线地图服务部署阶段三:下载天地图卫星影像)
一、账号注册及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机怎么样