4564564561 发表于 2022-11-18 19:55:40

Openstreetmap—让你不再为找不到交通地图而烦恼

在我们研究交通现象时,往往离不开路网数据。以往获取路网拓扑结构数据多是购买gis地图。现如今常用的电子地图为国内的百度/高德地图API,以及国外的谷歌地图。然而,这些电子地图的API开放权限不仅很小而且访问频次受到限制。

本文推荐一款开源地图—openstreetmap,简称为OSM。其包含图层主要有高速公路、铁路、水系、水域、建筑、边界、建筑物等图层。我们不仅能够免费下载城市数据还可以下载全球数据。网址为https://www.openstreetmap.org/

OSM提供四种主题地图,分别对应着标准地图、自行车地图、交通地图和Humanitarian地图,根据自己的需求选择对应的主题地图。

在网站的首页上有编辑、历史和导出3个按钮,下载数据时,我们则使用导出,这里我们以获取北京市的gis数据为例,进行演示。

OSM主要提供Simple、Overpass API、OSM星球和Geofabrik下载等四种下载方式。

Simple   ——      直接导出框中数据

Overpass API   ——提供按照bbox方法的数据下载

OSM星球   ——   提供整个OSM数据下载,但是下载的数据量较大

Geofabrik下载——提供各大洲、国家和特定城市数据

                  



                           

Way1:Simple

网站左侧提供矩阵框方法作为最简单的下载方法,进行框选区域的数据下载,此时下载的数据结构是XML格式,而不是矢量数据。该方法不支持非规则区域和过大区域的数据导出。



Way2:Overpass API

使用Overpass API方法下载数据,数据的选择方式同way1,下载时点击Overpass API下载。该方法是way1的补充,可以进行更大区域的数据获取



Way3:OSM星球

下载全球数据,数据量达到几十G,通常情况用不到全球数据,不推荐使用。



Way4:Geofabrik

首页点击Geofabrik下载,跳转后出现的是洲级别的数据集,而且大部分数据集不提供shp格式,在sub region中选择研究区域对应的大洲本文以亚洲为例演示。



跳转至该大洲内包含的国家级的数据集,选择对应的国家,点击进入。

注意事项:当研究区域涉及到国家边界和领土问题时,OSM数据存在争议的,一定不要使用OSM数据。



在中国中选择shp格式的china-latest-free.shp.zip直接下载,下载的数据的坐标系为WGS84。



Way5:其他方法

实际科研中,我们往往需要获取某个市或某个区的路网数据,但其形状多为不规则。采用以上方法获取的数据全面,而且繁杂。下面将提供一种通过查询的方法来获取路网数据。

Query 法

主要分为两个步骤:1.获取城市对应的ID,2.根据城市ID获取路网数据。下面将以获取成都市的路网数据为例进行演示。

1.   首先获取城市ID

http://www.overpass-api.de/index.html 中,选择Query and Convert Forms

在Overpass API Query Form下方的输入框中输入代码:

<osm-script>
<query type="relation">
    <has-kv k="boundary" v="administrative"/>
    <has-kv k="name:zh" v="成都市"/>
</query>
<print/></osm-script>

其中name:zh 代表中文地址。根据需要调整为对应的城市

点击右侧的Query按钮,即可将结果从浏览器下载到本地,文件名为interprept, 用记事本打开该文件,找到<relation id="2110264">, 即可拿到成都市的ID为2110264



2.   其次根据城市ID获取城市路网数据

上面的输入框中的代码替换为如下:

<osm-script timeout="1800" element-limit="100000000">
<union>
    <area-query ref="3602110264"/>
    <recurse type="node-relation" into="rels"/>
    <recurse type="node-way"/>
    <recurse type="way-relation"/>
</union>
<union>
    <item/>
    <recurse type="way-node"/>
</union>
<print mode="body"/>
</osm-script>

其中<area-query ref="3602110264"/>中3602110264是上一步骤中拿到的ID加上360000000后得到的数字。- 点击右侧的Query按钮,即可将结果从浏览器下载到本地,文件名为interprept,打开后即可得到路网数据。

参考文献:

GIS大师兄:干货|OSM(openstreetmap)矢量数据下载方法(水系,铁路,道路,建筑物)

http://www.mapboxx.cn/article/osm-way/

当我们获得到OSM数据时,又该怎么优雅的从数据集中获取我们需要使用的数据呢?

使用ArcGIS Editor for OpenStreetMap 插件转换数据。OSM提供ArcGIS的插件进行数据的读取和转换功能。

插件下载地址:http://www.esri.com/software/arcgis/extensions/openstreetmap

ArcGIS

步骤

ArcGIS Editor for OpenStreetMap 安装

解压下载后的安装包,以ArcGIS_Editor_OSM-10_6作为演示案例

安装插件

点击ArcGIS Editor for OpenStreetMap 10.6 (64-bit)文件夹下的setup.exe进行安装



一直点击next,接受协议并选择安装路径,直到安装完成为止。



安装完成后打开ArcMap,点击工具箱(ArcToolbox)按钮,出现OpenStreetMap Toolbox即安装成功。

如果安装完成后,打开ArcMap中的ArcToolbox发现并没有OpenStreetMap Toolbox。



首先查看ArcGIS安装目录下的ArcToolbox文件夹下的Toolboxes文件夹中有没有OpenStreetMap Toolbox.tbx文件,若不存在则说明安装不成功;若存在则进行下一步。

打开ArcCatalog,在Catalog Tree-Toolboxes-System Toolboxes中可以找到OpenStreetMap Toolbox.tbx

返回ArcMap,右键ArcToolbox-Add Toolbox...-Toolboxes-System Toolboxes,找到OpenStreetMap Toolbox.tbx,点击Open就可以发现工具出现在了ArcToolbox中。





osm转换为shp

打开ArcMap>>目录>>工具箱>>OpenStreetMap Toolbox >>Load OSM File,要注意,上面OSM文件的路径一定要在arcgis的连接文件夹下面,下面的dataset一定要是一个空白的文件地理数据库,输入的名称没有后缀。



生成shp文件



参考文献:https://blog.csdn.net/qq_17451827/article/details/56489370

https://blog.csdn.net/qq_21126203/article/details/78734244

https://blog.csdn.net/X_Cosmic/article/details/81218197

编辑:庄桢



“交通科研Lab”:分享学习点滴,期待科研交流!

如果觉得还不错

点点文末小广告和在看给我们一点鼓励(✿◡‿◡)
页: [1]
查看完整版本: Openstreetmap—让你不再为找不到交通地图而烦恼