关于gis:OSM地图本地发布如何生成各省市矢量地图

5次阅读

共计 2051 个字符,预计需要花费 6 分钟才能阅读完成。

1、缘起

  1. openmaptiles提供了一套 OSM 数据应用的残缺解决方案,在后面文章如何实现 OSM 地图本地公布并自定义配图中,咱们具体介绍了如何装置openmaptiles,并生成了一个阿尔巴尼亚地区的“helloworld”。
  2. 参照上篇文章的内容,输出上面的命令,就能够生成中国地图。

    ./quickstart.sh china 
  3. 下面命令,须要急躁期待,我电脑 4 核 8G,用了 16 个小时左右。最终失去了中国大陆地区,0- 7 级的矢量瓦片数据。
  4. openmaptiles次要是从 geofabrik 网站下载 OSM 数据,geofabrik 在中国地区下载的最小颗粒度是中国大陆和台湾,没有方法按大陆地区的省,或按自定义区域进行下载。

2、问题

  1. 能不能按自定义区域生成地图?
  2. 有哪些办法能进步处理速度?

3、剖析

  1. openmaptiles生成地图分 4 个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。
  2. 问题一剖析:

    1. 前三个步骤,只能按整个中国的范畴和所有层级来解决,第 4 步能够通过管制范畴、层级来实现自定义区域的切图。
  3. 问题二剖析:

    1. 第 1 步数据下载的工夫取决于网速。
    2. 第 2 步数据入库和第 3 步数据分析的工夫取决于机器性能。
    3. 第 4 步生成矢量瓦片的工夫取决于机器性能、切图范畴、切图层级。
    4. 想要进步处理速度,能够针对下面的因素,隔靴搔痒。

4、生成自定义地区矢量瓦片

  1. 后面的 ./quickstart.sh china 命令蕴含 1 - 4 步,后续就不要再执行这个命令了,不然又得重来 16 个小时。后面曾经提到过,这个命令在第 4 步,默认会切整个中国范畴 0 - 7 级的地图。想要更大层级的地图,只须要另外独自执行第 4 步就能够。
  2. openmaptiles生成的矢量瓦片,最大到 14 级,设置再大也没有用,因为前三步没有对更大级别的数据进行剖析。
  3. 第 4 步 生成矢量瓦片 的命令,会把上一次的瓦片革除,如果想把两次的后果放在一个文件中,比方想把中国 0 - 7 级和北京 8 -14 级的矢量瓦片放在一个.mbtiles 文件中,则须要批改配置,让程序不革除上一次的后果。
  4. 上面以生成全国范畴 0 - 7 级地图 + 北京范畴 8 -14 级地图为例,阐明如何来批改配置。
  5. 为防止重启电脑后就各种不灵的难堪,咱们从重启电脑后开始。

4.1、启动 docker

  1. 查看 docker 是否启动

    docker --version
  2. 如果没有启动,输出上面命令启动 docker。如果有须要,后续能够本人把 docker 设置为开机自启动。

    systemctl start docker

4.2、启动 postGIS 容器

  1. 后面的 ./quickstart.sh china 命令在执行过程中,下载了 4 个 docker 镜像,启动了若干个容器,工具类容器在应用实现后就销毁了,数据类和利用类的容器会保留。(镜像和容器的关系)
  2. 下图红框中的容器就是存放数据的,它外面有个 postGIS,咱们须要启动这个容器。
  3. 进入 openmaptiles 文件夹
  4. 启动 postGIS 容器

    make start-db-preloaded

4.3、设置不清理上次的后果

  1. 关上 Makefile 文件,找到 generate-tiles 命令,下图红框的地位,就是革除上次后果文件的命令,咱们在这行后面输出 # 号,把它正文掉。

4.4、删除默认切图范畴

  1. 程序默认会用 china.bbox 中的参数作为切图范畴,咱们把这个文件删掉,后续在.env 文件中配置。
  2. china.bbox 文件在 data 文件夹中,删除命令:

    rm -f ./data/china.bbox

4.5、批改切图层级和范畴

  1. 关上.env 文件
  2. 批改切图的层级 MIN_ZOOMMAX_ZOOM
  3. 批改切图的范畴BBOX,格局为:minX,minY,maxX,maxY

4.6、生成瓦片

  1. 输出上面命令,生成瓦片

    make generate-tiles
  2. 生成的后果是 tiles.mbtiles 文件,在 data 文件夹中

4.7、反复操作

  1. 反复 4.5 和 4.6 步骤,批改层级和范畴,就能把屡次的后果放在一个文件中。

5、总结

  1. openmaptiles生成地图分 4 个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。
  2. 中国地区生成地图的最小颗粒度是中国大陆和台湾,没有方法按大陆地区的省或按自定义区域进行生成。
  3. 前三个步骤,只能按整个中国的范畴来解决,第 4 步能够通过管制生成范畴、生成层级来实现生成自定义区域的地图。
  4. 前三个步骤只须要执行一次,最初一个步骤能够屡次执行。
  5. 如果想把屡次生成的矢量瓦片放在一个文件中,能够设置不革除上次生成的后果。

原文地址:http://gisarmory.xyz/blog/index.html?blog=OSMOpenmaptiles

关注《GIS 兵器库》公众号,第一工夫取得更多高质量 GIS 文章。

本文章采纳 常识共享署名 - 非商业性应用 - 雷同形式共享 4.0 国内许可协定 进行许可。欢送转载、应用、从新公布,但务必保留文章署名《GIS 兵器库》(蕴含链接:http://gisarmory.xyz/blog/),不得用于商业目标,基于本文批改后的作品务必以雷同的许可公布。

正文完
 0