¶
空间查询是许多类型的 GIS 分析的核心。空间查询允许您通过图层中的要素与另一个图层中的要素的空间关系(相交、包含、触摸等)来选择图层中的要素。在QGIS中,此功能可通过按位置选择和按位置提取处理工具获得。
任务概述
我们将为澳大利亚墨尔本市使用 2 个数据层。给定城市中酒馆和酒馆的数据图层以及所有地铁站的位置,我们希望找出地铁站 500 米范围内的所有酒馆。
您将学习的其他技能
-
选择合适的投影并重新投影矢量数据。
-
创建缓冲区。
-
使用地理包 (.gpkg) 数据格式。
获取数据
墨尔本市的开放数据平台为该市提供了许多 GIS 就绪数据集。
下载墨尔本地铁列车的地铁火车站无障碍信息数据集。以原始格式导出数据。
下载酒吧和酒馆,以及墨尔本市土地利用和就业普查 (CLUE) 的顾客容量数据集。将数据导出为 CSV。
为方便起见,您可以从以下链接直接下载数据集的副本:
metro_stations_accessbility.zip
Bars_and_pubs__with_patron_capacity
数据来源:[墨尔本市]
程序
-
在QGIS浏览器中找到该文件并将其展开。选择文件并将其拖动到画布上。将在“图层”面板中加载一个新图层。
metro_stations_accessbility.zip
metro_stations_accessbility.shp
metro_stations_accessbility
-
酒吧和酒馆的数据图层采用 CSV 格式。要在 QGIS 中加载它,请转到图层 ‣ 添加图层 ‣ 添加分隔文本图层...。(有关导入 CSV 文件的更多详细信息,请参阅导入电子表格或 CSV 文件 (QGIS3) )
-
在数据源管理器中 |分隔文本对话框中,浏览并选择下载的文件作为文件名。X 字段和 Y 字段列应分别自动选择 和。单击添加。
Bars_and_pubs__with_patron_capacity.csv
x coordinate
y coordinate
-
您将看到一个新图层添加到“图层”面板中。两个输入图层都位于地理坐标参考系 (CRS) 中。要执行空间分析,建议使用投影坐标参考系 (CRS)。因此,我们现在将这两个图层重新投影到适当的区域 CRS,以最大限度地减少变形并允许我们以距离单位(例如米而不是度)工作。转到处理 ‣ 工具箱。
Bars_and_pubs__with_patron_capacity
EPSG:4326 WGS84
-
搜索并找到矢量常规 ‣ 重新投影图层工具。双击以启动它。
-
选择作为输入图层。单击目标 CRS 旁边的选择 CRS 按钮。
Bars_and_pubs__with_patron_capacity
-
为分析选择投影坐标系时,首先要查找的是感兴趣区域的区域 CRS。对于澳大利亚,澳大利亚地图网格 (MGA) 2020 是基于 UTM 的网格系统,用于本地和区域制图。墨尔本属于UTM区55,因此我们可以选择GDA 2020 / MGA区55 EPSG:7855' CRS。
注意
如果不确定所处理区域的本地 CRS,则基于 WGS84 基准面为 UTM 区域选择 CRS 是一个安全的选择。您可以使用世界UTM网格区域找出您所在地区的UTM区域编号。
-
接下来,单击“重新投影”旁边的“...”按钮,然后选择 。Geopackage 是推荐的开放数据格式空间数据,也是 QGIS3 的默认数据交换格式。单个地理包文件可以包含多个矢量和栅格图层。
Save to GeoPackage
.gpkg
-
将地理包命名为,然后单击保存。
spatialquery
-
当系统提示输入图层名称时,输入并单击确定。单击运行以重新投影图层。
bars_and_pubs
-
该窗口将切换到日志选项卡,您将看到算法运行并创建新的输出层。
bars_and_pubs
-
现在我们将重新投影图层。切换回重新投影图层窗口中的参数选项卡。选择作为输入图层。保持相同的目标 CRS。接下来,单击“重新投影”旁边的“...”按钮,然后选择 。选择相同的输出文件(请记住,单个地理包文件可以包含多个图层,因此我们会将新图层保存到同一个地理包文件中)。输入作为图层名称。单击运行。
metro_stations_accessbility
metro_stations_accessbility
Save to GeoPackage
spatialquery
metro_stations
-
返回 QGIS 主窗口,您将看到在“图层”面板中加载了 2 个新图层:和 。您可以关闭原始图层的可见性。现在,我们已准备好执行空间查询。由于我们有兴趣选择地铁站500米范围内的酒吧和酒馆,因此第一步是在地铁站周围创建一个缓冲区,代表我们的搜索区域。搜索并找到 矢量几何 ‣ 缓冲区 工具在 处理工具箱 中,然后双击以启动它。
bars_and_pubs
metro_stations
-
在“缓冲区”对话框中,选择作为输入图层。将米设置为距离。将输出保存到同一地理包,然后输入图层名称。单击运行。
metro_stations
500
spatialquery
metro_stations_buffers
-
您将看到在“图层”面板中加载的新图层。现在,我们可以找出图层中的哪些点落在图层的面内。找到 矢量选择 ‣ 按位置提取 工具来自 处理工具箱 并双击以启动它。
metro_stations_buffers
bars_and_pubs
metro_stations_buffers
注意
按位置提取将使用空间查询中的匹配要素创建新图层。如果只想选择要素,请使用按位置选择工具。
-
在按位置提取对话框中,选择从中提取要素。检查为几何谓词。设置为通过与来自的功能进行比较。将输出作为图层保存到地理包中。单击运行。
bars_and_pubs
Intersect
metro_stations_buffers
spatialquery
selected
-
处理完成后,您将看到添加到“图层”面板的图层。请注意,此图层仅包含落在缓冲区面内的点。
selected
bars_and_pubs
-
我们的分析已经完成。您可能会注意到缓冲区多边形看起来呈椭圆形。这是因为我们的项目CRS仍设置为EPSG:4326 WGS84。为了更好地可视化结果,您可以转到项目 ‣ 属性 ‣ CRS 并选择我们用于分析的内容。设置为此 CRS 后,缓冲区将以正确的形状显示。
GDA 2020 / MGA zone 55 EPSG:7855