OSM下载上海市道路地图,并在QGIS显示

下载地图

下载一个城市的地图,可以在OSM官网(http://www.openstreetmap.org/)中利用矩形选择工具下载,但此种方法较为麻烦,可能会得到一些多余的数据,此处通过Overpass(http://www.overpass-api.de/query_form.html)下载。

1. 访问(http://www.overpass-api.de/query_form.html),在Overpass API Query Form中输入以下查询代码

<query type="relation">
<has-kv k="boundary" v = "administrative"/>
<has-kv k="name" v = "上海市"/>
</query>
<print mode="body"/>

如下图所示,点击Query按钮

2. 弹出下载提示,保存文件,用记事本打开文件,搜索“relation id”字段,字段后的数字即为城市id号

如上图所示,上海的id为913067

3. 以上所查找的id仅为上海市的边界,如果想得到上海市的地图,我们需要在该id号基础上加3,600,000,000,得到id最终结果为3600913067。

4. 在第1步的页面中,再次查询,输入以下代码

<osm-script timeout="1800" element-limit="100000000">
 <union>
  <area-query ref="3600913067"/>
  <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>
 

其中,ref字段后为第3步的最终id值

5. 点击query按钮,保存所得文件,即为上海市地图数据。

导入QGIS

1. 在一个QGIS3的工程里选择Layer--Add Layer--Add Vector Layer

2. 在打开对话框中,将Encoding选择为utf-8,避免中文乱码,并选择上面下载的地图数据,点击Add,弹出如下对话框

这里选择Lines和MultiLines两项来导入道路数据,单击ok。

等待导入完成,显示结果如下图

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值