Answers:
Kadeem的答案将阻止您的功能可见,但它们仍将存在,如果您试图识别单个船舶航迹,则可能会误点击不可见的功能。您似乎需要做的就是定义您的图层,以便好像这些功能不存在一样。在ArcGIS中,这通常可以使用“定义查询”来完成,在QGIS中,等效命令是“图层子集”。转到图层的“属性”,在“常规”选项卡下,在底部是“要素子集”框,单击其下方的按钮以弹出查询生成器:
查询生成器将帮助您创建SQL查询,以定义图层中的哪些要素应实际显示在项目中。该查询未返回的所有要素都将变为不可见的,不仅在视觉上而是全部变为不可见(它们不会从数据中删除,当然,它们只是定义不存在,直到您删除“图层子集”查询为止)。
VALUE
为的位置添加新字段'VALUE',
,然后使用IN查询将该字段复制并粘贴到查询框中。
现在,仅使用选择和基于规则的符号即可实现。
这需要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规则。
Record and Attributes
中找到它Expression String Builder
。另外,您无需再输入图层名称,也不要忘记在is
和之间加下划线selected
。这是QGIS 3及更高版本的示例:is_selected()
。
克里斯蒂娜,我假设您的表格中有一个属性,可让您识别一条轨道?例如:
point_id | track_id
------------+------------
1 | 15
2 | 15
5 | 24
6 | 24
7 | 24
如果打开属性表,则可以找到一个epsilon符号(在下图中,第4个)。
这使您可以键入表达式;例如:
"track_id" = 24
确认后,将选择满足表达式的所有行(即:属于带有track_id
X 的轨道的所有点)。如果然后单击放大镜按钮,则QGIS会缩放到地图画布中的所选内容。选定的特征(您的情况下的点)将突出显示。
您可以做的就是应用基于规则的样式。这样,您可以使用给定的符号或标记显示单独的航迹,并通过为它们指定“不可见”标记来“不显示”所有其他点。下面的屏幕截图(来自“图层属性”的一部分)说明了其工作原理:
track_id
track_id
24值的所有点实际上,所有点仍然存在(将它们变为白色不会使渲染花费更少的时间),但至少您的眼睛可以放松!