目录

上一个主题

4.2. 空间属性关系

下一个主题

4.4. 计算线段的长度和基本统计


本教程由OSGeo中国中心维护

4.3. 属性搜索

4.3.1. 按字符串搜索

1.字符串搜索

属性搜索是一种从属性元组中提取满足任意条件的记录的函数。在这里,我们使用在全球地理基本数据来解释属性搜索。

首先启动QGIS,我们首先加载数据,点击 Layer ‣ Add Layer ‣ Add Vector Layer 加载 "wcountry.shp" 数据, 使用层 "wcountry.shp" 的属性表进行字符串搜索。在搜索前我们打开属性表,先观察下数据的属性。 接下来,使用"wcountry.shp"的属性表中的 "FCNAME" 属性名称,搜索检索所在的“中国”的记录。 右键单击 Layers 的 "wcountry.shp" 以显示菜单,然后选择 "Open Attribute Table" 。 显示 "Attribute Table" 窗口时,单击工具栏上的 Select features using an expression 图标。 当出现 "Select by Expression" 窗口时,双击列表中 Fields and Values 中的 "FCNAME" 。 然后, "FCNAME" 显示在 "Expression" 输入字段中。单击 运算符= 按钮。此外,单击 Fields and Values 中的所有值, 当在 "FCNAME" 输入的数据显示在列表中时,双击“中国”。作为这些操作的结果,在窗口左侧的输入字段中输入“PROVINCENA='中国'”。 注意这里的“中国”要是在输入字段中双击获得,而不是自己手动输入,我们自己手动输入是无法进行字符串搜索的。 接下来单击 Select Features 按钮,地图上选择的统计区域颜色会发生变化,如 图 4.12

_images/image151_xc1.png

图 4.12 字符串搜索设置

确认已选择统计区域后,请检查属性表。如果查看"wcountry.shp"的属性表,可以看到在 "FCNAME" 项目中输入“中国”的记录被选中。 要取消此选择,请单击 "Attribute Table" 窗口工具栏中的 Deselect all 图标。完成上述操作后, 单击 "Select by Expression" 窗口中的 Close 按钮。

  1. 模糊搜索

我们引入模糊字符串搜索作为下一个例子。上述搜索条件是它与字符串“中国”完全匹配。 但是,接下来我们搜索的条件是包含在字符串中的某处名称。

首先还是单击 "Attribute Table" 窗口工具栏上的 Select features using an expression 图标以显示 "Select by Expression" 窗口。 双击此窗口列表中 Fields and Values 中的 "FENAME" ,然后在列表中的"Operators"中双击 LIKE 。 确认 "FENAME LIKE" 表示在窗口左侧的进口字段中,然后输入 "NAME" ,单击 Select Features 按键。 然后,在属性表的字段项 "FENAME" 中,选择含有字符串 "name" 的统计区域,并在相关区域的地图上进行变更, 如 图 4.13

_images/image152_x5c.png

图 4.13 模糊搜索

搜索完成后,单击 "Attribute Table" 窗口工具栏上的 Deselect all 图标,然后单击 "Select by Expression" 窗口中的 Close 按钮。

4.3.2. 数字搜索

  1. 按一个条件搜索

到目前为止,已经执行了使用字符串的属性搜索,现在我们使用数值之间的条件来执行属性搜索。 为此,使用属于 "wcountry.shp" 的属性数据的来设置属性搜索的条件,可以统计出"面积、人口"。 接下来单击 "Attribute Table" 窗口滚动条中的 Select features using an expression 图标以显示 "Select by Expression" 窗口。 双击此窗口列表中 Fields and Values 中的"POP",然后双击 Expression 中 "Operators>=" 。当窗口左侧的输入字段中 显示 "POP" >= 时,输入 "10000" 。确认此输入字段中显示 "POP"> =10000,然后单击 Select Features 按钮, 选择人口密度为10000人或更高的统计区域,并在地图上受影响区域的颜色会发生变化,如 图 4.14

_images/image153_xpd.png

图 4.14 数字搜索

  1. 按多种条件搜索

此外,为了执行复杂的属性搜索,除了人口密度为10000或更大的条件之外,还可以添加面积或更多的条件。 因为根据数据的属性特点,我们选取的条件为人口密度大于10000,面积大于100的国家,我们来看下,根据这样的条件进行搜索会有什么样的结果。 在 "Select by Expression" 窗口的输入字段中输入"POP"> =10000,双击列表"Operators"中的"AND",然后在列表中选择 "Fields and Values" 。 双击 Fields and Values 中的"SHAPE_AREA"。然后,在列表的 Operators 中双击 "Operators> =" ,并在窗口左侧的输入字段中输入"1000"。 确认"POP">10000 AND "SHAPE_AREA"> =1000,然后单击 Select Features 按钮。则该区域的颜色会在地图上发生变化, 如 图 4.15

_images/image154_xq9.png

图 4.15 按多种条件上搜索

在这种情况下,我们提取了满足两个条件的统计区域,但应使用两个条件中的一个,如人口密度为10000 或更高或面积高于1000的统计区域。 如果要提取满足的区域,请输入 "OR" 而不是 "AND" 。完成搜索后,单击 "Attribute Table" 窗口工具栏中的 Deselect all 图标, 然后单击 "Select by Expression" 窗口中的 Close 按钮。