过滤器显示地图中要素图层的焦点视图。通过限制图层中要素的可见性,可显示比较重要的内容。例如,您可在犯罪图层上创建过滤器,以便在地图上仅显示纵火案。此过滤视图可显示纵火案的案发模式,从而帮助警察局阻止纵火企图的再次发生。
作为地图作者,您还可以设置交互式过滤器,用来帮助用户自行探索数据。通过提供关于图层中可用值的提示和提示文本,可以引导用户使用他们可能要应用于要素的其他过滤器。例如,可在学校图层中设置交互式过滤器,以便用户可以选择查看小学、中学或高中。默认情况下,该图层显示小学。通过阅读您所提供的提示和提示文本,用户就会知道他们可将值更改为中学或高中,以便查看地图上不同类型的学校。
使用现有过滤器
如果地图要素图层包含过滤器,则会看到过滤后的要素视图。只有满足过滤器条件的要素才会在地图中显示。例如,地图制作者可能已在包含小学、中学和高中的学校图层上设置了过滤器,使其仅显示小学(例如,类型为小学)。在这种情况下,地图显示中就会过滤掉中学和高中。如果地图作者在学校图层上设置了交互式过滤器,那么您就可以将值更改为中学,随即地图上就会只显示中学。
您可以访问过滤器来查看表达式,在过滤器中更改任何交互式表达式,以及编辑过滤器。所做的任何更改只会应用于地图的视图(只有地图的所有者才可以保存更改)。
- 在地图查看器中打开包含过滤图层的地图。
- 单击详细信息,然后单击内容。
- 浏览至包含现有过滤器的要素图层,然后点击过滤器 。
- 更改、编辑或查看过滤器。
- 在更改选项卡中,可将新值应用于现有交互式过滤器。为表达式输入新值,然后单击应用过滤器按钮。地图显示将进行更新,以显示要素图层的新过滤视图。该选项卡还会在过滤器中显示友好版本的表达式。如果过滤器中存在交互式表达式,则会显示该选项卡。如果过滤器不包含交互式表达式,则您只会看到查看选项卡,而不会看到过滤器中友好版本的表达式。
- 在编辑选项卡中,可以更新表达式。有关如何更新表达式的详细信息,请参阅“创建过滤器”部分。
创建过滤器
可在具有关联属性数据的托管要素图层、ArcGIS Server 要素服务图层和 ArcGIS Server 地图服务图层上创建过滤器;无法在地图标注或从文件导入的要素上创建过滤器。只有满足表达式条件的要素才会在地图中显示。
- 在地图查看器中打开地图。
- 单击详细信息,然后单击内容。
- 浏览至需要过滤的要素图层,然后单击过滤器 。
- 创建定义表达式。
- 表达式采用的一般形式为<字段名> <运算符> <值、字段或唯一值>。
- 您可以创建一个表达式、多个表达式或一组或多组表达式。组是满足某种条件的表达式的集合,例如,类型为小学,入学人数至少为 400。
- 如果创建了多个表达式,需选择要在图层中显示与全部表达式还是任一表达式匹配的要素。全部表示您指定的所有条件都必须为真。任一表示只要有一个表达式为真即可显示对应要素。
- 对于表达式的字段部分,单击字段下拉箭头,然后从列表中选择要查询的字段。
- 对于表达式的运算符部分,单击运算符下拉箭头,然后从列表中选择运算符。
- 如果想要根据特定值进行过滤,则选择值,然后在字段中输入值。输入框会根据字段类型的不同而变化。
- 如果想要对一个字段中的值和另一个字段中的值进行比较,则选择字段,单击下拉箭头,然后选择表达式的字段。
- 如果想要根据为表达式选择的字段中的特定值进行过滤,可选择唯一值,然后从字段中选择唯一值。
- 如果根据值或唯一值创建了表达式,则可设置交互式表达式。不能在基于字段的表达式中请求提供值。选中请求值左侧的复选框。在提示字段中输入有关该值的信息,然后在提示文本字段中输入提示文本。
- 要删除过滤器中的表达式,请单击表达式右侧的删除按钮 。
- 单击应用过滤器即可在地图上启用过滤后的视图。
- 要撤消过滤器并显示图层中的所有要素,可单击移除过滤器。
过滤器注意事项
- 您可在具有关联属性数据的托管要素图层、ArcGIS Server 要素服务图层和 ArcGIS Server 地图服务图层上创建过滤器。不可以在从文件导入的地图标注或要素上创建过滤器。
- 要更改字段名,通过弹出窗口配置编辑字段别名。
- 您可以根据值或唯一值创建交互表达式。您不能根据字段创建交互表达式。
- 不要在值中添加特殊字符,除非这些特殊字符是值的一部分。例如,城市为“New York”无法找到名为 New York 的要素。在该示例中,使用城市为 New York 代替。
- 如果您的字段包含编码值,则该值列表将显示字段服务所定义的所有编码值。其中可能也包含未作为要素存在于图层中的值。唯一值列表显示图层中的所有要素(可能是服务中值的子集)。
- 如果您具有多个表达式,根据您是否将其分组为集合以及分组方式将得出不同的结果。例如,如果您所创建的过滤器的以下所有表达式均为真,则过滤器会选择私立中学和私立高中:类型为中学或类型为高中(这是一个组)且类别为私立(这是一个单独的表达式)。如果您所创建的过滤器的以下所有表达式均为真,则过滤器会选择所有公立和私立中学以及私立高中:类型为高中且类别为私立(现在,这是一个组)或类型为中学(这是一个单独的表达式)。