目录
一、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
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官网下载,可以用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.直接在地图上画矩形框下载框内的数据,网上有很多介绍,在此不赘述。
2.下载世界各地的OpenStreetMap地图矢量数据
打开OpenStreeetMap首页OpenStreetMap 。然后单击下图右上角的导出,可以看到有许多数据来源的网站,选择Geofabrik 下载就可以进入下载了。http://download.geofabrik.de/
以中国为例,在表格内选择Asia,单击,然后在Sub Region内选择China,选择.shp.zip数据,单击直接下载,解压后,就可以在ArcGIS直接打开了。数据量很庞大,需要自己先整理。OSM数据定期更新。单击China按钮,可以查看数据的更新时间,也可以下载china-latest.shp.zip。
在ArcToolbox-OpenStreetMap Toolbox的工具,单击Download OSM data就可以下载地图数据,既可以以经纬度确定范围,只需在Top、Bottom、Left、Right输入经纬度即可,但是范围不能过大,否则无法下载,会提示【Extend of download】超过范围。也可以用原有的矢量图(shp文件)进行框定范围,进行下载,同样对范围有所限制,比如为了下载某市的数据,将该市地图切成几十块,分块下载。
在QGIS软件菜单栏选址Vector-再点击Openstreetmap-Download Data,打开OSM网站,选择范围,选择Manual填写范围下载。
该方法的优点:①下载的直接是shp文件,无需从osm文件转为shp文件;②china-latest.shp.zip中有分好类的road数据
该方法的缺点:①china-latest.shp.zip文件过大 1G左右,下载可能较慢;②要有城市的边界shp或是研究区域的边界shp文件,方便裁剪
适用范围:已有研究区域边界的情况下,用这种方法真的很方便,第一步下载,第二步裁剪,裁剪完就能用,不用再格式转换和分类。
该shp包中包含了分好类的各类shp:
在ArcMap或QGIS等GIS软件中裁剪即可
通过OpenStreetMap获取城市道路网数据难点在于:取数据的框一般都是矩形框:,很难划定城市边界,以及如何从众多图层中只获得路网数据。
转换一下思路,从以下两个步骤中获取数据:
该方法的优点:无需城市行政区划边界,即可下载到某城市的路网
该方法的缺点:①下载下来的并不单单是road,而是road、water、waterway等数据混到一起的,仍需要提取出road;②下载下来的数据类型是osm,往往还要将其转换为shp
适用范围:无城市行政区划边界的情况下,下载城市路网
进入 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
再次在主界面的Overpass API Query Form(即第一个查询框中)输入如下代码
其中
中3602782246
是上一步骤中拿到的ID加上360000000后得到的数字。ID仅仅为所查询城市的行政区边界,如果想得到该市边界内所有的地图数据,我们需要在该id号基础上加3,600,000,000,得到最终的ID值为3603076268;
点击右侧的Query按钮,即可将结果从浏览器下载到本地,文件名为interprept
,打开后即可得到路网数据。
此时数据格式仍为OSM标准的格式,需要转换为常用的shp格式,详见下一部分。
OSM道路分类:https://wiki.openstreetmap.org/wiki/Key:highway
感谢这位博主提供的openstreetmap道路网数据对应中国道路速度:https://blog.csdn.net/u011994016/article/details/56831190
方便快捷,使用简单,网址链接:https://geoconverter.hsr.ch/
但是使用网页版GeoConverter转换出来的数据编码不对,所以会出现乱码,或者全是????????????,使用方法3-QGIS转换时候指定编码为utf8就可以解决转换为shp出现的乱码问题(感谢评论里的大神提供的解决方案!)
本地新建一个文件地理数据库,使用OpenStreetMap Toolbox.tbx工具中的Load OSM File功能,将生成结果输出到刚刚新建的文件地理数据库,之后用ArcGIS随意转换需要的shp等格式。
将下载的数据拖入到QGIS软件中,直接显示(如果不显示则如要导入投影坐标系),然后再QGIS的内容列表选择数据右键单击-选择Geometry Tools-单击Export/Add geometry colums导出为shp后缀的数据,即可在ArcGIS软件中编辑使用。