QGIS - 规则通过查询查找穿越城市的道路

问题描述

在 QGIS 的同一层上,我有高速公路(主要、次要等)和城市边界(地点 = 城市)。我只想显示/标记穿过城市的主要道路。我尝试类似 "highway" = 'tertiary' AND "place" = 'city' 但没有物品,当 "highway" = 'tertiary' 单独返回 6 个元素。 或者也许是另一种方式?如何找到交叉元素?

解决方法

由于您的两个目标变量位于同一层,因此似乎是查询问题。

您是否检查过您要查找的条件是否确实存在于您的数据集中?

如果是这样,就像 QGIS 中的许多事情一样,基于规则的标签使用 S 结构化 Query L 语言 (SQL),即强类型,以获取您要查找的数据。因此,重要的是要确定数据集的数据类型,并注意“列”的双引号模式和“值”的单引号模式(如果它们是 varchar 或字符串),就像您在示例。

此外,检查您在基于规则的标签中尝试匹配的值是否与数据属性表中显示的值完全相同。无论如何,如果您的数据集很大,您可以使用这种方法作为解决方法:

"highway" ilike '%tertiary% and "place" ilike '%city%'

ilike 运算符与查询中的大写或小写没有区别,这意味着如果您有一个值“Tertiary”,无论如何都可以获取数据。 此外,正如我所说的,通配符 % 可以找到在任何位置具有字符串 'tertiary' 和 'city' 的任何值,这可以避免由于字符串前后有空格而引起的很多麻烦。>