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]