美文网首页Geomatics(GIS,GPS,RS,Surveying)交通科研
Openstreetmap—让你不再为找不到地图而烦恼

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

作者: 交通科研Lab | 来源:发表于2019-11-23 10:01 被阅读0次

    在我们研究交通现象时,往往离不开路网数据。以往获取路网拓扑结构数据多是购买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下方的输入框中输入代码:

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

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

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

    1. 其次根据城市ID获取城市路网数据,
    • 上面的输入框中的代码替换为如下:

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

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

    我们是一个有灵魂的团队,坚持探索,致力于分享交流学习经验。
    想获取更多交通建模,论文写作,开源资料等科研信息的小伙伴就请关注

    微信公众号【交通科研Lab】 (所有信息均在公众号第一时间发布)

    文章内容,欢迎转发交流!
    如果内容对您有用,不要吝啬文末的点赞!!!

    参考文献:

    GIS大师兄:干货|OSM(openstreetmap)矢量数据下载方法(水系,铁路,道路,建筑物)
    http://www.mapboxx.cn/article/osm-way/

    相关文章

      网友评论

        本文标题:Openstreetmap—让你不再为找不到地图而烦恼

        本文链接:https://www.haomeiwen.com/subject/ylncwctx.html