(2) QGIS快速上手

1. 制作地图

在需要制作一张可供打印或出版的地图时,QGIS提供一组称为「地图出版设计」(Print Composer)的强大工具,它可以方便地把所有的图层打包起来产生完整的地图。

内容说明

本教学示范如何制作一张包含基本制图元素的日本地图,像是网网格线、方位标示、比例尺、图例与标签、插页小图等等。

会学到这些

使用「实时CRS转换」把在不同空间投影下储存的数据统一呈现

取得资料

这边使用的是Natural Earth dataset中的Natural EarthQuick Start Kit,这些资料已经整理得相当不错,而且可以直接加载到QGIS当中。

Download the NaturalEarthQuickstartKit.

数据源:[NATURALEARTH]

操作流程

下载Natural EarthQuick Start Kit数据并解压缩。开启QGIS,点选专案→开启。

进入Natural Earth Quick Start Kit解压过的文件夹后,应该能找到一个叫Natural_Earth_quick_start_for_QGIS.qgs的档案。

这就是所谓的「QGIS项目档」,通常会一并含有许多图层的资料。按下开启。然后项目内含的图层就会被加载到QGIS的画布上。如果画布上方出现了蓝色的警告讯息,点右边的叉叉取消即可。

接下来就要制作日本地图了。点选放大钮后在日本附近画个长方形出来,地图会放大到此范围。

可以关掉某些用不到的图层,例如10m_geography_marine_polys和10m_admin_0_map_units,只要把勾选取消掉就行了。为了要能够顺利的排版地图,接下来要为地图选择一个合适的投影法。目前这份数据所采用的地理坐标系统(GCS)的单位是「经纬度」,但常见的地图通常会以「公里」为单位。所以,这个项目的投影法需要另外选择一个以长度为单位,而且不会让想要出图的区域变形得太严重的投影法。因此,UTM(国际横麦卡托)投影就成了还不错的选择。UTM投影法把全球的区域切成许多小块,所以可以依照你的地图选择最适当的投影区域。在这里,要使用UTM Zone 54N,请点选在QGIS右下角的目前的CRS按钮。

批注

在日本地区,其实还有一个投影法可以使用,称为Japan Plane Rectangular CS(日本平面矩形坐标系统)。这个投影法可以最小化投影造成的变形。它目前把全日本分成18个子区,如果考虑把地图范围缩到更小的话,使用这个CRS会更好一点。

勾选开启实时CRS转换的框框,并在下面的过滤条件字段输入Tokyoutmzone54n。在下面窗口看到结果之后,选择Tokyo/UTM Zone 54N-EPSG:3095然后按下确定。

现在就可以开始拼凑地图了!点选项目→建立地图出版设计。

会有一个窗口跳出来要求输入设计标题,这边可以先空着,点确定即可。

批注

如果标题是空白的话,程序会自动产生一个像是标题设计1的预设标题。

在地图出版设计的窗口中,首先先点选全图显示以确定看到的是整张地图的范围。然后把在QGIS画布中的东西放进来,请选择图层→加入地图。

在加入地图按钮启动之后,必须要在地图版面上拖曳一块想插入地图的区域。

会看到这个区域马上就填上了QGIS画布中的东西。不过它未必会跟所要的制图区域完全重合,这个时候可以选择图层→移动内容,然后直接把在这个区域里的东西拖曳到想要的范围。

地图的比例尺也可以稍做调整,在右侧的项目属性分页中的比例字段输入7000000看看。

接下来会插入一个东京区域的放大版地图,不过在进行任何更动之前,要把已经弄好的底图给锁起来。请勾选为地图项目锁定图层以及Lock layer styles form apitem,这两个选项是用来确保接下来在QGIS画布上的更动,不会连带影响到设计窗口中已经弄好的部分。

切换到QGIS窗口,使用放大钮放大到东京市周围。

这个ne_10m_populated_places图层有一些重复的地名标签,可以把它关掉。

接下来就可以弄插页小图了。切换到地图出版设计窗口,然后选择图层→加入地图。

