这段时间做了一些利用地理信息进行定位导航的系列工作,其中很重要的一部分是如何获取到地图数据,比如道路的矢量图、某一区域的栅格图,我用到的主要工具是QGIS。QGIS是一个跨平台的免费应用,其中集成了对矢量图、栅格图处理的很多功能,同时也集成了很多开放地图数据网站的接口,比如OpenStreetMap等,因此,在获取数据,并处理成我们需要的格式方面非常便利。本篇博文主要介绍如何使用QGIS下载数据,并处理成特定的格式。

一、 指定区域指定地物矢量图获取

我们经常会遇到这样一种需求:获取某一区域的指定地物的地图,比如获取某一区域的道路图、河流图等。这一节的内容能够解决这一需求。通常我们从开放的地图平台OpenStreetMap中下载某一区域的矢量地图,而后通过后续的处理,来获取我们需要的地图信息。

1、数据下载

1) 在vector菜单栏中选择OpenStreetMap ->Download Data,即可打开数据的下载框:

2)而后设定需要下载数据的区域,这里提供了三种区域设置方式:

a) From map canvas:当前窗口显示的区域

b) From layer:某一图层所代表的区域

c) Manual:人为设定区域

通常当我们已知我们需要下载的数据的区域,我们采用第三种方式。

3)下载数据:设置好下载区域,并输入保存文件名后,点击确定,即开始下载数据。这里需要注意的一点是,在设定保存文件名时,需要把文件的扩展名带上,即.osm,这样在后续加载文件时,才不会出现找不到文件的情况。

2、提取指定地物及矢量图保持

上一步下载的数据是以xml的形式存储的,不是矢量图的格式,因此不能被直接处理。我们需要首先将该文件加载入QGIS中,并转换为矢量数据,才能进行下一步的处理。

1) osm文件加载:选择vector->Import Topology from XML,打开数据导入页面: 

选择需要导入的文件(即刚才我们下载的osm文件),设置转换后文件名,点击确认。

2) 导出矢量图:选择vector->Export Topology to SpatiaLite,打开矢量图导出页面: 

由于此处我们需要得到的是道路数据,因此我们在“export type”选择Polylines;而后设置导出文件名;最后需要导出标签。选择Load from DB,并选择感兴趣的标签。这里我们仅对道路感兴趣,因此我们仅选择highway。保留标签的目的是为了进一步筛选,虽然我们在“export type”中选择了Polylines,但是并不是所有的Polylines都是道路(也有可能是河流等),因此需要进行进一步的筛选。 

3) 筛选感兴趣的地物:

上述得到的矢量图,不仅仅包含道路图,还包含了其他地物特征,因此需要进一步筛选。

在获得的图层上,右键打开菜单选项,选择Open Attribute Table:

选择select by expression(图中红色圈),而后设置筛选的条件。这里我们需要选择的是道路,因此我们的筛选条件为:NOT (“highway”= ‘NULL’)。点集select按钮后,可以看见,道路部分被黄色高亮了。

而后我们在图层窗口右键打开菜单,选择保存,打开保存页面:

设置保存文件名,地理坐标系,注意勾选红色圈内选项,选择保存,即得到该区域的道路矢量图。

二、指定区域栅格图获取

1、设置下载网址

在Browser Panel窗口中找到Tile Server(XYZ),右键,New Connection:

输入服务器的网址,例如:

高德影像图:

https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}

高德路网:

https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8&ltype=11

此时会生成服务器地图的接口。

2、创建栅格地图图层

双击上述创建的服务器地图接口,即会在Layer Panel中生成一个响应的图层。此时,如果我们知道需要下载的区域的地理坐标,可直接进入第三步。如果不知道,可以打开参考地图,通过手动选取,来设定下载区域。具体做法为:

打开web->OpenLayers plugin,选择想要的地图:

而后通过缩放,拖动等操作,将地图设置到我们需要的区域:

3、保存需要的栅格地图

在创建的栅格图层上,右键,选择保存,打开保存页面:

设置保存的路径,地理坐标系,范围(Extent),分辨率(Resolution),点击确定后,栅格地图数据就会被下载下来。如果保存的范围很大,通常地图会被分割为若干个小的区域进行保存。

相关操作,可以参考视频:https://www.bilibili.com/video/av65253432/

转载于:https://www.cnblogs.com/doctor-li/p/11402774.html

