openstreetmap地图下载的几种方法

记录我下载地图使用过的方法:

1. 指定范围下载(小范围)

在openstreetmap网站上,点击导出,然后框选,导出就行。

这种方法只能下载特别小的范围的地图。超过50000个节点就不可以。会报错

1
You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm

2. 指定范围下载

当报上面的错误之后,要想下载框选出范围的地图,这点击上图中的“overpass API”

3.下载某个省的地图

如果想下载某个省的地图,则在这个网址下载:http://download.openstreetmap.fr/extracts/asia/china/

4. 下载某个城市的地图

网址:https://link.zhihu.com/?target=http%3A//www.overpass-api.de/index.html

1
2
3
4
5
6
7
在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, 用记事本打开该文件,找到, 即可拿到成都市的ID为2110264

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
<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>

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

参考知乎文章:https://zhuanlan.zhihu.com/p/93239773?utm_source=wechat_session&utm_medium=social&utm_oi=677334979525218304

5.

网址:https://extract.bbbike.org/

这个是会把数据发邮箱的,可以搜索也能自己框选。框的形状是固定的,可移动框的中心以及缩放。