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
网友评论