这段时间做了一些利用地理信息进行定位导航的系列工作,其中很重要的一部分是如何获取到地图数据,比如道路的矢量图、某一区域的栅格图,我用到的主要工具是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/av65061459/

利用QGIS下载地图数据的更多相关文章

  1. 利用pyecharts做地图数据展示

    首先, pip install pyecharts 为了地图上的数据能显示完全,加载好需要的城市地理坐标数据. pip install echarts-countries-pypkg pip inst ...

  2. C++代码利用pthread线程池与curl批量下载地图瓦片数据

    项目需求编写的程序,稳定性有待进一步测试. 适用场景:在网络地图上,比如天地图与谷歌地图,用户用鼠标在地图上拉一个矩形框,希望下载该矩形框内某一层级的瓦片数据,并将所有瓦片拼接成一个完整的,包含地理坐 ...

  3. 用java解析在OpenStreetMap上下载的地图数据

    采用dom4j解析下载的xml文件,java程序如下: package gao.map.preprocess; import java.io.BufferedWriter; import java.i ...

  4. ECharts的geojson地图数据下载(根据城市区划代码的前六位查询)

    链接如下: http://echarts.baidu.com/echarts2/doc/example/geoJson/china-main-city/522200.json 想要对应城市的geojs ...

  5. 使用R画地图数据

    用R画地图数据 首先,从这里下载中国地图的GIS数据,这是一个压缩包,完全解压后包含三个文件(bou2_4p.dbf.bou2_4p.shp和bou2_4p.shx),将这三个文件解压到同一个目录下. ...

  6. 利用 PortableBasemapServer 发布地图服务

    前段时间需要给自己的C/S系统加一个地图,但是没有数据,于是就想到了使用网上的切片地图,但是C/S系统又不能联网,于是就想本地发布切片服务来使用. 本来想用ArcGIS Server来发布从网上下载的 ...

  7. 利用ArcEngine开发地图发布服务,将mxd文档一键发布成wmts,并根据需要对地图进行空间查询,返回客户端geojson

    一直想开发一个软件取代ArcGIS Server,该软件使用ArcEngine开发,以Windows Service形式发布,部署在服务端上,解决wmts地图服务发布和空间查询的问题,经过不断的研究. ...

  8. 全国SHP地图数据赠送

    百度搜索:GIS之家获取全国SHP图层数据的方式:收藏(ArcGIS地图全国电子地图shp格式版本GIS地图数据.GIS开发顺德政府GIS公共服务共享平台),并且截图验证,验证通过后,收下邮箱,我把下 ...

  9. Android利用Fiddler进行网络数据抓包

    最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...

随机推荐

  1. vs2005 打不开resoure view?

    原来是破解版 vc助手惹的祸. 解决方法:卸载vc助手或者换一个注册的vc助手

  2. C#3.0新增功能09 LINQ 标准查询运算符 01 概述

    连载目录    [已更新最新开发文章,点击查看详细] 标准查询运算符 是组成 LINQ 模式的方法. 这些方法中的大多数都作用于序列:其中序列指其类型实现 IEnumerable<T> 接 ...

  3. 《 C#语言学习笔记》——自动属性

    属性是访问对象状态的首选方式,因为它们禁止外部代码实现对象内部的数据存储机制.属性还对内部数据的访问方式有了更多控制.一般以非常标准的方式定义属性,即通过一个公共属性直接访问一个私有成员. 利用自动属 ...

  4. CSS布局定位基础-盒模型和定位机制

    1. 盒模型 2. 外边距合并 3. 定位机制 4. Float 5. Position:属性有哪些取值,它们的行为是什么? 无依赖绝对定位? 6. Display:常见属性值有哪些取值? 7. 对B ...

  5. C#航空查询及预订

    关于航空查询及预订项目中出现的问题 namespace Flight{ public partial class Flight : Form { public Flight() { Initializ ...

  6. 【iOS】图片缩放动画

    iOS 开发中,可用 UIView 的下述方法实现图片的缩放动画效果: + transitionWithView:duration:options:animations:completion: 示例代 ...

  7. 【Android】Failed to convert @drawable/picture into a drawable

    刚使用 eclipse 遇到了这个问题,图片的效果未显示出来,上网查找后发现这其实不算是问题:重启下工程或 eclipse 就行了. PS: 直接运行工程也可以,不影响效果.

  8. EM算法和高斯混合模型GMM介绍

    EM算法 EM算法主要用于求概率密度函数参数的最大似然估计,将问题$\arg \max _{\theta_{1}} \sum_{i=1}^{n} \ln p\left(x_{i} | \theta_{ ...

  9. 【Spring源码解析】—— 委派模式的理解和使用

    一.什么是委派模式 委派模式,是指什么呢?从字面含义理解,委派就是委托安排的意思,委派模式就是在做具体某件事情的过程中,交给其他人来做,这个事件就是在我的完整链路上的一部分,但是复杂度较高的情况下或者 ...

  10. 如何在docker下安装elasticsearch(上)

    一 环境 VMware® Workstation 15 Pro centos7 (1810) docker19.03.1 二 进入centos7启动dcoker systemctl start doc ...