搜寻和下载开放街图资料

警告

This tutorial is now obsolete. A new and updated version is available at 搜索和下载OpenStreetMap数据(QGIS3)

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

内容说明

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

操作流程

  1. 首先我们要安装 OSM Place SearchOpenLayers plugin 这 2 个附加元件才能顺利完成本操作。关于如何安装附加元件,请看 使用附加元件。(译注:前者有可能被归类在实验性的附加元件的类别下。)

../_images/1155.png
  1. OSM Place Search 会在 QGIS 中安装一个叫做 OSM place search… 的面板。

../_images/2107.png
  1. OpenLayers plugin 会在 附加元件 或是 网路 的选单中新增一个选项。这个外挂让你可以在 QGIS 中直接浏览网路上提供地图的不同来源。现在我们就来试试看下载开放街图的底图,选择 附加元件(或网路) ‣ OpenLayers plugin ‣ Add OpenStreetMap layer (译注:实际的位置和名称,可能会随着你的 QGIS 版本的不同而有些微变化)。

../_images/360.png
  1. 接着 QGIS 中就可以看到世界地图了。

注解

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

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

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

../_images/639.png
  1. 选择 向量 ‣ OpenStreetMap ‣ 下载资料,以下载目前显示在画布上的地图区域。

../_images/739.png
  1. 下载开放街道图资料 对话框中,选择 从地图画面取得座标 以获得地图的下载范围,再选择输出位置。这里我们把下载档案命名为 london.osm

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

注解

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

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

../_images/1037.png
  1. 最后一步是把刚才的档案汇到 SpatialLite 图层内,就可以在 QGIS 内进行分析。请开启 向量 ‣ OpenStreetMap ‣ 汇出拓扑至SpatialLite

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

../_images/1238.png
  1. 回到 QGIS 主画面中就可以看到有个叫做 london_points 的新图层出现了。这个图层含有这个视窗下所有的 OSM 资料库中的点资讯,所以我们还必须要挑出标明为酒吧的点。右键按下 london_points 图层然后 开启属性表格

../_images/1337.png
  1. 你可以发现有些点的 amenity 属性栏位中是写着 pub,所以我们要按下 :guilabel:`使用表示式选取图征`的按钮…

../_images/1436.png
  1. 输入表达式 “amenity” = ‘pub’,然后按下 确定

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

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

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

../_images/1829.png
  1. 伦敦酒吧的 Shapefile 到这里总算制作完成。选择 识别图征 工具然后点选任一个点就可以查看其属性资讯。

../_images/1923.png