美文网首页
OSM下载上海市道路地图,并在QGIS显示

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

作者: 不玩了啊 | 来源:发表于2019-12-30 18:05 被阅读0次

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

原创ReonLeon 发布于2018-12-12 17:44:30 阅读数 2843  收藏

展开

下载地图

下载一个城市的地图,可以在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。

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

————————————————

版权声明:本文为CSDN博主「ReonLeon」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_22634949/article/details/84976133

相关文章

网友评论

      本文标题:OSM下载上海市道路地图,并在QGIS显示

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