执行空间查询(QGIS3)¶
空间查询是许多类型的 GIS 分析的核心。通过空间查询,您可以通过图层与另一图层的要素之间的空间关系(相交,包含,接触等)选择图层中的要素。 在 QGIS 中,可以通过 按位置选择 和 按位置提取 处理工具使用此功能。
内容说明¶
我们将为澳大利亚墨尔本市处理2个数据层。给定城市中酒吧和酒吧的数据层以及所有地铁站的位置,我们希望找出地铁站500米以内的所有酒吧和酒馆。
你还会学到这些¶
选择适当的投影并重新投影矢量数据。
创建缓冲区。
使用geopackage(.gpkg)数据格式。
获取数据¶
墨尔本市的 Open Data Platform 提供了该市的许多GIS就绪数据集。
从 Metro Metros Melbourne 下载 https://data.melbourne.vic.gov.au/Transport-Movement/Metro-Train-Stations-with-Accessibility-Informatio/mgkp-67ad 具有可访问性信息的 Metro Train Stations 数据集。 以 原始 格式导出数据。
下载 Bars and pubs, with patron capacity <https://data.melbourne.vic.gov.au/Economy/Bars-and-pubs-with-patron-capacity/mffi-m9yn> 的酒吧和酒馆土地使用和就业普查(CLUE)数据集 。 将数据导出为 CSV 。
为了方便起见,你可以直接用下边的链接下载这方面的数据集:
metro_stations_accessbility.zip
Bars_and_pubs__with_patron_capacity
数据来源: [CITYOFMELBOURNE]
操作流程¶
在 QGIS 浏览器中找到
metro_stations_accessbility.zip
文件并将其展开。选择metro_stations_accessbility.shp
文件并将其拖到画布上。 一个新的metro_stations_accessbility
层将在 Layers 面板中加载。
酒吧和酒馆的数据层为 CSV 格式。要将其加载到 QGIS 中,请转到 导入电子表格或CSV文件(QGIS3) )
。 (有关导入CSV文件的更多详细信息,请参阅
在 Data Source Manager | Delimited Text 对话框中,浏览并选择下载的
Bars_and_pubs__with_patron_capacity.csv
文件作为 File name 。X字段 和 Y字段 应该分别自动选择为x坐标
和y坐标
。点击 Add 。
您将看到一个新的
Bars_and_pubs__with_patron_capacity
图层添加到 Layers 面板中。 这两个输入层都在地理坐标参考系统(CRS)EPSG:436 WGS84
中。为了执行空间分析,建议使用投影坐标参考系统(CRS)。因此,我们现在将这两层都重新投影到适当的区域 CRS ,以最大程度地减少失真,并允许我们以距离为单位(例如米)而不是度数进行工作。转到 。
搜索并找到
工具。双击以启动它。
选择
Bars_and_pubs__with_patron_capacity
作为输入层。点击 Target CRS 旁边的 Select CRS 按钮。
为分析选择投影坐标系时,首先要寻找的是感兴趣区域的区域CRS。对于澳大利亚, Map Grid of Australia (MGA) 2020 是基于UTM的网格用于本地和区域映射的系统。 墨尔本位于UTM区域55,因此我们可以选择
GDA 2020 / MGA区域55 EPSG:7855
CRS 。
注解
如果不确定所工作区域的本地 CRS ,则基于WGS84基准为UTM区域选择CRS是安全的选择。您可以使用 UTM Grid of Worlds 找到您所在地区的UTM区域号。
接下来,点击 Reprojected 旁边的 … 按钮,然后选择
保存到GeoPackage
。 Geopackage 是建议的开放数据格式空间数据,并且是QGIS3的默认数据交换格式。单个 GeoPackage.gpkg
文件可以包含多个矢量和栅格图层。
将地理包命名为
spatialquery
并单击 Save 。
当提示您输入图层名称时,输入
bars_and_pubs
,然后单击 OK 。单击 Run 以重新投影图层。
窗口将切换到 Log 标签,您将看到算法运行并创建新的输出层
bars_and_pubs
。
现在,我们将重新投影
metro_stations_accessbility
层。 在 Reproject layer 窗口中,切换回 Paramters 标签。选择metro_stations_accessbility
作为输入层。保持相同的目标 CRS 。接下来,点击 Reprojected 旁边的 … 按钮,然后选择保存到GeoPackage
。选择相同的输出文件spatialquery
(请记住,单个地理包文件可以包含多个图层,因此我们将新图层保存到相同的地理包文件中)。 输入metro_stations
作为 Layer name 。点击 Run 。
回到 QGIS 主窗口中,您会在 Layers 面板中看到两个新图层 :
bars_and_pubs
和metro_stations
。您可以关闭原始图层的可见性。现在,我们准备进行空间查询。由于我们有兴趣在距离地铁站500m的地方选择酒吧和酒馆,因此第一步是在地铁站周围创建一个代表我们搜索区域的缓冲区。在 Processing Toolbox 中搜索并找到 工具,然后双击以启动它。
在 Buufer 对话框中,选择
metro_stations
作为 Input layer 。将500
米设置为 Distance 。将输出保存到相同的spatialquery
地理包中,然后输入metro_stations_buffers
作为 Layer name 。点击 Run 。
您会在 Layers 面板中看到一个新的
metro_stations_buffers
图层。现在,我们可以找出bars_and_pubs
层中的哪些点落入了metro_stations_buffers
层中的多边形内。从 Processing Toolbox 中找到 工具,然后双击以启动它。
注解
按位置提取 将使用空间查询中的匹配要素创建一个新图层。如果只想选择功能,请使用 按位置选择 工具。
在 Extract by location 对话框中,选择
bars_and_pubs
作为 Extract features from 。检查相交
作为几何谓词。通过与的功能进行比较,将metro_stations_buffers
设置为 By comparing to the features from 。将输出保存到spatialquery
地理包中,作为selected
层。点击 Run 。
处理完成后,您将看到
选定的
图层添加到 Layers 面板。请注意,该层仅包含来自bars_and_pubs
的点,它们位于缓冲区多边形内。
我们的分析已经完成。您可能会注意到缓冲区多边形看起来是椭圆形的。这是因为我们的 Project CRS 仍设置为 EPSG:4326 WGS84 。为了更好地可视化结果,您可以转到
并选择我们用于分析的GDA 2020 / MGA zone 55 EPSG:7855
。设置为此 CRS 后,缓冲区将以正确的形状显示。