当前位置: 首页 > news >正文

您需要了解的有关 GIS 中基于位置和基于属性的查询的所有信息

在 GIS 中,查询使我们能够从空间数据中提取信息。QGIS 中的两种基本查询类型是基于位置(空间)的查询和基于属性的查询。在本文中,我将尝试详细解释这两种查询。

基于位置的查询

基于位置的查询是一种操作,允许我们根据一个图层中的要素与另一个图层中的要素的空间关系来选择它们。这些查询利用的是地理要素之间的几何属性和空间关系,而不是它们的属性值。

基于位置的查询的关键空间关系如下:

  • 相交:共享任意部分空间的要素
  • 包含:完全包含另一个特征的特征
  • 不相交:不共享任何空间的特征
  • 相等:空间上相同的要素
  • 接触:共享边界点但没有内部点的特征
  • 重叠:共享空间但也有不重叠部分的特征
  • 交叉:相互交叉的特征
  • 内部:特征完全位于另一个特征内

QGIS 提供了几种执行基于位置的查询的工具:

  • 按位置选择:此工具根据要素与其他图层中要素的空间关系来选择要素。它会创建一个临时选择,可用于可视化或进一步分析。

没有任何

图 1:按位置选择工具窗口

  • 按位置提取:类似于按位置选择,但创建一个仅包含符合空间标准的特征的新图层。

没有任何

图 2:按位置提取工具窗口

  • 空间连接:根据要素之间的空间关系将一个图层的属性与另一个图层的属性进行组合。

没有任何

图 3:空间连接工具窗口

GIS 软件中基于位置的查询的典型工作流程包括

  1. 准备数据层(确保两个层都在同一个坐标参考系(CRS)中)
  2. 创建空间索引(这是可选的,但建议用于大型数据集)
  3. 定义要查询的空间关系(相交、内部等)
  4. 设置搜索距离(缓冲区)等附加参数
  5. 执行查询
  6. 处理结果(可视化、导出、进一步分析等)
基于属性的查询

基于属性的查询是允许用户根据存储在属性表中的值来选择图层中要素的操作。与关注空间关系的基于位置的查询不同,基于属性的查询会检查与地理要素相关的非空间数据。

GIS 软件使用类似 SQL 的表达式来执行基于属性的查询。这些表达式的范围从简单的比较到复杂的逻辑运算:

  1. 简单比较:等于(=)、不等于(!=)、大于(>)、小于(<)等。
  2. 逻辑运算符: AND、OR、NOT
  3. 字符串操作: LIKE、ILIKE(不区分大小写)、字符串连接
  4. 数学运算:加法、减法、乘法等。
  5. 函数:日期函数、字符串函数、数学函数等。

QGIS 提供了几种执行基于属性的查询的工具:

  • 按表达式选择:此工具允许用户创建类似 SQL 的表达式来根据属性值选择要素。

没有任何

图 4:按表达式选择工具窗口

  • 查询生成器:此工具在图层属性中可用,可创建一个永久过滤器,仅显示符合条件的功能。
  • 字段计算器:主要用于创建或更新属性,但也可用于基于属性的复杂操作。

没有任何

图 5:字段计算器工具窗口

  • 属性表过滤器:可以在属性表中直接应用快速过滤器。

QGIS 中基于属性的查询的典型工作流程包括:

  1. 了解属性数据:检查属性表以了解可用字段和值
  2. 制定查询表达式:创建定义选择条件的类似 SQL 的表达式
  3. 执行查询:使用适当的工具(按表达式选择、查询生成器等)
  4. 处理结果:可视化、导出、进一步分析或与其他选择相结合
基于位置的查询示例 #1:查找距离主要道路 500 米范围内的所有学校

我们来举几个例子。假设城市规划人员需要确定哪些学校可能受到主要道路交通噪音和污染的影响,以便设置隔音屏障或实施交通平静措施。我们将以比利时布鲁塞尔为例进行研究。

首先,我们需要获取数据。所有示例都将使用 OSM 数据。我们可以使用 QGIS 中的 QuickOSM 插件轻松下载 OSM 数据。您可以查看我的另一篇博客文章,了解如何使用 QuickOSM 工具。

对于第一个查询,我们选择“highway”作为键,选择“primary”、“secondary”和“trunk”作为值。

没有任何

图 6:使用 QuickOSM 插件下载高速公路

对于第二个查询,我们选择“amenity”作为键,“school”作为值。

没有任何

图 7:使用 QuickOSM 插件下载位于布鲁塞尔的学校

顺便说一下,我们需要在分析之前重新投影所有将要使用的数据。在本例中,我将所有数据重新投影到比利时兰伯特 2008(EPSG:3812)投影坐标系。

现在我们将在主要道路周围创建 500 米的缓冲区,因为我们想要找到距离主要道路 500 米以内的学校。

没有任何

图 8:缓冲区工具窗口

没有任何

图 9:500 米缓冲区

现在我们可以识别与道路缓冲区相交的学校。

没有任何

图 10:按位置选择工具

运行该工具后,与道路缓冲区相交的学校将被突出显示。

没有任何

图 11:与缓冲区相交的学校颜色为黄色

无论您使用基于位置还是基于属性的查询,都可以将所选要素导出到新图层中。在本例中,我们可以在图层窗口中右键单击“学校”图层,然后单击“导出”->“将所选要素另存为”。