在想要插入东京区域地图的地方拉一个长方形即可。现在有2个地图对象在同一个设计稿上了,所以如果要改动其中任意一个地图,就要先确认正确的地图对象有没有被选取起来。在项目分页中,请选择刚刚加入的地图1对象,然后在项目属性分页中,往下卷动到框线的字段,把那个框框勾起来,这样就能自由调整小插图的外框,使之与主要地图区隔开以方便辨识。

这里有个很方便的功能,可以帮标示小插图是位在主地图的哪里。首先在项目分页中选择地图0,然后在项目属性分页中,往下卷动到全览图的字段,点选新增全览图的按钮。

在图框选单中选择地图1,就可以把地图1的小图范围标示在地图0中。

现在插页小图也完成了,下一步就来加个网格线和斑马框(Zebra Border)到主地图上。在项目分页中选择地图0,然后在项目属性分页中,往下卷动到网格线的字段,点选加入网格线的按钮。

在预设的情形中,网格线会使用与选择的地图相同的投影法标示,不过使用「经纬度」标示的网格线却更常见,而且使用者也易于阅读。所以这里为网格线选择一个不同的CRS试试看。请点选网格线字段中,CRS右侧的变更…按钮。

选择坐标参考系统的窗口会跳出,在过滤条件内输入4326,然后选择WGS84 EPSG:4326当作网格线的CRS,按下确定。

在区间字段中,把X和Y都设成5度,然后再适当的调整偏移,就可以设定网格线要在哪出现。

往下移到网格线框的字段,就可以选择喜欢的边框样式。再更下面,还可以顺便勾选绘制坐标。

调整与地图图框之距离,可以使这些坐标文字易于阅读;而调整坐标精确度到1,则可以让这些坐标只显示到小数点以下第1位。

再来就是加个指北箭头。QGIS的出图设计功能本身有内建一些不错的现成图片,其中当然也包括许多种类的指北箭头,只要选择图层→加入图片。

用鼠标左键在地图右上角拖曳出一个方形,然后在右侧的项目属性中把搜寻文件夹点开,就可以选择喜欢的图案了。

再加个比例尺好了。选择图层→加入比例尺。

在想要比例尺出现的地方单击,记得在项目属性中确认这个比例尺显示的是主地图的比例尺,而不是插页小图的比例尺。各种想要的设定都可以在这边调整,例如在线段的字段中,可以调整黑白线段的数量以及尺寸。

总算到了上标题的时间!选择图层→加入标记,

在地图上拖曳卷标的范围,接着展开项目属性中的标记字段,然后输入如下文字试试。没错,这是HTML语法,只要勾选绘制成HTML的选项后,它就会使用HTML卷标解读这些文字。

简单的再加上数据源以及制图使用软件的卷标。

把地图调整到最佳状态后,就可以输出成图片文件、PDF或是SVG檔了。这里试试看转存成图片文件:选择地图设计→导出为影像。

存成任一种喜欢的格式即可。这里放的是存成PNG的图片。

2. 属性的操作

GIS数据可解构成两个层级──图征(Features)及属性(Attributes),而属性就是图征的结构化数据。本教学将示范如何浏览这些属性,以及在QGIS中对属性执行基本的查询操作。

内容说明

这次教学使用的数据是所有世界上有人住的地方。要从这当中找出所有人口大于1,000,000的国家首都。

会学到这些

• 使用表达式选取图层中的图征

• 使用属性工具栏取消选取图征

• 使用查询建构器来显示图层中的次群组

取得资料

Natural Earth上有不错的 人口居住地 数据库,其中也有 简化版(字段较少)的数据库

为了方便起见,也可以直接从以下连结下载:

ne_10m_populated_places_simple.zip

数据源: [NATURALEARTH]

操作流程

载好数据以后,打开QGIS,选择图层→加入图层→加入向量图层。

点选浏览然后移到下载数据的地方。

找到ne_10m_populated_places_simple.zip这个档案后,直接选开启旧档即可。这个档案不需要解压缩,QGIS自己有能力可以读取zip档的内容。

QGIS就会显示档案的内容,会看到许多点,每个点都是世界上有人居住的地方。

在这个图层上右键单击,选择开启属性表格,

然后就可以看到许多的属性,每个属性都有各自的数值。

找每个图征(每个点)的人口数,相对应的属性就是pop_max。点两次这个标题就可以把这个字段以递减排序显示。

