openmaptiles
提供了一套OSM数据使用的完整解决方案,在前面文章如何实现OSM地图本地发布并自定义配图中,我们详细介绍了如何安装openmaptiles
,并生成了一个阿尔巴尼亚地区的“helloworld”。
参照上篇文章的内容,输入下面的命令,就可以生成中国地图。
./quickstart.sh china
上面命令,需要耐心等待,我电脑4核8G,用了16个小时左右。最终得到了中国大陆地区,0-7级的矢量瓦片数据。
openmaptiles
主要是从geofabrik网站下载OSM数据,geofabrik在中国地区下载的最小颗粒度是中国大陆和台湾,没有办法按大陆地区的省,或按自定义区域进行下载。
openmaptiles
生成地图分4个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。./quickstart.sh china
命令包含1-4步,后续就不要再执行这个命令了,不然又得重来16个小时。前面已经提到过,这个命令在第4步,默认会切整个中国范围0-7级的地图。想要更大层级的地图,只需要另外单独执行第4步就可以。openmaptiles
生成的矢量瓦片,最大到14级,设置再大也没有用,因为前三步没有对更大级别的数据进行分析。生成矢量瓦片
的命令,会把上一次的瓦片清除,如果想把两次的结果放在一个文件中,比如想把中国0-7级和北京8-14级的矢量瓦片放在一个.mbtiles文件中,则需要修改配置,让程序不清除上一次的结果。检查docker是否启动
docker run hello-world
如果没有启动,输入下面命令启动docker。如果有需要,后续可以自己把docker设置为开机自启动。
systemctl start docker
前面的./quickstart.sh china
命令在执行过程中,下载了4个docker镜像,启动了若干个容器,工具类容器在使用完成后就销毁了,数据类和应用类的容器会保留。(镜像和容器的关系)
下图红框中的容器就是存放数据的,它里面有个postGIS,我们需要启动这个容器。
进入openmaptiles
文件夹
启动postGIS容器
make start-db-preloaded
Makefile
文件,找到generate-tiles命令,下图红框的位置,就是清除上次结果文件的命令,我们在这行前面输入#
号,把它注释掉。程序默认会用china.bbox中的参数作为切图范围,我们把这个文件删掉,后续在.env文件中配置。
china.bbox文件在data
文件夹中,删除命令:
rm -f ./data/china.bbox
MIN_ZOOM
和MAX_ZOOM
BBOX
,格式为:minX,minY,maxX,maxY输入下面命令,生成瓦片
make generate-tiles
生成的结果是tiles.mbtiles
文件,在data
文件夹中
openmaptiles
生成地图分4个步骤:1、数据下载、2、数据入库、3、数据分析、4、生成矢量瓦片。原文地址:http://gisarmory.xyz/blog/index.html?blog=OSMOpenmaptiles
关注《GIS兵器库》公众号, 第一时间获得更多高质量GIS文章。
本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名《GIS兵器库》(包含链接: http://gisarmory.xyz/blog/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
原文:https://www.cnblogs.com/gisarmory/p/14177871.html