(一)OSM路网相关介绍

该文章已生成可运行项目,

一、OSM格式文件

OSM虽然是OpenStreetMap的简称,但如果赋予数据的话,它就是一种格式,该格式以.osm结尾 Osm格式的数据是具有拓扑关系的,不同于传统的几何对象,它包含了各个成员之间的引用,而共点是最能阐述这一特性的。

其中包括四类核心要素:node(节点)way(通道)relation(关系)tag(标签)

接下来我们一个一个介绍这四种核心要素:

1.node:

定义:地理位置点,以经纬度坐标形式存储,横坐标:维度,纵坐标:经度,主要表达没有尺寸的要素,比如POI(兴趣点)或山峰的制高点;

以从官网下载的某一片区域为例,得到的.osm文件中,node部分包含上述要素:

node id——节点的ID; visible——节点是否可见; version——节点版本; changeset——节点变更集;timestamp——时间戳; user——使用者; uid——使用者ID; lat——节点经度;lon——节点纬度;

2.way

定义:由N个Node组成,可以是多义线,当形成闭合路径时也可以是面;既可以代表线性要素,如街道、河流等,也可以代表面状要素,如森林、公园、停车场、湖泊等;

way部分由多个node组成,因此way部分还包含了多个node id(nd),并且组成的way具有其相应的tag,用于表示这个way到底表示什么。

3.relation

定义:Relation用来表示已存在的节点和通道的相互关系,引用的成员包含Node、Way、甚至是一个Relation,比如道路的转弯限制,高速公路跨越多条普通道路(并不相交),以及中间有洞的环形面等;

relation部分包含的成员member可以是Node、Way、甚至是一个Relation。该选中区域只包含了way,分别扮演着外层(outer)和内层(inner)的角色。

4.tag

定义:Element的属性标签,单纯的Node、Way或者Relation没有任何意义,只存在几何形态geometry,只有通过tag标签的k-v键值对的值,我们才知道Node代表什么,Way表示的是一个体育场还是一个耕地,或者Relation是一个地铁站还是一个片区。

tag部分通过k-v键值来表达该部分的含义,比如当k指向“name”的时候,表达的是该部分的名称是什么,比如图中名称为“中大”;当k指向“type”的时候,表达的是该部分的类型是什么,比如图中说明类型是“public_transport”。

二、数据获取

1.:OpenStreetMap官网:可以导出当前地图浏览范围涉及的数据,导出格式为OSM。(最为简单便捷,但需要爬墙)

具体步骤: 1.进入官网,搜索想选择的区域 2.点击手动选择区域(或根据经纬度划分区域) 3.点击导出,对.osm格式文件进行命名

2.Geogfabrik:定期更新的洲、 国家和特定城市数据库,格式包括OSM、PBF(压缩过的OSM)、Shape文件等(https://download.geofabrik.de/)。

可以根据需要选择不同国家的数据库,下载不同格式的文件(如下图所示)。(但下载到的至少是以国家范围为基本的数据,一般不常使用,不作推荐)

3.ArcGIS OSM编辑器:Arcmap的免费开源扩展插件,单次下载的地图范围有限,可通过切块下载解决,同时提供了一些编辑、分析工具。

进入ArcGIS Editor for OpenStreetMap的GitHub主页:https://github.com/Esri/arcgis-osm-editor,并依据自己的ArcMap软件版本进入不同的下载页面。

安装完成后进入ArcGis软件可以在界面中看到已存在OSM插件。

4.QGIS:安装QGIS后在插件里搜索OSMDownloder安装,可以得到OSM插件。

三、数据处理

1.多余道路删除:由于OSM中只要某条道路的其中一部分存在于选择的区域内,OSM就会导出该条道路包含的全部节点。可以利用python语言处理,通过选择边界的经纬度,将超出边界部分的节点删除,从而得到区域内的路网。

该转换过程的源代码,详情见这位博主的csdn博客(超详细):Python处理OpenStreetMap(OSM)数据_python openstreetmap-优快云博客

2.坐标转换:OSM数据采用地理坐标系,测量距离或与其他数据共同使用时,可能需要投影和转换坐标系。并且由于国内轨迹/真实路网数据使用的经纬度坐标系通常为 GCJ-02火星坐标系,从OSM上获取到的路网数据通常存在较大的偏差,因此很多时候也需要重新进行坐标转换。

本文章已经生成可运行项目
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值