搜寻和下载开放街图资料

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

内容说明

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

操作流程

  1. 首先我们要安装 OSM Place SearchOpenLayers 这 2 个附加元件才能顺利完成本操作。关于如何安装附加元件,请看 使用附加元件 (译注:前者有可能被归类在实验性的附加元件的类别下。)
../_images/139.png
  1. OSM Place Search 会在 QGIS 中安装一个叫做 OSM place search... 的面板。
../_images/224.png
  1. OpenLayers plugin 会在 Plugin 的选单中新增一个选项. T这个外挂让你可以在 QGIS 中直接浏览网路上提供地图的不同来源。
现在我们就来试试看下载开放街图的底图,选择 附加元件(或网路) Plugins ‣ OpenLayers plugin ‣ Add OpenStreetMap layer.
../_images/315.png
  1. 接着 QGIS 中就可以看到世界地图了。

注解

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

../_images/410.png

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

../_images/510.png
  1. 然后底图就会移到伦敦市附近。使用 放大 钮可以更进一步放大到你想看的范围,在本教学中,我们就把它移到伦敦市中心附近吧,如图所示。
../_images/69.png
  1. 选择 Vector ‣ OpenStreetMap ‣ Downlod data,以下载目前显示在画布上的地图区域。
../_images/79.png
  1. Download OpenStreetMap data 对话框中,选择 From map canvas 取得 Extent ,再选择输出位置。 这里我们把下载档案命名为 london.osm.
../_images/89.png
  1. 下载下来的 .osm 档是一种称之为 OSM XML 的格式。 首先我们要把它转换成 QGIS 比较容易消化的另一种格式。选择 Vector ‣ OpenStreetMap ‣ Import topology from XML.

注解

从现在开始, OSM Place Search 搜寻面板已经不需要了, 可以直接按叉叉关掉。 如果之后你要重新使用这个面板,可以在 View ‣ Panels ‣ OSM place search... (Windows) 或者 Settings ‣ Panels ‣ OSM place search... (Linux).

../_images/99.png
  1. Input XML file 的地方填上刚才下载的 london.osm 。然后在 Output SpatiaLite DB file 那边把档案 命名为 london.osm.db. ,在按下确定之前, Create connection (SpatiaLite) after import 有被勾选。
../_images/109.png
  1. 最后一步是把刚才的档案汇到 SpatialLite 图层内,就可以在 QGIS 内进行分析。请开启 Vector ‣ OpenStreetMap ‣ Export topology to SpatialLite.
../_images/1113.png

12. london.osm.db 档案内含有所有 OSM 的资料结构,像是点、线、多边形等等, 不过一个 GIS 图层通常只能有一种资料结构,所以我们必须要决定要读取哪一种。 我们的任务是要找出酒吧的位置,所以在 Export type 中,选择 Point (nodes) 就可以了。假设今天你要取得的是道路的资料,那么这边 就要选 Polylines (open ways) 接下来在 Output layer 那边填上 ``london_points`. 这些点的 GIS 资料有位置和属性资讯 2 个部分, 由于我们要找的只有 name 这种设施, 所以这两个资讯都要载入。因此在底下的 Exported tags 栏位中,先按一下 Load from DB 。 然后你就可以看到所有存在 london.osm.db 里面的属性,最后勾选 nameamenity tags. 如果你想知道所有的属性意思, 请参阅 OSM Tags 。 把 Load into canvas when finished QGIS 地图中 打勾,就可以按下 OK.

../_images/1211.png

13. 回到 QGIS 主画面中就可以看到有个叫做 london_points 的新图层出现了。 这个图层含有这个视窗下 ALL 的 OSM 资料库中的点资讯,所以我们还必须要挑出标明为酒吧的点。 右键按下 london_points 图层然后 Open Attribute Table.

../_images/1310.png

14. 你可以发现有些点的 amenity 属性栏位中是写着 pubs , 所以我们要按下 Select features using an expression 的按钮.

../_images/149.png
  1. 输入表达式 “amenity” = ‘pub’ ,然后按下 Select.
../_images/159.png
  1. 在 QGIS 画布上,搜寻的结果已经变成黄色了。再使用右键按下 london_points 图层然后选择 Save Selection As....
../_images/168.png

17. 在 Save vector layer as... 的视窗中, 把新档案命名为 london_pubs.shp, 其他选项使用预设设定,确认一下 Add saved file to map 应该要是开启的,最后按下 OK.

../_images/177.png
  1. 现在 QGIS 画布上又多了一个 london_pubs 图层,而 london_points 图层已经用不着,可以关掉了。
../_images/188.png
  1. 伦敦酒吧的 shapefile 到这里总算制作完成。 选择 Identify 工具然后点选任一个点就可以查看其属性资讯。
../_images/196.png