关于gis:如何实现OSM地图本地发布并自定义配图

127次阅读

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

1、缘起

  1. OpenStreetMap(简称 OSM)不仅能够收费在线应用,还能够收费下载原始数据,数据格式有 .osm.pbfshp
  2. 咱们将 OSM 原始数据下载下来,解决成矢量瓦片,公布成服务,就能够实现 OSM 地图的本地公布和自定义配图。
  3. OSM 对数据的组织形式,是按点、线、面来的,不是咱们常见的按路线、建筑物、河流来分图层的办法,但能够依据属性进行提取。
  4. openmaptiles 提供了一套 OSM 数据应用的残缺解决方案,能够实现 OSM 数据的下载、入库、剖析、生成矢量瓦片、调整地图款式、地图预览的全套性能,并且开源。
  5. 接下来咱们就来具体介绍 openmaptiles 开源库如何装置和疾速入门。

2、筹备环境

  1. 装置 linux 零碎(openmaptiles开源库只能在 linux 零碎上运行)
  2. 装置 docker
  3. 装置 Docker Compose
  4. 装置 git

2.1、装置 linux 零碎

  1. 我是在虚构机上安装的,虚拟机和 linux 零碎的装置教程参考:https://blog.csdn.net/null_of_error/article/details/108133241
  2. 虚拟机版本我用的 VM14,百度网盘下载地址:https://pan.baidu.com/s/1BTjByB6oTz8cTxOv_GzGWw,提取码:kshr,含许可。
  3. linux 零碎我应用的是 centOS7.9,阿里云官网镜像下载地址:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Everything-2009.iso

2.2、装置 docker

  1. 装置教程参考:https://www.runoob.com/docker/centos-docker-install.html
  2. 我用的是手动装置形式,装置步骤:

    1. 装置 docker

      yum install -y yum-utils device-mapper-persistent-data lvm2
    2. 设置国内阿里云的镜像源,会比官网的快

      yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3. 装置 Docker Engine-Community

      yum install docker-ce docker-ce-cli containerd.io
    4. 启动 docker

      systemctl start docker
    5. 测试是否装置正确

      docker run hello-world

2.3、装置 Docker Compose

  1. 装置教程参考:https://www.runoob.com/docker/docker-compose.html
  2. 装置步骤:

    1. 装置 docker compose

      curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    2. 设置权限

      chmod +x /usr/local/bin/docker-compose
    3. 测试是否装置正确

      docker-compose --version

2.4、装置 git

  1. 装置教程参考:https://www.jianshu.com/p/e6e…
  2. 装置步骤:

    1. 装置

      yum install git
    2. 测试是否装置正确

      git --version

3、公布地图

openmaptiles 开源库

  1. github 地址:https://github.com/openmaptiles/openmaptiles
  2. 疾速入门文档:https://github.com/openmaptiles/openmaptiles/blob/master/QUICKSTART.md

3.1、拉取代码

  1. 拉取 openmaptiles 代码

    git clone https://github.com/openmaptiles/openmaptiles.git
  2. 拉取实现后,进入目录

    cd openmaptiles
  3. 执行 make 命令

    make 

3.2、测试网络

  1. 先测试一下你电脑能不能关上这个网址:https://www.wikidata.org/,openmaptiles 须要从这个网址下载 poi 数据,如果不能拜访,就按上面的步骤设置,让程序跳过这一步。后续想要 poi 的数据的,能够自行通过迷信上午解决。
  2. 如何跳过下载 poi 数据:

    1. 应用 vi 关上 quickstart.sh 文件,vi 应用办法参考:https://zhuanlan.zhihu.com/p/37704677

      vi quickstart.sh
    2. 找到 make import-wikidata 行
    3. 输出 i 进入插入模式
    4. 在 make import-wikidata 命令前输出 #号,而后按 esc
    5. 输出:wq 保留退出

3.3、解决数据

执行上面的疾速启动命令,程序会主动进行 OSM 数据的下载、入库、剖析、生成矢量瓦片的工作。默认是阿尔巴尼亚地区,生成瓦片的层级是 0 - 7 级。前面会讲如何设置地区和层级。这个命令执行工夫会略微有些长,需急躁期待。

./quickstart.sh 

3.4、公布矢量瓦片服务

数据处理实现后,把生成的矢量瓦片公布成地图服务,步骤:

  1. 启动服务

    make start-tileserver
  2. 在本人电脑浏览器中输出虚拟机 ip 地址加端口 8080,我电脑的地址是

    http://192.168.50.8:8080/
  3. 点击 view 按钮,查看成果

3.5、自定义地图款式

  1. 启动 maputnik

    make start-maputnik
  2. 在本人电脑浏览器中输出虚拟机 ip 地址加端口 8088,我电脑的地址是

    http://192.168.50.8:8088/

  3. 在方才启动的 TileServer-GL 网页中,点击下图中的 TileJSON 链接,而后拷贝地址

  4. 回到 maputnik 网页,点击下图蓝框中的按钮 Data Sources,把下面的地址粘贴到绿框中,再点击红框中的删除按钮,敞开其它地图。敞开弹出框,就能看到咱们公布的地图了。

  5. 接下来就能够自在奔放的自定义地图款式了

3.6、留神

  1. 中国地区的地图这样写,查看所有反对的地区

    ./quickstart.sh china 
  2. 倡议第一次还是先应用默认的阿尔巴尼亚地区看看成果,相熟一下流程,因为它的数据小,解决的快。中国地区会很久,也没有个进度条,第一次测试就用这么大的,极容易失去急躁。
  3. 决定数据处理工夫的因素:电脑网速、电脑性能、解决数据的大小、生成瓦片的层级。
  4. 我电脑的虚拟机配置比拟低,解决阿尔巴尼亚地区,0- 7 级数据,大略用了 10 分钟左右,解决台湾地区数据,等了 1 个小时都没有实现,最初放弃了,等换个好电脑再试。
  5. 想要全国地图的须要留神,中国地区和台湾地区的数据是离开的,须要别离进行下载和解决。
  6. 切图等级在 .env 文件中配置

4、总结

  1. 本文具体介绍 openmaptiles 开源库的装置和疾速入门应用
  2. 输出上面的帮忙命令,能够查看 openmaptiles 反对的更多功能,咱们后续再写文章具体介绍

    make help


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

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

正文完
 0