利用QGIS下载地图数据相关推荐

  1. 利用python下载fnl数据方法

    (1)下载python,网上下载方法很多,此处不再赘述,记得下载和电脑系统版本匹配的就好: (2)去ncar官网注册 https://rda.ucar.edu/ 先进行注册,需要注意的是注册最好用教育 ...

  2. python获取股票逐笔交易数据_利用python下载股票交易数据

    前段时间玩Python时无意看到了获取股票交易数据的tushare模块,由于自己对股票交易挺有兴趣,加上现在又在做数据挖掘工作,故想先将股票数据下载到数据库中,以便日后分析: # 导入需要用到的模块 ...

  3. 利用QGIS将shp数据导入postgresql空间数据库

    1.利用QGIS连接Postgresql空间数据库 (1)打开QGIS程序,在其左侧"添加数据"工具栏中单击"大象"图标,用以添加PostGIS图层,如图所示 ...

  4. python 做交易软件下载_利用python下载股票交易数据

    原博文 2017-02-06 22:45 − 前段时间玩Python时无意看到了获取股票交易数据的tushare模块,由于自己对股票交易挺有兴趣,加上现在又在做数据挖掘工作,故想先将股票数据下载到数据 ...

  5. 利用python下载ECMWF数据

    1.注册ECMWF数据下载账号: 2.下载 ECMWF web-API client version in python,下载网址为https://software.ecmwf.int/wiki/di ...

  6. QGIS下载天地图瓦片数据

    说明 介绍利用QGIS下载天地图瓦片数据. 关键字:window.QGIS.天地图 环境准备 QGIS版本为3.28.3 基本步骤 一.在Browser面板中找到XYZ Tiles 二.New Con ...

  7. Python实现OSM地图数据解析——OSM2Rail

    目录 1. 简介 2. 功能特色 2.1 自动下载OpenStreetMap地图数据包 2.2 提供更精确的铁路网络数据解析 2.3 扩展GMNS标准 3. 快速上手 4. 效果展示 5. 相关阅读 ...

  8. QT5.14使用QWebChannel与百度地图数据交互

    文章目录 前言 一.开发环境 二.开发步骤 1.HTML开发 1.1 qwebchannel.js 1.2 sample.html这里是我用太乐地图生成的离线版本,然后自己修改生成的代码 2.QT开发 ...

  9. 无人驾驶算法学习(十五):高精度地图数据存储框架Lanelet2

    文章目录 1.引言 2.lanelet2特点 3.数据结构 3.1 Points 3.2 Linestrings 3.3 Polygon 3.4 Lanelets 3.5 Areas 3.6 regE ...

最新文章

  1. [20150309]使用冷备份做恢复的问题.txt
  2. python多张图片合并拼接,python制作sprite图、雪碧图
  3. “新一代城市大脑建设与发展“专家研讨会
  4. 航空频率表 2020_航空波段+调频、中波、短波,这个美国TR608收音机值40美元吗?...
  5. 浅浅地谈一下随机算法【poj2454】【poj3318】
  6. Node.js中的回调解析
  7. maccmsv10 苹果cms10 站群扩展 自用版
  8. 死循环线程php,QObject的派生类方法实现多线程死循环问题
  9. shell 按文件每行长度排序
  10. 机器学习实践指南(一)—— 总论
  11. Java文件– java.nio.file.Files类
  12. lingo软件的基本使用方法_(PS软件)PHOTOSHOP基础操作和基本工具的使用
  13. mysql5.7 主从复制的正常切换【转】
  14. 程序员常用的计算机编程语言介绍
  15. PHPExcel 锁定表头 设置样式,背景颜色,居中,宽,单元格合并
  16. es 切换别名_Elasticsearch之别名
  17. 苹果系统怎样修改mac地址?
  18. [-Flutter趣玩篇-] 出神入化的Align+动画
  19. 详解LVS配置DR模型
  20. 完美解决Windows10安装HCL模拟器各种疑难问题!!!

热门文章

  1. 【微信小程序-原生开发】添加自定义图标(以使用阿里图标库为例)
  2. HUD - 1873
  3. ubuntu黑屏有声音
  4. C++ 类中的static成员的使用及单例设计示例
  5. [MATLAB]从键盘输入一个带有字母构成的字符串,要求大写变小写,小写变大写输出。
  6. Cad二次开发小工具
  7. R语言 by()用法
  8. 从事数据分析很牛X?要看你有没有认证
  9. 名帖80 苏轼 楷书《南轩梦语》
  10. EcShop常用 促销活动表结构