利用OpenStreetMap获取城市路网数据
OpenStreetMap简介OpenStreetMap社区是一个由地图制作爱好者组成的社区,这些爱好者提供并维护世界各地关于道路、小道、咖啡馆、铁路车站等各种各样的数据。OpenStreetMap开源项目可以让程序开发更加灵活,图源更加丰富,例如可以使用谷歌地图,以解决国内无法使用谷歌服务的尴尬。国内户外导航软件,例如:行者、户外帮和小狼信标都使用了OpenStreetMap文章目录...
·
OpenStreetMap简介
OpenStreetMap社区是一个由地图制作爱好者组成的社区,这些爱好者提供并维护世界各地关于道路、小道、咖啡馆、铁路车站等各种各样的数据。
OpenStreetMap开源项目可以让程序开发更加灵活,图源更加丰富,例如可以使用谷歌地图,以解决国内无法使用谷歌服务的尴尬。
OpenStreetMap网址:https://www.openstreetmap.org/
这篇博客主要是围绕如何在该网站上获取某个城市的路网信息,关于路网信息的解析目前还在探索中,待填坑。
1.根据城市名称获取城市ID
-
点击第二栏的Query -> Query and Convert Forms
-
在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>
- 点击右侧的Query按钮,将名为
interprept
的文件从浏览器下载到本地,然后用记事本之类的软件打开该文件,找到<relation id="xxx">
, 即可拿到所要查询市的ID。如延安市的ID是3020001
。
2.根据城市ID获取路网信息
-
上面的输入框中的代码替换为如下:
<osm-script timeout="1800" element-limit="100000000"> <union> <area-query ref="3603020001"/> <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="3603020001"/>
中3603020001
是第一步中拿到的ID加上360000000后得到的值。
- 点击Query按钮,下载名为
interprept
的文件即可,该文件即是路网数据。
更多推荐
已为社区贡献1条内容
所有评论(0)