学校层是覆盖层,并且受
SCHNUM
(学校编号)值的驱动。这可以正常工作,也就是说可以正确驱动页面。但是,如何仅显示来自其他层(在这种情况下是学生点层)的要素,这些要素与相应的
SCHNUM
值匹配覆盖层中的当前功能? 我还想将覆盖层(学校)切换为“隐藏”,并使用相同的技术仅从重复的学校层中显示当前学校。
那里是这里的演示文稿,暗示了通过
$atlasfeatureid
使用图层渲染规则设置,但我不知道它是如何工作的。我还发现了这个Bug跟踪器页面,该页面显示了此工作原理,但同样,我无法使它适用于我的数据:
#1 楼
确实,您需要使用基于规则的符号系统来实现您想要的。您需要为要显示的内容创建一个规则,并为所有其他内容创建ELSE规则。
在ELSE规则中,取消选中符号复选框以使其不可见。
从coverage层隐藏其他功能
仅显示当前图集功能的规则如下:
$id = @atlas_featureid
注意:相信@atlas_featureid变量是2.12语法。我认为在2.8.x中,您需要使用一个名为$ atlas_featureid的函数。
隐藏当前图集功能之外的功能
配方与以前相同,一个否则,规则将隐藏功能,一个将显示。
对于您的特定问题,您似乎拥有一个名为SCHNUM的共享属性。在这种情况下,规则可以是:
"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')
在您特定的情况下:
"SCHNUM" = attribute( @atlas_feature , 'SCHNUM')
注意区别在两个SCHNUM之间。第一个双引号表示存储学校代码的字段的每个当前图层要素的值。第二个用单引号引起来的字符串是存储学校代码的coverage层的名称。
注意:我再次认为@atlas_feature变量是2.8版中的“新”东西。 x您将需要使用函数$ atlas_feature
评论
与计算交叉点相比,Alexandre的解决方案非常有效。但是,我要显示的是一个分类图层(专题图)。在这种情况下如何应用您的解决方案?
–viniciovcl
20年6月27日在18:29
那是另一个问题。答案涉及几个步骤。询问并ping我,我将尝试提供答案。
–亚历山大·内托(Alexandre Neto)
20年6月27日在20:57
评论
即使有问题,也很抱歉将此作为答案发布。是否有为此推荐的视频教程?我试着跟进,总以某种方式总是迷路。有同样的问题。