接下来就来试试属性的查询功能。QGIS可以运用类似SQL的表达式进行查询,首先要选择使用表示式选取图征。

在跳出的「使用表示式选取图征」窗口中,展开字段与值`的内容,点两下“pop_max`标签,这样它就会被加进表示式的窗口当中。如果不是很确定这个属性会有什么值,可以选择加载值:全部唯一值以查看数据库中这个属性具有的所有可能的值。本教学中,要寻找所有人口大于1,000,000的图征点,所以在完成如图所示的表达式后,就可以按下选取。

"pop_max">1000000

按下关闭后回到QGIS主窗口,应该就会看到有一些点已经变成黄色了。这些点就是在这数据库中,所有pop_max属性值大于1,000,000的点的集合。

还有一个目标,那就是找出这些点里面有哪些是国家首都。相关的信息记在adm0cap字段中,1代表这点是国家首都。因此,只要使用and运算符添加另外一个条件到刚才的表达式中就行了。立马来试试:在属性表格中选择使用表示式选取图征按钮,输入以下的表达式后,按下选取然后关闭。

"pop_max">1000000and"adm0cap"=1

回到QGIS主窗口,这下子被选取的点就变少了。这些点就是「人口大于1,000,000的国家首都」的查询结果。可以把这个选择存起来,以利后续的分析。在图层ne_10m_populated_places_simple上右键单击,然后选择属性。

在「一般」分页中,找到Feature subset(或Provider feature filter)的字段,选择查询建构器。

输入之前的表达式,然后按下确定。

"pop_max">1000000and"adm0cap"=1

回到QGIS主窗口,这时会发现其他的点都消失不见了。现在就可以只针对这些点,进行其他的分析。应该也会发现这些点目前都还是黄的,这是因为目前还处在被选取的状态下。在「属性」工具栏上,有个「取消所有图层的图征选取」钮,只要点选它…

看到所有的点都被取消选取,并且回复原来的颜色了。

3. 汇入工作表或CSV檔

许多GIS数据是以Excel工作表或类似的格式储存。此外,如果手边有的是一串经纬度的清单,把它们汇入到QGIS中也不成问题。

内容说明

把地震纪录的纯文本数据文件汇入到QGIS内。

取得资料

NOAA(美国国立海洋与大气总署)设立的国立地球物理数据中心(National Geophysical Data Center)汇整了从公元前2150年开始的所有重要地震的良好纪录。 了解详情

下载重要地震数据库的文本文件。

为了方便起见,你也可以直接用下面的连结下载这两份数据集:

signif.txt

数据源:[NGDC]

操作流程

如果要把数据汇入到QGIS中,他们必须至少要有2栏,一栏是经度,另一栏则是纬度的资料。如果你有电子表格软件如Excel,可以直接使用「另存新文件」功能把数据存成「Tab分隔档」或是「逗号分隔档(CSV)」。这两种档案都可以用记事本软件来开启。使用记事本打开我们刚刚下载的重要地震数据库的档案,你会发现这笔数据是TAB分隔文件,并且具有很多属性,包括地震震央的经纬度字段。

打开QGIS,选择图层→加入分隔文字图层。

从分隔文件建立一个图层的窗口会出现,选择浏览然后选取刚才下载的文本文件。在文件格式的地方选择自定义分隔符,然后勾选定位键`(Tab)。在:guilabel:`几何字段定义的地方,程序会自动寻找档案里面是不是有可以当作X和Y坐标的字段。在档案中,它们分别是LONGITUDE和LATITUDE。如果程序找错了,也可以直接在这里修改。最后按下确定即可。

批注

X和Y坐标很容易搞混。Y坐标在这里指的是南北向的纬度,而X坐标则是指东西向的经度。

这里可能会出现错误讯息出现,这是因为有些点缺少了X和Y字段的值。可以自行检查错误来源并且修正原始档,不过在本教学中,就先略过它们。

接下来,有个窗口「选择坐标参考系统」会挑出来问要选择哪一种CRS。因为地震坐标是以全球经纬度表示,所以这里应选WGS84。最后按下确定。

最后就会看到地震数据成功地显示在QGIS画布上了。

