OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法

目录

 

一、OSM简介

二、获取OSM数据方法

方法1:官网下载

方法2:通过ArcGIS Editor for OpenStreetMap插件下载

方法3:通过QGIS下载

三、获取OSM城市路网数据方法

方法2:从china-latest.shp.zip中裁剪出某城市的路网数据

第一步,从http://download.geofabrik.de/中下载china-latest.shp.zip

第二步,裁剪

方法2:用overpass工具下载某城市的路网

第一步,根据城市名获取对应ID

第二步,根据城市ID获取路网数据

附:OSM道路分类

四、OSM数据转为ESRI shp数据

方法1:网页版GeoConverter工具

方法2:通过ArcGIS Editor for OpenStreetMap插件

方法3:借助QGIS


  • 一、OSM简介

OpenStreetMap(OSM)号称地图界的维基百科。是在2004年7月由史蒂夫·克斯特始创。2006年4月,OpenStreetMap基金会成立,鼓励自由地理数据的增长,发展和分布,并向所有人提供地理数据以供使用及分享。

OSM官方介绍网页:

http://wiki.openstreetmap.org/wiki/Zh-ant:Map_Features#.E9.81.93.E8.B7.AF_.28highway.29

WikiProject China

OSM数据分类:

OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法_第1张图片

  • 二、获取OSM数据方法

获取OSM数据方法有许多,可以直接在OpenStreetMap官网下载,可以用QGIS软件下载,也可以下载ArcGIS Editor for OpenStreetMap插件进行下载。

ArcGIS10.2 ArcGIS Editor for OpenStreetMap插件下载链接(百度网盘):https://pan.baidu.com/s/1qXK7rB2?fid=771029154063284&errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid=

其他版本ArcGIS10.2.x下载链接:http://www.arcgis.com/home/item.html?id=16970017f81349548d0a9eead0ebba39

  • 方法1:官网下载

1.直接在地图上画矩形框下载框内的数据,网上有很多介绍,在此不赘述。

2.下载世界各地的OpenStreetMap地图矢量数据

打开OpenStreeetMap首页OpenStreetMap 。然后单击下图右上角的导出,可以看到有许多数据来源的网站,选择Geofabrik 下载就可以进入下载了。http://download.geofabrik.de/

 

 以中国为例,在表格内选择Asia,单击,然后在Sub Region内选择China,选择.shp.zip数据,单击直接下载,解压后,就可以在ArcGIS直接打开了。数据量很庞大,需要自己先整理。OSM数据定期更新。单击China按钮,可以查看数据的更新时间,也可以下载china-latest.shp.zip。

  • 方法2:通过ArcGIS Editor for OpenStreetMap插件下载

在ArcToolbox-OpenStreetMap Toolbox的工具,单击Download OSM data就可以下载地图数据,既可以以经纬度确定范围,只需在Top、Bottom、Left、Right输入经纬度即可,但是范围不能过大,否则无法下载,会提示【Extend of download】超过范围。也可以用原有的矢量图(shp文件)进行框定范围,进行下载,同样对范围有所限制,比如为了下载某市的数据,将该市地图切成几十块,分块下载。

  • 方法3:通过QGIS下载

在QGIS软件菜单栏选址Vector-再点击Openstreetmap-Download Data,打开OSM网站,选择范围,选择Manual填写范围下载。

 

  • 三、获取OSM城市路网数据方法

方法2:从china-latest.shp.zip中裁剪出某城市的路网数据

该方法的优点:①下载的直接是shp文件,无需从osm文件转为shp文件;②china-latest.shp.zip中有分好类的road数据

该方法的缺点:①china-latest.shp.zip文件过大 1G左右,下载可能较慢;②要有城市的边界shp或是研究区域的边界shp文件,方便裁剪

适用范围:已有研究区域边界的情况下,用这种方法真的很方便,第一步下载,第二步裁剪,裁剪完就能用,不用再格式转换和分类。

第一步,从http://download.geofabrik.de/中下载china-latest.shp.zip

该shp包中包含了分好类的各类shp:

OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法_第2张图片

第二步,裁剪

在ArcMap或QGIS等GIS软件中裁剪即可

 

方法2:用overpass工具下载某城市的路网

通过OpenStreetMap获取城市道路网数据难点在于:取数据的框一般都是矩形框:,很难划定城市边界,以及如何从众多图层中只获得路网数据。

转换一下思路,从以下两个步骤中获取数据:

  • 根据城市名获取对应ID
  • 据城市ID获取路网数据 

该方法的优点:无需城市行政区划边界,即可下载到某城市的路网

该方法的缺点:①下载下来的并不单单是road,而是road、water、waterway等数据混到一起的,仍需要提取出road;②下载下来的数据类型是osm,往往还要将其转换为shp

适用范围:无城市行政区划边界的情况下,下载城市路网

第一步,根据城市名获取对应ID

进入 http://www.overpass-api.de/index.html

点击第二栏的Query -> Query and Convert Forms

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


  
    
	
  
  
其中name:zh代表中文地址,否则使用name即可 当然,如果你不喜欢输出格式为XML,也可以将修改为定义输出数据格式为JSON。

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

第二步,根据城市ID获取路网数据

再次在主界面的Overpass API Query Form(即第一个查询框中)输入如下代码


  
    
    
    
    
  
  
    
    
  
  

 

其中3602782246是上一步骤中拿到的ID加上360000000后得到的数字。ID仅仅为所查询城市的行政区边界,如果想得到该市边界内所有的地图数据,我们需要在该id号基础上加3,600,000,000,得到最终的ID值为3603076268;

点击右侧的Query按钮,即可将结果从浏览器下载到本地,文件名为interprept,打开后即可得到路网数据。

此时数据格式仍为OSM标准的格式,需要转换为常用的shp格式,详见下一部分。

  • 附:OSM道路分类

OSM道路分类:https://wiki.openstreetmap.org/wiki/Key:highway

感谢这位博主提供的openstreetmap道路网数据对应中国道路速度:https://blog.csdn.net/u011994016/article/details/56831190

 

  • 四、OSM数据转为ESRI shp数据

  • 方法1:网页版GeoConverter工具

方便快捷,使用简单,网址链接:https://geoconverter.hsr.ch/

但是使用网页版GeoConverter转换出来的数据编码不对,所以会出现乱码,或者全是????????????,使用方法3-QGIS转换时候指定编码为utf8就可以解决转换为shp出现的乱码问题(感谢评论里的大神提供的解决方案!)

OSM OpenStreetMap 获取城市路网数据及转为ESRI shp数据的方法_第3张图片

  • 方法2:通过ArcGIS Editor for OpenStreetMap插件

本地新建一个文件地理数据库,使用OpenStreetMap Toolbox.tbx工具中的Load OSM File功能,将生成结果输出到刚刚新建的文件地理数据库,之后用ArcGIS随意转换需要的shp等格式。

  • 方法3:借助QGIS

将下载的数据拖入到QGIS软件中,直接显示(如果不显示则如要导入投影坐标系),然后再QGIS的内容列表选择数据右键单击-选择Geometry Tools-单击Export/Add geometry colums导出为shp后缀的数据,即可在ArcGIS软件中编辑使用。

 

你可能感兴趣的:(GIS,OSM,路网数据,shp,openstreetmap)