美文网首页
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