在QGIS中仅在地图上显示所选要素?


30

不确定是否存在该选项,但是新的QGIS版本在其他地方隐藏了很多东西,而且看起来如此简单,以至于我确信以前可以这样做。

我有相当多的船舶航迹数据集。现在,我想分析单个航迹(由具有point2one的点层制成)-但是,它是如此拥挤,以至于很难查看单个航迹。我不想将每个轨道保存为新图层,所以我想知道是否可以在属性表中选择一个轨道并在地图上仅显示一个轨道/隐藏其他轨道?

Answers:


33

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

在此处输入图片说明

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


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

这就是答案。丹丹!
kadéem

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

解决了,但不清楚为什么。我保存了所做的更改,然后QueryBuilder Button可用...
Patrick Van Den Noortgaete 2015年

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

15

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

这需要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规则。

在此处输入图片说明


1
这正是我想要的-感谢您的回答
geobar 16-10-13

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

我加了一张照片。
HeikkiVesanto

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

2
在QGIS 3及更高版本中,此功能是内置的。您可以在Record and Attributes中找到它Expression String Builder。另外,您无需再输入图层名称,也不要忘记在is和之间加下划线selected。这是QGIS 3及更高版本的示例:is_selected()
Thequerist'Oct

12

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

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

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

在此处输入图片说明

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

"track_id" = 24

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


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

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

在此处输入图片说明

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


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

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

Kadeem,这很简单但有效-好主意,非常感谢!
克里斯蒂娜2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.