当前位置:网站首页>OSM地图本地发布-如何生成各省市矢量地图
OSM地图本地发布-如何生成各省市矢量地图
2022-06-12 23:41:00 【GIS兵器库】
文章目录
1、缘起
openmaptiles提供了一套OSM数据使用的完整解决方案,在前面文章如何实现OSM地图本地发布并自定义配图中,我们详细介绍了如何安装openmaptiles,并生成了一个阿尔巴尼亚地区的“helloworld”。参照上篇文章的内容,输入下面的命令,就可以生成中国地图。
./quickstart.sh china上面命令,需要耐心等待,我电脑4核8G,用了16个小时左右。最终得到了中国大陆地区,0-7级的矢量瓦片数据。如果是0-14级,前面的配置需要52个小时左右。
openmaptiles主要是从geofabrik网站下载OSM数据,geofabrik在中国地区下载的最小颗粒度是中国大陆和台湾,没有办法按大陆地区的省,或按自定义区域进行下载。
2、问题
- 能不能按自定义区域生成地图?
- 有哪些方法能提高处理速度?
3、分析
openmaptiles生成地图分4个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。- 问题一分析:
- 前三个步骤,只能按整个中国的范围和所有层级来处理,第4步可以通过控制范围、层级来实现自定义区域的切图。
- 问题二分析:
- 第1步数据下载的时间取决于网速。
- 第2步数据入库和第3步数据分析的时间取决于机器性能。
- 第4步生成矢量瓦片的时间取决于机器性能、切图范围、切图层级。
- 想要提高处理速度,可以针对上面的要素,对症下药。
4、生成自定义地区矢量瓦片
- 前面的
./quickstart.sh china命令包含1-4步,后续就不要再执行这个命令了,不然又得重来16个小时。前面已经提到过,这个命令在第4步,默认会切整个中国范围0-7级的地图。想要更大层级的地图,只需要另外单独执行第4步就可以。 openmaptiles生成的矢量瓦片,最大到14级,设置再大也没有用,因为前三步没有对更大级别的数据进行分析。- 第4步
生成矢量瓦片的命令,会把上一次的瓦片清除,如果想把两次的结果放在一个文件中,比如想把中国0-7级和北京8-14级的矢量瓦片放在一个.mbtiles文件中,则需要修改配置,让程序不清除上一次的结果。 - 下面以生成全国范围0-7级地图+北京范围8-14级地图为例,说明如何来修改配置。
- 为避免重启电脑后就各种不灵的尴尬,我们从重启电脑后开始。
4.1、启动docker
检查docker是否启动
docker run hello-world如果没有启动,输入下面命令启动docker。如果有需要,后续可以自己把docker设置为开机自启动。
systemctl start docker
4.2、启动postGIS容器
前面的
./quickstart.sh china命令在执行过程中,下载了4个docker镜像,启动了若干个容器,工具类容器在使用完成后就销毁了,数据类和应用类的容器会保留。(镜像和容器的关系)下图红框中的容器就是存放数据的,它里面有个postGIS,我们需要启动这个容器。

进入
openmaptiles文件夹启动postGIS容器
make start-db-preloaded
4.3、设置不清理上次的结果
- 打开
Makefile文件,找到generate-tiles命令,下图红框的位置,就是清除上次结果文件的命令,我们在这行前面输入#号,把它注释掉。
4.4、删除默认切图范围
程序默认会用china.bbox中的参数作为切图范围,我们把这个文件删掉,后续在.env文件中配置。
china.bbox文件在
data文件夹中,删除命令:rm -f ./data/china.bbox
4.5、修改切图层级和范围
- 打开.env文件
- 修改切图的层级
MIN_ZOOM和MAX_ZOOM
- 修改切图的范围
BBOX,格式为:minX,minY,maxX,maxY
4.6、生成瓦片
输入下面命令,生成瓦片
make generate-tiles area=china生成的结果是
tiles.mbtiles文件,在data文件夹中
4.7、重复操作
- 重复4.5和4.6步骤,修改层级和范围,就能把多次的结果放在一个文件中。
5、总结
openmaptiles生成地图分4个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。- 中国地区生成地图的最小颗粒度是中国大陆和台湾,没有办法按大陆地区的省或按自定义区域进行生成。
- 前三个步骤,只能按整个中国的范围来处理,第4步可以通过控制生成范围、生成层级来实现生成自定义区域的地图。
- 前三个步骤只需要执行一次,最后一个步骤可以多次执行。
- 如果想把多次生成的矢量瓦片放在一个文件中,可以设置不清除上次生成的结果。
原文地址:http://gisarmory.xyz/blog/index.html?blog=OSMOpenmaptiles
关注《GIS兵器库》公众号, 第一时间获得更多高质量GIS文章。

