概述
但凡要干一件稍微有意义的事,总会需要一定的时间积累,甚至还需要下不少的笨工夫,也正因如此,才会让这些最终做成的事更具有价值和意义。
比如我们最近在一个项目的助推下,就干了一件比较有意义的事情,尽管投入了不少时间和精力,但我们认为这是一件值得去做的事。
是一件什么事呢?
我们基于 OpenStreeMap 的全球矢量数据,经过一系列的处理之后,切了一套全球范围的地名路网透明标签瓦片地图,最高级别为水经注的20级,最终成果文件有6.59TB大小。
该地名路网标签可以与全球236TB离线卫星影像进行叠加,从而解决了国外区域没有路网标签的问题。
全球透明路网地图
原本以为对全球矢量进行切片是一件并不复杂的事,但开工之后才发现有好多细节需要去处理,不过其中最为消耗时间和精力的主要是矢量样式配图、数据清洗处理和渲染切图。
矢量数据的配图效果,主要以天地图为参考依据;数据清洗主要包括数据入库、国界和敏感区域的地图合规化处理;渲染切片最花时间,我们开发了专门的切片工具进行处理,而且为了提升切片的效率,还投入了不少硬件设备。
OpenStreetMap官方提供了完整的全球矢量数据pbf文件,欧洲的数据量是最大的,有33.6GB,其次是亚洲,有10.9GB,全球合计65.3GB大小。
全球矢量数据65.3GB
如果一次性将全球65.3GB的矢量数据进行处理的话,实在太大了,因此我们将全球数据分成了6批次进行处理。
在生成任务网格时,将每个网格的经度跨度设置为3度,纬度跨度设置为2度,并且特意过滤掉了没有矢量数据的海洋部分。
分六批次的任务网格
每一批次都需要经过数据处理和图例配置,然后渲染切片为DAT文件进行分块存储。
这里的分块与全球236TB高清影像的分块方式一致,基于第12级作为金字塔的塔尖进行分块,但不存在地名路网数据的区域将不会生成对应的金字塔DAT文件。
如果你不了解什么是DAT文件格式,请参阅《DAT与IDX格式文件如何打开?》一文中的详细说明。
最终生成的全球地名路网透明标签瓦片地图有6.59TB大小,共1215042个文件,由于一组DAT与IDX为一个分块,因此共有607521座金字塔文件。
全球共6.59TB
基于编号为“2_1_1”和“2_2_1”的两座金字塔文件,为全球前12级数据,如下图所示。
全球地名路网地图
为了让大家更详细地了解该数据的情况,接下来列出每一个部分的文件大小,以及相应的文件列表。
第一部分1.33TB
第一部分140368个文件
第二部分1.42TB
第二部分270054个文件
第三部分1.80TB
第三部分325430个文件
第四部分1.49TB
第四部分299618个文件
第五部分516GB
第五部分145760个文件
第六部分30.3GB
第六部分33808个文件
由于这六个部分并没有按规则的几何区域进行平均分割,因此所存储的大小有比较大的出入,分区如下图所示。
分区图
渲染生成后的DAT文件,可以导入到水经微图的任务列表中进行查看,这里分别列出东西半球的效果图。
东半球效果图一
东半球效果图二
东半球效果图三
西半球效果图一
西半球效果图二
西半球效果图三
西半球效果图四
该全球透明标签可以通过水经注地图发布服务中间件进行发布后,在其它GIS平台中进行加载。
想要了解中间件的功能,请参考《什么是地图发布服务中间件(WeServer)》一文中的详细说明。
总结
通过这一次的全球切片处理之后,我们总结出了一套全球矢量数据处理、图例配置和高效切片方案,虽然花了不少的时间和精力,但这也的确是一件非常有意义的事。
需要特别说明的是,该切片的坐标投影为WGS84经纬度投影,如果有单位需要一套墨卡托的全球路网地名标签,我们也可以为你提供相应的切片服务