【发布时间】:2021-07-06 23:44:01
【问题描述】:
在 QGIS 的同一层上,我有高速公路(主要、次要等)和城市边界(地点 = 城市)。我只想显示/标记穿越城市的主要道路。我尝试类似
"highway" = 'tertiary' AND "place" = 'city'
但没有物品,什么时候
"highway" = 'tertiary'
单独返回 6 个元素。
或者也许是另一种方式?如何找到交叉元素?
【问题讨论】:
在 QGIS 的同一层上,我有高速公路(主要、次要等)和城市边界(地点 = 城市)。我只想显示/标记穿越城市的主要道路。我尝试类似
"highway" = 'tertiary' AND "place" = 'city'
但没有物品,什么时候
"highway" = 'tertiary'
单独返回 6 个元素。
或者也许是另一种方式?如何找到交叉元素?
【问题讨论】:
由于您的两个目标变量都在同一层,这似乎是一个查询问题。
您是否检查过您正在寻找的条件是否真的存在于您的数据集中?
如果是这样,就像 QGIS 中的许多东西一样,基于规则的标签使用 Structured Query Language (SQL),即强类型,以获取您要查找的数据。因此,重要的是要确定数据集的数据类型,并注意“列”的双引号模式和“值”的单引号,如果它们是 varchar 或字符串,就像你已经在你的例子。
此外,检查您在基于规则的标签中尝试匹配的值是否与它们在数据属性表中的显示完全相同。无论如何,如果您的数据集很大,您可以使用这种方法作为解决方法:
"highway" ilike '%tertiary% and "place" ilike '%city%'
ilike 运算符与查询中的大写或小写没有区别,这意味着如果您有值“Tertiary”,则无论如何都可以获取数据。
此外,正如我所说,通配符% 可以查找在任何位置具有字符串 'tertiary' 和 'city' 的任何值,这可以避免由于字符串前后的空格而引起的很多麻烦。
【讨论】: