OpenStreetMap 简称 OSM https://www.openstreetmap.org/about ,是一个开源的地图数据社区,全球贡献者向该项目贡献地图数据。中国的地图信息受《中华人民共和国测绘法》管制,不能随意记录地图信息。
OpenStreetMap 数据采集
OpenStreetMap 数据编辑
- 安装OSM编辑工具 JOSM https://josm.openstreetmap.de/
- 选择区域并下载
- 编辑内容(此时编辑的是 OSM 格式文件)
上传时是 GPX文件,下载时已经变成 OSM 文件,转换格式以便于OpenStreetMap服务使用。
osm 文件格式:
https://wiki.openstreetmap.org/wiki/Zh-hans:Beginners_Guide_1.3 由三种元素组成
- 节点 node
- 路线 ways
- 闭合路线 closed ways
OpenStreetMap 数据使用
地图数据内容动辄几十G,官方不提供整体数据下载,但是有推荐的第三方数据下载服务。
因为 osm 格式是 xml 格式的子集,格式非常冗余。因此 OpenStreetMap 社区常用 pbf(Protocolbuffer Binary Format) 格式来代替 osm ,完全相同的信息量,更快、更小。OpenStreetMap使用工具 Osmosis 将原始 .osm 文件转换成 .osm.pbf 文件。
本地可以通过给JOSM 安装 pbf 插件( 安装方法 )来查看、编辑 .osm.pbf 文件。
我们使用地图数据时一般需要的是某一个地区的数据,推荐从 https://download.geofabrik.de/ 网站下载,下载的数据格式就是 .osm.pbf 文件。
建立地图数据服务
OpenStreetMap 生态总览展示了一个开源地图服务的核心内容。其中绿色+黄色部分就是地图后端服务。
其中的的不同组件来不同的贡献组织或不同的社区。基于这套开源结构,替换上自己的组件即可自定义自己的地图服务,基于 OSM 的知名开源项目有 MapBox,MapTiler。