跳到主要内容

16、免费下载地图切片数据

本文概述

互联网存在许多免费的地图资源,但是这些资源都需要在互联网环境下使用,如果使用场景是在离线或本地设备上,没有在线调用地图的途径,这时如果没有自己制作地图的能力,只能提前下载地图切片存放于本地设备。

本章使用了QGIS工具及QTiles插件,下载无水印的地图切片

通过CesiumEarth Desktop在Windows及安卓系统中进行本地浏览

1、切片工具介绍

QGIS是一款轻量级的多功能地理数据处理软件,一些简单的数据处理,无需通过专业软件,QGIS就能够快速处理,而且是开源项目,免费使用。

QTiles是QGIS中的一款插件,能够在QGIS软件中在线安装,用来下载地图切片数据。

Locale Dropdown

2、浏览工具介绍

CesiumEarth分为在线版和Desktop版本

在线版只能调用经过http发布后的图层数据

Desktop能够在Windows和安卓系统中本地化运行,且能够加载本地数据,支持二维影像切片、三维地形切片,以及通过3DTiles格式发布的倾斜数据、点云数据、城市模型、BIM数据等

使用步骤

1、准备地图资源

首先我们需要添加免费的地图资源,每个地图资源的调用地址和使用门槛都不一样,本章以天地图为例,添加天地图卫星影像和天地图注记两个图层。

天地图是国家测绘地理信息局建设的地理信息综合服务网站,属于国内最为权威的地图资源,且公开免费使用,常用于各类地图场景的建设当中。

使用天地图首先得获取其在互联网上能够公开调用的链接地址,其次需要申请天地图免费调用令牌(tk)

a:获取地图链接

访问天地图官方网站:天地图官网

点击页面底部开发资源

Locale Dropdown

点击地图API

Locale Dropdown

这里列出了所有天地图能够提供的各类地图资源,以及链接地址

从地图API的说明中可以看到,天地图对所有用户开放,但是在使用之前,需要申请Key(也就是令牌)

Locale Dropdown

天地图卫星影像链接地址

拖动到页面底部,有详细的连接地址示例,该示例为卫星影像的链接地址

天地图卫星影像链接

http://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=您的密钥

该示例中说明了其中有4个参数是调取时需要用到的,其中{z} {y} {x}这3个参数CesiumEarth可以直接解析,无需修改,把您的密钥替换为自己申请的tk即可

Locale Dropdown

天地图注记图层链接地址

从天地图的地图API页面中可以看出,其他地图的链接也是类似的,只需修改其中一个关键参数即可

Locale Dropdown

注记图层链接只需把其中img_w修改为cia_w,img修改为cia,其余部分保持不变即可,修改后的链接如下

天地图注记图层链接

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

b:获取令牌(tk)

获取天地图令牌的方式非常简单,只需注册成为天地图的用户,个人和单位都可注册,这样就拥有了属于自己的地图调用令牌(tk)

互联网上能够搜索到很多令牌,那些都是属于不同用户注册后公开出来的,比如CesiumEarth的默认图层中就用到了CesiumEarth自己注册使用的令牌,但是每个令牌都有调用数量,一旦调用次数过多,有可能会被屏蔽,导致无法使用

因此自己申请注册成为天地图,获取属于自己的令牌,才是最稳定最可靠的做法

不同类型的注册用户,拥有不同数量的配额,具体数量如下所示

Locale Dropdown

登录之后,点击申请Key,进入到个人控制台

在应用管理中创建一个新的应用

Locale Dropdown

创建成功之后,天地图就给该应用分配了一个令牌(tk),此时我们就可以通过自己的令牌来调用天地图资源

Locale Dropdown

2、QGIS添加地图图层

打开QGIS软件,在左侧图层窗口中找到XYZ Tiles,右键点击选择New Connection选项

Locale Dropdown

在弹出窗口中输入名称和URL,URL为刚才获取到的链接,直接把示例的链接复制进去即可,其中tk需要替换成自己申请的令牌(tk)

Locale Dropdown

添加成功之后XYZ Tiles就会出现刚添加的图层配置,此时需要双击添加的图层配置,在下方Layers就会出现当前的图层,勾选后就会看到QGIS已经成功调取了天地图的卫星影像资源

Locale Dropdown

同样的方法,把注记图层添加到QGIS中,最终效果如下:

Locale Dropdown

3、QTiles下载切片

a:安装QTiles插件

点击QGis菜单中的Plugins->Manage and Install Plugins...

Locale Dropdown

在弹出的插件管理窗口中搜索并安装QTiles插件,此时QTiles插件即安装完毕

Locale Dropdown

b:下载切片

天地图包含了全国范围0-19级别的数据,其数据量非常庞大,直接下载全国数据将耗费非常大的时间,且每个令牌(tk)具有调用次数限制,超出次数之后tk有可能会被屏蔽

因此在下载前需要选定下载区域,以减少下载量

以武汉国博陈列馆为例,在QGis地图窗口中把视角放大到该区域

Locale Dropdown

点击Plugins->QTiles->QTiles

Locale Dropdown

在QTiles主窗口中输入名称(Tileset name)、输出文件夹(Directory)、下载范围(Extent)、下载层级(Zoom)

图中Extent参数中Canvas extent为当前视角范围,Zoom代表下载0-19级别(0代表最上层,19代表地图的最精细级别)

Locale Dropdown

点击Run,就开始了自动下载程序,进度调显示了下载进度及需要下载的所有切片数量,当切片数量大于10000时,系统会提示范围过大,此时可选择继续,也可重新选定范围,以减少下载量

此时需要注意的是,QTiles会自动下载当前所有已打开的图层,本文中卫星影像和注记同时打开,因此下载后是两个图层融合后的效果

Locale Dropdown

下载完毕后输出文件夹的目录结构如下图所示,红框部分为数据路径,在Desktop中加载本地数据选择该路径即可,绿框部分为索引规则,在Desktop中Url内需填入该规则,文件夹依次以z、x、y进行命名,其中y为图片的名称,后缀以png结尾

因此url规则可填写:{z}/{x}/{y}.png

Locale Dropdown

4、CesiumEarth浏览本地切片数据

CesiumEarth浏览本地数据需要下载Desktop版本

进入CesiumEarth Desktop,登陆后点击新建图层

Locale Dropdown

选择二维切片数据,输入图层名称,选择本地数据,打开刚才输出的文件夹目录,在Url中填入索引规则,点击确认后即可,具体如下图所示

Locale Dropdown

最终效果如下:

Locale Dropdown

5、CesiumEarth安卓版浏览本地切片数据

CesiumEarth支持安卓系统上运行,因此在安卓系统上可通过CesiumEarth浏览本地切片数据

通过Android Studio把切片数据复制到安卓系统

连上安卓平板,打开USB调试模式,在Android Studio的文件传输窗口中,依次点击:storage->self->primary->Android->data->com.cesiumearth.desktop->files->Documents,把切片数据复制到Documents文件夹下,如下图所示:

Locale Dropdown

登陆安卓版CesiumEarth,点击新建图层

与Windows版类似,选择二维切片数据,输入图层名称,选择本地数据,打开文件夹目录,在Url中填入索引规则,点击确认后即可,具体如下图所示:

Locale Dropdown

Locale Dropdown

最终效果如下:

Locale Dropdown