• 【无标题】


    概述

    但凡要干一件稍微有意义的事,总会需要一定的时间积累,甚至还需要下不少的笨工夫,也正因如此,才会让这些最终做成的事更具有价值和意义。

    比如我们最近在一个项目的助推下,就干了一件比较有意义的事情,尽管投入了不少时间和精力,但我们认为这是一件值得去做的事。

    是一件什么事呢?

    我们基于 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经纬度投影,如果有单位需要一套墨卡托的全球路网地名标签,我们也可以为你提供相应的切片服务

  • 相关阅读:
    Another app is currently holding the yum lock; waiting for it to exit
    Ubuntu20.04 中解决端口占用 bind:address already in use
    web前端之JavaScript的插件下载指令及介绍、npm、install、save、require
    [附源码]Python计算机毕业设计Django基于vuejs的爱宠用品销售app
    登录业务实现 - token登录鉴权
    前端工作总结100-vue中name错误
    刷代码随想录有感(85):贪心算法——跳跃游戏
    23062QTday3
    使用html+css实现一个静态页面【传统文化茶带音乐6页】HTML学生个人网站作业设计
    YOLOv5 PyTorch TXT label文件格式讲解
  • 原文地址:https://blog.csdn.net/mrib/article/details/126948176