openstreetmap地图下载的几种方法

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

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

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

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

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

在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加上3600000000后得到的数字。 - 点击右侧的Query按钮,即可将结果从浏览器下载到本地,文件名为interprept,打开后即可得到路网数据。

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

补充获取城市ID号的另一种方法:

(1)在www.openstreetmap.org(osm官网)的搜索框输入城市名,比如武汉

(2)拖动滚动轮到底部,就能看见武汉市的ID号

(3)下图就是武汉市的ID号,下图右边还框选出他的范围

5.

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

 

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

 

 

 

  • 8
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
打开街道地图是一个多步骤的过程。首先,你需要选择一个特定的区域来下载地图。然后,你需要使用OpenStreetMap的API来获取该区域的地图数据。最后,你可以将地图数据保存为图像文件。以下是一个示例代码,展示了如何使用Flask框架来下载OpenStreetMap地图数据: ```python from flask import Flask, Response app = Flask(__name__) @app.route("/") def index(): return "<h1>map source</h1>" @app.route("/tiles/<int:x>/<int:y>/<int:z>", methods=\['GET'\]) def getTiles(x, y, z): imgPath = "Tiles/{}/{}/{}.png".format(x, y, z) resp = None with open(imgPath, 'rb') as f: img = f.read() resp = Response(img, mimetype="image/png") return resp if __name__ == '__main__': app.run(debug=True) ``` 这段代码创建了一个基于Flask的Web应用程序。当你访问根路径时,它会返回一个简单的HTML页面。当你访问`/tiles/<x>/<y>/<z>`路径时,它会根据给定的x、y和z参数返回相应的地图图像。你可以根据自己的需求修改代码,并将地图数据保存为图像文件。 #### 引用[.reference_title] - *1* *2* [openstreetmap地图下载几种方法](https://blog.csdn.net/weixin_38233769/article/details/109755046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [下载OpenStreetMap离线地图数据并搭载瓦片服务器](https://blog.csdn.net/hopyGreat/article/details/100625385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值