基于位置的查询示例 #2:识别易受洪水侵袭的住宅区

洪水对我们的生命和财产都可能造成严重危害。世界上大多数城市都应该采取行动,尽量减少其影响。这些行动的第一步是确定易受洪水影响的地区。

对于第一个查询,我们选择“landuse”作为键,“residential”作为值。对于第二个查询,我们选择“natural”作为键,“water”作为值。

没有任何

图12:使用QuickOSM工具下载位于布鲁塞尔的居民区和水体

现在,我们将在水体周围创建一个 200 米的缓冲区,并假设与这些 200 米缓冲区相交的住宅区存在洪水风险。这个 200 米的范围可能会根据您研究的区域而变化,需要深入研究。本例中我们以 200 米为例。

没有任何

图 13:在水体周围创建了 200 米缓冲区

没有任何

图 14:通过使用“按位置选择”工具并选择“相交”参数,识别出与水体缓冲区相交的居住区

基于属性的查询示例 #1:识别历史街区的旅游设施

假设旅游部门需要创建一张专门的地图,展示历史街区内不同类别的旅游设施(餐厅、酒店、博物馆等),以提升游客体验并支持当地企业。让我们来创建这张地图。

首先,我们来识别一下布鲁塞尔的旅游设施。我们输入“tourism”(旅游)作为键,并将值部分留空,这样就能获取所有与旅游相关的特征。

没有任何

图15:布鲁塞尔的旅游设施

我们来看一下属性表。

没有任何

图 16:“旅游”字段显示设施类型

让我们筛选博物馆并在地图上突出显示它们。

没有任何

图 17:按表达式选择工具

没有任何

图 18:博物馆被突出显示

没有任何

图 19:在属性表中可以看到突出显示的博物馆

最后,让我们对数据进行分类,以便区分不同的便利设施类型。

没有任何

图 20:颜色是随机的,仅用于演示

没有任何

图 21:不同类型的便利设施以不同的颜色显示

基于属性的查询示例 #2:分析道路网络质量和可达性

在最后一个示例中,我们假设交通规划人员需要评估道路网络的质量和可达性,以确定需要改进和优先维护的区域。首先,让我们使用 QuickOSM 获取道路数据。

没有任何

图21:布鲁塞尔的道路

现在我们要过滤掉‘主要的’那些。

没有任何

图 22:我们过滤主要道路

除此之外,我们还可以根据路面质量对道路进行筛选。我们可以写出下图中的表达式来筛选质量较差的道路。

没有任何

图 23:我们过滤碎石路、未铺砌道路和土路

或者,我们可以根据道路 Shapefile 属性表中的两个不同字段进行过滤。例如,我们可以识别限速低于 50 公里/小时的次要道路。为此,我可以输入以下 SQL 表达式:

高速公路 = '次要' 并且最大速度 < 50

没有任何

图 24:限速低于 50 公里/小时的次要道路

在这篇博文中,我尝试解释基于位置的查询和基于属性的查询,它们是 GIS 的基础之一。掌握它们对于有效地从数据中提取信息至关重要。更进一步,可以连接并使用 PostgreSQL/PostGIS 进行高级查询。

http://www.dtcms.com/a/291711.html

相关文章:

  • [pdf epub]《软件方法》电子书202507更新下载
  • thinkphp入门
  • 企业级IIS配置手册:安全加固/负载均衡/性能优化最佳实践
  • C++性能优化擂台技术文章大纲
  • Axios Token 设置示例
  • MySql 运维性能优化
  • React 项目性能优化概要
  • Vue-21-利用Vue3的axios+Python的flask实现前后端交互功能
  • 精密全波整流电路(二)
  • 以太网基础⑥ ZYNQ PS端 基于LWIP的TCP例程测试
  • uniapp “requestPayment:fail [payment支付宝:62009]未知错误“
  • 渗透第2次作业
  • 从零开始:Vue 3 + TypeScript 项目创建全记录
  • C++刷题常用方法
  • uniapp请求封装上传
  • DeepSPV:一种从2D超声图像中估算3D脾脏体积的深度学习流程|文献速递-医学影像算法文献分享
  • 从0到1:盲盒抽卡小程序开发全流程解析
  • 浙江大学PTA程序设计C语言基础编程练习题1-5
  • 【Python办公】Excel工作表拆分工具(按照sheet进行拆分-calamine-极速版)
  • Linux系统安装Bash自动补全(bash-completion)
  • 【React-Three-Fiber实践】放弃Shader!用顶点颜色实现高性能3D可视化
  • Python关于pandas的基础知识
  • 使用Minio后处理图片回显问题
  • Linux部署.net Core 环境
  • Claude 4 系列模型深度解析:引领 AI 编程与智能体应用新纪元
  • UE5 UI 控件切换器
  • Web3介绍(Web 3.0)(一种基于区块链技术的去中心化互联网范式,旨在通过技术手段实现用户对数据的自主权、隐私保护和价值共享)
  • 【Qt开发】Qt的背景介绍(四)
  • MatterPort3D 数据集 | 简介 | 多途径下载
  • Aspose.Cells 应用案例:法国能源企业实现能源数据报告Excel自动化