本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名《GIS兵器库》(包含链接: http://gisarmory.xyz/blog/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
边栏推荐
- M_8:设计消息队列存储消息数据的 MySQL 表格
- DETR(Detection with Transformers) 学习笔记
- Shardingsphere-proxy-5.0.0 deployment table implementation (I)
- Pytorch中的梯度累加【在实验时,由于GPU显存限制,遇到batch_size不能再增大的情况。为解决该问题,使用梯度累加方法】
- Zhengzhou University of light industry -- development and sharing of harmonyos pet health system
- 2022 questions d'examen pour le personnel de gestion de la sécurité de l'unit é de gestion des produits chimiques dangereux et examen de simulation en ligne
- MySQL row to column, column to row, multiple columns to one row, one row to multiple columns
- InfoQ geek media's 15th anniversary solicitation | brief introduction to the four challenges of building a micro service architecture
- 2022年R2移动式压力容器充装考试题及在线模拟考试
- Software development tools [3] theoretical basis of software development tools
猜你喜欢

CV—BaseLine总结(从AlexNet到SENet的发展历程)

Teach you how to grab ZigBee packets through cc2531 and parse encrypted ZigBee packets

Theory + practice will help you master the dynamic programming method
![LeetCode 890 查找和替换模式[map] HERODING的LeetCode之路](/img/a2/186439a6d50339ca7f299a46633345.png)
LeetCode 890 查找和替换模式[map] HERODING的LeetCode之路

Develop a web office suite from scratch (5): mouse hover over text

Examination questions and online simulation examination for safety management personnel of hazardous chemical business units in 2022

36 krypton's debut | "osogena" won nearly ten million angel rounds of financing. The original DLR scientists of German Aerospace Research and development system modeling and simulation CAE software PA

dict和set的基本操作

2202 - production de CV

AWS lambda: how to store secrets to external APIs- AWS Lambda: How to store secret to external API?
随机推荐
PyTorch常用参数初始化方法:【均匀分布、正态(高斯)分布、Xavier、kaiming、正交矩阵、稀疏矩阵、常数、单位矩阵、零填充】
[leetcode] understanding and usage of map[key]+
自动获取结构体内部成员变量的位置偏移
Operation of simulation test platform for G3 boiler water treatment test questions in 2022
Software development tools [3] theoretical basis of software development tools
OpenCV源代码编译
Preparing for the Blue Bridge Cup Day11__ Basic operation of serial port communication
妙才周刊 - 5
lua 循环语句
Lua date time
Zhengzhou University of light industry -- development and sharing of harmonyos pet health system
Find out the data that can match the keyword key in field 1 or field 2 in the database table. If you want to display the matching data in field 1 first
深度学习-神经网络:卷积的实现方法【直接法(精度没损失)、GEMM(矩阵乘法,精度没损失)、FFT(傅里叶变换,精度有损失)、Winograd(精度有损失)】
Chapter 8 - shared model JUC
华为云会议初体验【华为云至简致远】
Leetcode 2164. Sort odd and even subscripts separately (yes, once)
Novice must see! How rust beginners write gear smart contracts (1)
NCF 的Dapr应用实例的运行
2022年危險化學品經營單比特安全管理人員考試試題及在線模擬考試
CST learning: four element array design of circular patch antenna (III) array formation and parallel excitation