如何实现OSM地图本地发布并自定义配图
文章目录
- 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、缘起
- OpenStreetMap(简称OSM)不仅可以免费在线使用,还可以免费下载原始数据,数据格式有
.osm.pbf
和shp
。 - 我们将OSM原始数据下载下来,处理成矢量瓦片,发布成服务,就可以实现OSM地图的本地发布和自定义配图。
- OSM对数据的组织方式,是按点、线、面来的,不是我们常见的按道路、建筑物、河流来分图层的方法,但可以根据属性进行提取。
- openmaptiles提供了一套OSM数据使用的完整解决方案,可以实现OSM数据的下载、入库、分析、生成矢量瓦片、调整地图样式、地图预览的全套功能,并且开源。
- 接下来我们就来详细介绍
openmaptiles
开源库如何安装和快速入门。
2、准备环境
- 安装linux系统(
openmaptiles
开源库只能在linux系统上运行) - 安装docker
- 安装Docker Compose
- 安装git
2.1、安装linux系统
- 我是在虚拟机上安装的,虚拟机和linux系统的安装教程参考:https://blog.csdn.net/null_of_error/article/details/108133241
- 虚拟机版本我用的VM14,百度网盘下载地址:https://pan.baidu.com/s/1BTjByB6oTz8cTxOv_GzGWw,提取码:kshr,含许可。
- linux系统我使用的是centOS7.9,阿里云官方镜像下载地址:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Everything-2009.iso
2.2、安装docker
安装教程参考:https://www.runoob.com/docker/centos-docker-install.html
我用的是手动安装方式,安装步骤:
安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
设置国内阿里云的镜像源,会比官方的快
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
测试是否安装正确
docker run hello-world
2.3、安装Docker Compose
安装教程参考:https://www.runoob.com/docker/docker-compose.html
安装步骤:
安装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
设置权限
chmod +x /usr/local/bin/docker-compose
- 测试是否安装正确
docker-compose --version
2.4、安装git
安装教程参考:https://www.jianshu.com/p/e6ecd86397fb
安装步骤:
安装
yum install git
测试是否安装正确
git --version
3、发布地图
openmaptiles开源库
- github地址:https://github.com/openmaptiles/openmaptiles
- 快速入门文档:https://github.com/openmaptiles/openmaptiles/blob/master/QUICKSTART.md
3.1、拉取代码
拉取openmaptiles代码
git clone https://github.com/openmaptiles/openmaptiles.git
拉取完成后,进入目录
cd openmaptiles
执行make命令
make
3.2、测试网络
先测试一下你电脑能不能打开这个网址:https://www.wikidata.org/,openmaptiles需要从这个网址下载poi数据,如果不能访问,就按下面的步骤设置,让程序跳过这一步。后续想要poi的数据的,可以自行翻墙解决。
如何跳过下载poi数据:
使用vi打开quickstart.sh文件,vi使用方法参考:https://zhuanlan.zhihu.com/p/37704677
vi quickstart.sh
找到 make import-wikidata 行
输入
i
进入插入模式在 make import-wikidata 命令前输入#号,然后按
esc
键输入
:wq
保存退出
3.3、处理数据
执行下面的快速启动命令,程序会自动进行OSM数据的下载、入库、分析、生成矢量瓦片的工作。默认是阿尔巴尼亚地区,生成瓦片的层级是0-7级。后面会讲如何设置地区和层级。这个命令执行时间会稍微有些长,需耐心等待。
./quickstart.sh
3.4、发布矢量瓦片服务
数据处理完成后,把生成的矢量瓦片发布成地图服务,步骤:
启动服务
make start-tileserver
在自己电脑浏览器中输入虚拟机ip地址加端口8080,我电脑的地址是
http://192.168.50.8:8080/
点击 view 按钮,查看效果
3.5、自定义地图样式
启动maputnik
make start-maputnik
在自己电脑浏览器中输入虚拟机ip地址加端口8088,我电脑的地址是
http://192.168.50.8:8088/
在刚才启动的TileServer-GL 网页中,点击下图中的TileJSON链接,然后拷贝地址
回到maputnik网页,点击下图蓝框中的按钮Data Sources,把上面的地址粘贴到绿框中,再点击红框中的删除按钮,关闭其它地图。关闭弹出框,就能看到我们发布的地图了。
接下来就可以自由奔放的自定义地图样式了
3.6、注意
中国地区的地图这样写,查看所有支持的地区
./quickstart.sh china
建议第一次还是先使用默认的阿尔巴尼亚地区看看效果,熟悉一下流程,因为它的数据小,处理的快。中国地区会很久,也没有个进度条,第一次测试就用这么大的,极容易失去耐心。
决定数据处理时间的因素:电脑网速、电脑性能、处理数据的大小、生成瓦片的层级。
我电脑的虚拟机配置比较低,处理阿尔巴尼亚地区,0-7级数据,大概用了10分钟左右,处理台湾地区数据,等了1个小时都没有完成,最后放弃了,等换个好电脑再试。
想要全国地图的需要注意,中国地区和台湾地区的数据是分开的,需要分别进行下载和处理。
切图等级在
.env
文件中配置
4、总结
本文详细介绍
openmaptiles
开源库的安装和快速入门使用输入下面的帮助命令,可以查看
openmaptiles
支持的更多功能,我们后续再写文章详细介绍make help
原文地址:http://gisarmory.xyz/blog/index.html?blog=OSMVectorTiles
关注《GIS兵器库》公众号, 第一时间获得更多高质量GIS文章。
本文章采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名《GIS兵器库》(包含链接: http://gisarmory.xyz/blog/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
如何实现OSM地图本地发布并自定义配图相关推荐
- OSM地图本地发布(三)-----自定义图层提取
一.准备工作 1.完成数据准备OSM本地发布(二)-----数据准备 2.推荐使用Navicat操作数据库 3.下文是在<在GeoServer中为OpenStreetMap数据设置OSM样式&g ...
- OSM地图本地发布(一)-----概述
目录 一.前言 二.开源GIS介绍 1.前端GIS框架 2.后端技术 3.空间数据库 4.地图服务器 4.GIS软件 三.技术选型 四.文章目录 1.OSM本地发布(一)-----概述 2.OSM本地 ...
- OSM地图本地发布(四)-----Geoserver发布自定义地图
一.准备工作 1. 安装jdk 1.8.tomcat 2.安装Geoserver,下载地址:https://sourceforge.net/projects/geoserver/files/GeoSe ...
- OSM地图本地发布(五)-----Geoserver发布海洋图层
一.准备工作 1.下载OSM海洋数据,下载地址:Water polygons,OSM地图默认坐标系是EPSG:3857,即为墨卡托投影(Mercator)数据是shp格式,下方有两种海洋数据,Larg ...
- OSM地图本地发布(二)-----数据准备
一.准备工作 1.安装PostgreSQL+PostGIS,版本不限(推荐最新版本)安装教程:Windows上安装.Linux上安装. 2.osm2pgsql工具,下载地址. 3.安装QGIS,方便查 ...
- 如何用高德地图定位生成二维码_OSM地图本地发布如何生成各省市矢量地图
1.缘起 2.问题 3.分析 4.生成自定义地区矢量瓦片 4.1.启动docker 4.2.启动postGIS容器 4.3.设置不清理上次的结果 4.4.删除默认切图范围 4.5.修改切图层级和范围 ...
- arcgis前端(2)----->基础篇--发布一个自定义地图及加载自定义地图/底图
arcgis前端(2)----->基础篇–发布一个自定义地图及加载自定义地图/底图 文章目录 arcgis前端(2)----->基础篇--发布一个自定义地图及加载自定义地图/底图 前言 & ...
- 【职业发展记录-05】地图服务发布-几种方式
关键词:arcgis server,arcgis portal ,服务发布 目前工作中接触到的有这么几类地图服务: 1.遥感影像发布为切片服务,这是最常规的一种地图服务发布方式: 2.移动端使用的tp ...
- 高德地图API 添加标点 自定义标点
高德地图API 添加标点 自定义标点 在我们创建完地图实例后,就可以在地图中添加遮盖物,覆盖物有多种类型,今天只说点标记 首先构造一个点标记 添加默认样式点标记 // 构造点标记 var marker ...
最新文章
- 来自95后的天池中间件大赛总结
- 生鲜配送小程序源码_生鲜配送小程序开发
- java keytool 代码_JDK keytool证书工具功能代码解析_java_脚本之家
- Java Enterprise软件与应有的内容
- HTML5怎样设置站点,我是怎样让网站用上HTML5 Manifest
- 113. 路径总和 II golang
- For web.config setting,reference the book of
- 苹果公布了一些最新无人车进展,但,研发依然缓慢
- 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
- ubuntu12.04.4安装搜狗输入法
- git 设置忽略文件类型 gitignore
- 通过Python将不同的附件发给不同的收件人
- usb转rs485测试软件,usb转rs485
- 开启“无线网络”,提示:请启动windows零配置wzc服务
- 生产排程系统_ASPROVA:工序排程软件的全球隐形冠军
- 极限的性质(汤家凤B站的学习笔记)
- 真人语音朗读软件_讯飞语音云助力移动“和阅读”,打造个性化听书应用
- Ubuntu 升级错误信息:mount: mounting none on /dev failed: no such device的解决办法
- 中国博士生数量增长太快将会导致博士就业难
- Django Web 开发极简实战