4. 使用附加组件

QGIS的附加组件为这个软件添加了更多实用功能。这些外挂是由QGIS的开发人员或是其他独立使用者,为了让此软件的机能更强大所撰写。在QGIS中,每个人都可以使用这些附加组件。

内容说明

在本教学中,可学到如何开启*核心附加组件*以及下载安装*外部附加组件*。也会知道要如何查阅已经下载过的QGIS附加组件。

操作流程

核心附加组件

核心附加组件已包含在QGIS标准安装内,只需要启动它们就可以使用了。

开启QGIS,选择附加组件→管理与安装附加组件…,附加组件管理员窗口就会打开。

就算是第一次使用QGIS,还是可以见到许多附加组件是列在已安装的分页底下。这些就是所谓的「核心附加组件」,随附在QGIS的安装程序内。

来试试启用其中一个:勾选空间查询组件旁边的框框,这样这个附加组件就被启用了。某些附加组件启用时会添加一些按钮或工具栏在QGIS的上半部或选单列之中,有时候这些新增的功能真的还蛮难找的,这时候可以看一下这些附加组件的描述,例如在这里它说空间查询组件的类别是*向量*,在启用后我们应该就可以在向量选单里找到它。最后按下关闭。

现在空间查询组件已经被启用了,只要去向量→空间查询就可以使用这个外挂的功能。

外部附加组件

外部附加组件会放在QGIS Plugins Repository网站,必须要安装以后才能使用。附加组件管理员的工具提供了一个简单的方法来搜寻并安装你想要的外挂。

开启QGIS,选择附加组件→管理与安装附加组件…,附加组件管理员窗口就会打开。

选择未安装的分页,就可以看到一串外挂组件的列表。

试着安装叫做「Quick WKT」的组件。在寻找栏中输入qui后,应该就可以看到如下类似的结果,选择Quick WKT后,按下安装附加组件就可安装。

下载并安装结束之后,可以看到提示讯息。

或许注意到,这个附加组件并没有指名说放在哪个类别下,要找到还真有点困难。不过大部分的外部附加组件都会列在本身附加组件的选单下。所以只要去附加组件→Quick WKT就可以找到它。一般来说,外部附加组件也会在附加组件工具栏添加一个按钮,也可以直接点这个按钮执行。

实验性附加组件

现在如何搜寻安装外部附加组件对你来说应该不成问题了。不过有的时候,可能还是会没办法透过搜寻来找到想要的特定功能。这有可能是因为这些功能与组件是放在实验性的类别中。现在就来看一下要怎么安装实验性的附加组件。

选择附加组件→管理与安装附加组件…以开启附加组件管理员,然后选择设定分页,把「显示实验性质的附加组件」打勾。

然后有一个新的叫做「新增」的分页会出现,这里放的就是实验性质的组件。

批注

「新增」的分页只会在决定开启显示实验性分页时出现。下一次开启:guilabel:附加组件管理员`时,这些组件就会被归类到:guilabel:`未安装的类别中。

来安装这个Time Manager看看。选取此组件后,点一下安装。

回到QGIS主画面后,就可以看到在画布底下出现了一个新的控制面板,这里就是刚才新安装的Time Manager。某些附加组件也会用这种方式让使用接口更好用。

最后,也可以在检视→版面配置→Time Manager中打开或关掉这个面板。

5. 搜寻和下载开放街图资料

取得高质量的数据是GIS作业时很重要的一环。开放街图(OpenStreetMap,OSM) 就是一个不错、免费,而且给每个人自由使用的数据。OSM的数据含有像是街道、建筑范围等等的地区性信息,而且在QGIS内已经内建了功能让你直接使用OSM的数据库。本教学将示范如何在QGIS内寻找、下载并使用开放街图的数据。

内容说明

在OSM数据库中寻找然后选择一部份伦敦的地图,把所有酒吧的位置标出来然后存成Shapefile。

操作流程

首先要安装OSM Place Search和OpenLayers plugin这2个附加组件才能顺利完成本操作。关于安装附加组件请看 使用附加组件 。

OSM Place Search会在QGIS中安装一个叫做OSM place search…的面板。

