文章目录

  • 1、缘起
  • 2、准备环境
    • 2.1、安装linux系统
    • 2.2、安装docker
    • 2.3、安装Docker Compose
    • 2.4、安装git
  • 3、发布地图
    • 3.1、拉取代码
    • 3.2、测试网络
    • 3.3、处理数据
    • 3.4、发布矢量瓦片服务
    • 3.5、自定义地图样式
    • 3.6、注意
  • 4、总结

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
    
    1. 测试是否安装正确
    docker-compose --version
    

2.4、安装git

  1. 安装教程参考:https://www.jianshu.com/p/e6ecd86397fb

  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

关注《GIS兵器库》公众号, 第一时间获得更多高质量GIS文章。

本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名《GIS兵器库》(包含链接:  http://gisarmory.xyz/blog/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

如何实现OSM地图本地发布并自定义配图相关推荐

  1. OSM地图本地发布(三)-----自定义图层提取

    一.准备工作 1.完成数据准备OSM本地发布(二)-----数据准备 2.推荐使用Navicat操作数据库 3.下文是在<在GeoServer中为OpenStreetMap数据设置OSM样式&g ...

  2. OSM地图本地发布(一)-----概述

    目录 一.前言 二.开源GIS介绍 1.前端GIS框架 2.后端技术 3.空间数据库 4.地图服务器 4.GIS软件 三.技术选型 四.文章目录 1.OSM本地发布(一)-----概述 2.OSM本地 ...

  3. OSM地图本地发布(四)-----Geoserver发布自定义地图

    一.准备工作 1. 安装jdk 1.8.tomcat 2.安装Geoserver,下载地址:https://sourceforge.net/projects/geoserver/files/GeoSe ...

  4. OSM地图本地发布(五)-----Geoserver发布海洋图层

    一.准备工作 1.下载OSM海洋数据,下载地址:Water polygons,OSM地图默认坐标系是EPSG:3857,即为墨卡托投影(Mercator)数据是shp格式,下方有两种海洋数据,Larg ...

  5. OSM地图本地发布(二)-----数据准备

    一.准备工作 1.安装PostgreSQL+PostGIS,版本不限(推荐最新版本)安装教程:Windows上安装.Linux上安装. 2.osm2pgsql工具,下载地址. 3.安装QGIS,方便查 ...

  6. 如何用高德地图定位生成二维码_OSM地图本地发布如何生成各省市矢量地图

    1.缘起 2.问题 3.分析 4.生成自定义地区矢量瓦片 4.1.启动docker 4.2.启动postGIS容器 4.3.设置不清理上次的结果 4.4.删除默认切图范围 4.5.修改切图层级和范围 ...

  7. arcgis前端(2)----->基础篇--发布一个自定义地图及加载自定义地图/底图

    arcgis前端(2)----->基础篇–发布一个自定义地图及加载自定义地图/底图 文章目录 arcgis前端(2)----->基础篇--发布一个自定义地图及加载自定义地图/底图 前言 & ...

  8. 【职业发展记录-05】地图服务发布-几种方式

    关键词:arcgis server,arcgis portal ,服务发布 目前工作中接触到的有这么几类地图服务: 1.遥感影像发布为切片服务,这是最常规的一种地图服务发布方式: 2.移动端使用的tp ...

  9. 高德地图API 添加标点 自定义标点

    高德地图API 添加标点 自定义标点 在我们创建完地图实例后,就可以在地图中添加遮盖物,覆盖物有多种类型,今天只说点标记 首先构造一个点标记 添加默认样式点标记 // 构造点标记 var marker ...

最新文章

  1. 来自95后的天池中间件大赛总结
  2. 生鲜配送小程序源码_生鲜配送小程序开发
  3. java keytool 代码_JDK keytool证书工具功能代码解析_java_脚本之家
  4. Java Enterprise软件与应有的内容
  5. HTML5怎样设置站点,我是怎样让网站用上HTML5 Manifest
  6. 113. 路径总和 II golang
  7. For web.config setting,reference the book of
  8. 苹果公布了一些最新无人车进展,但,研发依然缓慢
  9. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
  10. ubuntu12.04.4安装搜狗输入法
  11. git 设置忽略文件类型 gitignore
  12. 通过Python将不同的附件发给不同的收件人
  13. usb转rs485测试软件,usb转rs485
  14. 开启“无线网络”,提示:请启动windows零配置wzc服务
  15. 生产排程系统_ASPROVA:工序排程软件的全球隐形冠军
  16. 极限的性质(汤家凤B站的学习笔记)
  17. 真人语音朗读软件_讯飞语音云助力移动“和阅读”,打造个性化听书应用
  18. Ubuntu 升级错误信息:mount: mounting none on /dev failed: no such device的解决办法
  19. 中国博士生数量增长太快将会导致博士就业难
  20. Django Web 开发极简实战

热门文章

  1. 在php中冒泡排序,php中实现快排与冒泡排序
  2. ESP32 VHCI实现BLE广播,就是这么神奇
  3. 计算机在线系统实时系统,实时系统
  4. docker部署 AMQ
  5. MATLAB/SimulinkSTM32CubeMXKeil工具链完成基于模型的设计开发(一)
  6. IT工作者做什么副业靠谱
  7. 飞秋2010 开发团队建设与管理的一些心得
  8. 2022年10月全国路网数据(新增563205条道路)
  9. 《理解专业程序员》读书笔记
  10. 在这个浮躁的年代,多读点书吧