OpenStreetMap开放街道地图(OSM)介绍
OpenStreetMap开放街道地图(OSM)介绍
概述
OpenStreetMap开放街道地图( OSM)
是一个开源社区维护的详细的地图数据
是自由网上地图构建协作计划
目标是创造一个内容自由且能让所有人编辑的世界地图,并且让一般的移动设备有方便的导航方案。
其OSM数据开源,可以自由下载使用,免费的全球地图数据库。
地理要素包括道路、建筑、河流、森林、山脉、公共设施等
地物的覆盖范围可能各不相同,包括地理位置、地名、地标、兴趣点、水文特征和土地利用/土地覆盖。
openstreetmap.org也会收录地图注记与GPS轨迹的资料,地图注记供不熟悉编辑的用户回报地图的错误或过时信息等问题,GPS轨迹则提供实地勘查者提供轨迹供地图绘制用。
地图图层则是依照其原始资料,由不同的读取引擎绘制成不同样式的地图影像,又称为图砖。
数据结构
- OSM数据以XML格式存储,包括空间数据、属性数据
- 空间数据包括:点(Nodes)、路(Ways)和关系(Relations),这三种原始构成了整个地图画面
- Nodes定义了空间中点的位置
- Ways定义了线或区域
- Relations(可选的)定义了元素间的关系
- 属性数据Tags用于描述矢量数据基元。
OSM使用的资料格式是地形数据结构,使用拓扑类型的数据结构,当中由四个核心的元素(也称为原始资料)。
节点-node:存储经纬度,表示位置,但不存储节点在地图上的实际大小,比如说一个景点或者山峰,或一间商店或餐厅,或是做为路径的一部分。节点可依附于路径与关系。
路径-way:有序排列的节点,以折线的形式呈现,也能循环回起始节点形成封闭路径,可以循环路径或以多边形区域的方式呈现。这类原始资料可用于呈为线性资料,例如街道、河流等,或一个多边形区域,例如农田、公园、停车场、建筑物、校园或者是湖泊、森林。路径必须有节点才能显示于地图上,可依附于关系,路径资料可计算出长度、或多边形的面积、周长。way可表示3种图形事物(非闭合线(Open polyline)、闭合线(Closed polyline)、区域(Area))。
关系-relation:有排序的节点、路径和关系(三类原始资料在这里统称“成员”),在这里每个成员选择性拥有一个"角色"(字符串),以决定该成员于此关系中的性质。关系是用来表示各个原始资料(节点、路径和关系)的关系,例如道路的转弯限制,由不同路径所组成的边界,一条国道、省道或铁路路线,或者一个区域中中间空缺区域(例如被环形建筑物包围的中庭,或水体中的小岛)的多重多边形,这时"角色"字符串就能用来形容它们之间的关系。
k=v标签-tag:键值对(key-value pairs,键值都是字符串),用来存储地图上对象的元数据(对象的类型,名字和物理特性),赋予OSM资料其意义,而能表示现实世界中存在的某件事物,与有关其事物的信息。标签无法独立存在,它们必须依附在一个已存在的对象,也就是节点,路径或关系。地图中对象映射的关系(本体)和标签在OSM的wiki上有比较详细的介绍,用法为键=值;key=value。一个原始资料称为一个对象,每个对象的同一个键,只能设置一个值。例如建筑物是building=yes,至于住宅区街道,则为highway=residential,这是OSM中最频繁被使用的标签。
- highway=residential来定义居住区道路
- maxspeed:winter=*就表示冬天的最高限速
.osm其实就是xml
<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="osmium/1.14.0">
<bounds minlat="38.45043" minlon="-75.78974" maxlat="40.03221" maxlon="-74.96121"/>
<node id="75390099" version="11" timestamp="2023-01-22T00:03:05Z" lat="39.7221284" lon="-75.7886029">
<tag k="description" v="Lat-Long (NAD27) N39°43'26.3" W75°47'19.9" UTM (NAD27) 18S 432415 4397212 UTM (WGS84) 18S 432391 4397420"/>
<tag k="man_made" v="survey_point"/>
<tag k="name" v="Tri-State Marker"/>
</node>
<way id="11749873" version="4" timestamp="2012-09-21T05:23:27Z">
<nd ref="105203702"/>
<nd ref="105203705"/>
<tag k="highway" v="track"/>
</way>
<relation id="117172" version="5" timestamp="2020-06-19T22:26:18Z">
<member type="way" ref="33502448" role="outer"/>
<member type="node" ref="157622606" role="admin_centre"/>
<tag k="name" v="Townsend"/>
<tag k="type" v="boundary"/>
<tag k="boundary" v="administrative"/>
<tag k="wikidata" v="Q755689"/>
<tag k="wikipedia" v="en:Townsend, Delaware"/>
<tag k="admin_level" v="8"/>
<tag k="border_type" v="town"/>
</relation>
</osm>
下载
- 全球下载地址:http://planet.openstreetmap.org/(每周更新)
- 区域下载地址:http://download.bbbike.org/osm/bbbike/
- 官网也可直接导出,导出格式:OSM、Shp等
- 下载网站示例:https://download.geofabrik.de/
导出
https://www.openstreetmap.org/
导出结果为osm文件
pbf合并
下载 osmium windows下:https://github.com/pango3001/Osmium_1_14
Linux 我是用 homebrew 安装的,yum源找不到
osmium merge file1 file2 --overwrite -o output_file
参考 https://geekdaxue.co/read/u27809381@xz9182/lkk642 交通可达性计算-Graphhopper地图算时间 https://pan.baidu.com/s/1OwNw4yS250DxR3768ogF1A?pwd=6666#list/path=%2F
