不确定是否存在该选项,但是新的QGIS版本在其他地方隐藏了很多东西,而且看起来是如此简单,以至于我确信以前可以这样做。带有航迹的相当大的数据集。我现在要分析单个航迹(由具有point2one的点层制成)-但是,它是如此拥挤,以至于很难查看各个航迹。我不想将每个轨道保存为新图层,所以我想知道是否可以在属性表中选择一个轨道并在地图上仅显示一个轨道/隐藏其他轨道吗?

#1 楼

Kadeem的答案将阻止您的功能可见,但它们仍将存在,如果您试图识别单个船舶航迹,则可能会误点击不可见的功能。您似乎需要做的就是定义图层,以便好像这些功能不存在一样。在ArcGIS中,这通常可以使用定义查询来完成,在QGIS中,等效命令是“图层子集”。转到图层的“属性”,在“常规”选项卡下,在底部是“要素子集”框,单击其下方的按钮以显示查询生成器:



查询生成器将帮助您创建SQL查询,以定义图层中的哪些要素应实际显示在项目中。查询未返回的所有功能都将变为不可见的,不仅在视觉上变为不可见,而且全部变为不可见(当然,它们不会从您的数据中删除,除非删除了图层子集查询,否则它们只是不存在而已定义)。

评论


丹,非常感谢!!!这是我一直在寻找的东西,比我希望的要复杂一些,但是可以解决问题!非常有帮助,谢谢!

–克里斯蒂娜
14年8月27日在16:26

这就是答案。丹丹!

–kadéem
2014年8月28日14:05

奇怪的。前一段时间,我做到了,而且奏效了。现在,我想在另一层上再次执行此操作,“功能子集”框以及QueryBuilder的按钮均显示为灰色!有什么建议吗?

–Patrick Van Den Noortgaete
15年5月12日在6:51



@SimoA。如果数据在Excel中,则可以在其中进行过滤,在将VALUE转换为“ VALUE”的位置添加一个新字段,然后使用IN查询将该字段复制并粘贴到查询框中。

– Dan C
16-10-11在19:47

在QGIS 3.10中,您将在右下角的“图层属性”>“源”>“提供者特征过滤器”部分中找到“查询生成器”。应用子选择后,“图层”面板中图层项后面会出现一个过滤器图标

–kadéem
20年1月7日在8:32

#2 楼

现在,仅使用选择和基于规则的符号即可。

这需要Expression Plus插件(对于QGIS 2.x. 3.0具有内置功能)。

使用以下过滤器创建基于规则的符号系统:

QGIS 3.0+(来自评论家的评论家):

is_selected()


QGIS 2.12- 2.18:

isselected( @layer_name )


或QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )


现在,只有符合此规则的选定功能才可以

还可以为所有未选择的功能设置ELSE规则。



评论


这正是我在寻找的东西-感谢您的回答

– geoobar
16-10-13在14:01

HeikkiVesanto,我在哪里插入此过滤器?

– newGIS
17年8月23日在20:06

我加了一张照片。

– HeikkiVesanto
17年8月24日在8:32

使用QGIS 2.18.14,然后选择起作用的表达式(“ layer_name”)。使用(@layer_name)返回0个结果。

– Techie_Gus
17-12-18 '16:47



在QGIS 3及更高版本中,此功能是内置的。可以在“表达式字符串生成器”的“记录和属性”下找到它。另外,您无需再输入图层名称,也不要忘记在is和selected之间加下划线。这是QGIS 3及更高版本的示例:is_selected()。

–神学家
18-10-2在19:54

#3 楼

克里斯蒂娜,我假设您的表格中有一个属性,可让您识别单个轨道?例如:

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24


如果打开属性表,则可以找到epsilon符号(在下图中,第四个)。



这使您可以键入表达式;例如:

"track_id" = 24


确认时,将选择满足您表达式的所有行(即:属于带有track_id X的轨道的所有点)。如果然后单击放大镜按钮,则QGIS会缩放到地图画布中的所选内容。选定的特征(您的情况下的点)将突出显示。


您可以做的就是应用基于规则的样式。这样,您可以使用给定的符号或标记显示单独的航迹,并通过为它们指定“不可见”标记来“不显示”所有其他点。以下屏幕截图(来自“图层属性”的一部分)解释了其工作原理:


规则1:将给定标记应用于track_id值为24的所有点

>规则2:将给定的标记(带有白色填充和白色边框的圆...)应用于所有不满足track_id值24的点。



实际上,所有点仍然存在(将它们变为白色不会使渲染花费更少的时间),但至少您的眼睛可以放松!

评论


非常感谢您的回答Kadeem!我知道选择功能,并且效果很好,但是,实际上我在一个很小的区域中有500,000个点,仅突出显示我要查找的轨迹是不够的,地图仍然太拥挤和混乱。您知道是否有可能封锁所有未选中的点或类似的东西吗?

–克里斯蒂娜
2014年8月27日14:05

我在该行下的另一个选项中编辑了答案。我想这会帮到你。

–kadéem
2014年8月27日15:53

Kadeem,这很简单但有效-很棒的主意,非常感谢!

–克里斯蒂娜
2014年8月27日在15:58