OpenLayers plugin会在附加组件或是网络的选单中新增一个选项。这个外挂让你可以在QGIS中直接浏览网络上提供地图的不同来源。下载开放街图的底图,选择附加组件(或网络)→OpenLayers plugin→Add OpenStreetMap layer(注:实际的位置和名称,可能会随着你的QGIS版本的不同而有些微变化)。

接着QGIS中就可以看到世界地图了。

批注

如果没看到任何数据的话,有可能是没有连上网,因为这些数据都是直接从网络上下载的。可以使用平移地图钮把底图稍微移动一下,让QGIS立刻从在线更新图资。

来找看看伦敦吧。在OSM Place Search面板中的Name contains…字段输入london,然后就会出现一堆结果,鼠标移过去时会显示这些地方在世界地图上的位置。选择第一个结果,它就是那个在英国的伦敦市,然后按下Zoom的按钮。

然后底图就会移到伦敦市附近。使用放大钮可以更进一步放大到想看的范围,在本教学中,就把它移到伦敦市中心附近吧,如图所示。

选择向量→OpenStreetMap→下载数据,以下载目前显示在画布上的地图区域。

在下载开放街道图数据对话框中,选择从地图画面取得坐标以获得地图的下载范围,再选择输出位置。把下载文件命名为london.osm。

下载下来的.osm档是一种称之为 OSM XML 的格式。首先要把它转换成QGIS比较容易消化的另一种格式。选择向量→OpenStreetMap→由XML汇入拓扑:

批注

从现在开始,OSM Place Search搜寻面板已经不需要了,可以直接按叉叉关掉。如果之后要重新使用这个面板,可以在检视→版面配置→OSM place search…(Windows)或是设定→版面配置→OSM place search…(Linux)中启用它。

在输入XML文件的地方填上刚才下载的london.osm,然后在输出Spatial Lite DB文件那边把档案命名为london.osm.db,在按下确定之前,确认:guilabel:`导入之后建立连接(SpatialLite)`有被勾选。

最后一步是把刚才的档案汇到Spatial Lite图层内,可以在QGIS内进行分析。请开启向量→OpenStreetMap→汇出拓扑至Spatial Lite。

london.osm.db档案内含有所有OSM的数据结构,像是点、线、多边形等等,不过一个GIS图层通常只能有一种数据结构,所以必须要决定要读取哪一种。学习任务是要找出酒吧 的位置,所以在导出类型中,选择点(节点)就可以了。假设今天要取得的是道路的资料,那么这边就要选「线集(总是开口)」。接下来在输出图层名称那边填上london_points。 这些点的GIS数据有位置和属性信息2个部分,由于要找的只有酒吧这种设施,所以这两个信息都要加载。因此在底下的导出标签字段中,先单击从数据库加载,然后就可以看到 所有存在london.osm.db里面的属性,最后勾选name和:guilabel:amenity两个标签(注:amenity指福利设施,包含酒吧这种类型的商家)。如果想知道所有的属性意思,请 参阅 OSMTags 。把处理完成后加载QGIS地图中打勾,就可以按下确定。

回到QGIS主画面中就可以看到有个叫做london_points的新图层出现了。这个图层含有这个窗口下所有的OSM数据库中的点信息,所以还必须要挑出标明为酒吧的点。右键按下london_points图层然后开启属性表格。

可以发现有些点的amenity属性字段中是写着pub,所以要按下:guilabel:`使用表示式选取图征`的按钮…

输入表达式“amenity”=‘pub’,然后按下确定。

在QGIS画布上,搜寻的结果已经变成黄色了。再使用右键按下london_points图层然后选择存盘选取区域为…(注:新的QGIS版本中,本选项已经与存盘为…合并)。

在储存向量图层为…的窗口中,把新档案命名为london_pubs.shp,其他选项使用默认设定(注:如果有的话,要勾选储存仅选取的图征),确认一下加入储存档案至地图中应该要是开启的,最后按下确定。

现在QGIS画布上又多了一个london_pubs图层,而london_points图层已经用不着,可以关掉了。

伦敦酒吧的Shapefile到这里总算制作完成。选择识别图征工具然后点选任一个点就可以查看其属性信息。

发表评论

邮箱地址不会被公开。 必填项已用*标注