过滤器显示地图中要素图层的焦点视图。 通过限制图层中要素的可见性,可显示比较重要的内容。 例如,您可在犯罪图层上创建过滤器,以便在地图上仅显示上个月内发生的纵火案。 通过根据犯罪类型和日期过滤犯罪图层,可以显示近期火灾的案发模式,从而帮助警察局阻止纵火企图的再次发生。
作为地图作者,您还可以设置交互式过滤器,用来帮助用户自行探索数据。 通过提供关于图层中可用值的提示和提示文本,可以引导用户使用他们可能要应用于要素的其他过滤器。 例如,可在学校图层中设置交互式过滤器,以便用户可以选择查看小学、中学或高中。 默认情况下,该图层显示小学。 通过阅读您所提供的提示和提示文本,用户就会知道他们可将值更改为中学或高中,以便查看地图上不同类型的学校。
使用现有过滤器
如果地图要素图层包含过滤器,则会看到过滤后的要素视图。 只有满足过滤器条件的要素才会在地图中显示。 例如,地图制作者可能已在包含小学、中学和高中的学校图层上设置了过滤器,使其仅显示小学(例如,类型为小学)。 在这种情况下,地图显示中就会过滤掉中学和高中。 如果地图作者在学校图层上设置了交互式过滤器,那么您就可以将值更改为中学,随即地图上就会只显示中学。
您可以访问过滤器来查看表达式,在过滤器中更改任何交互式表达式,以及编辑过滤器。 所做的任何更改仅应用于地图的视图(只有地图的所有者才可以保存更改)。
- 在 Map Viewer 中打开包含过滤图层的地图。
- 单击详细信息,然后单击内容。
- 浏览至包含现有过滤器的要素图层,然后单击过滤器 。
- 更改、编辑或查看过滤器。
- 在更改选项卡中,可将新值应用于现有交互式过滤器。 为表达式输入新值,然后单击应用过滤器按钮。 地图显示将进行更新,以显示要素图层的新过滤视图。 该选项卡还会在过滤器中显示友好版本的表达式。 如果过滤器中存在交互式表达式,则会显示该选项卡。 如果过滤器不包含交互式表达式,则您只会看到查看选项卡,而不会看到过滤器中友好版本的表达式。
- 在编辑选项卡中,可以更新表达式。 有关如何更新表达式的详细信息,请参阅下一部分。
创建过滤器
可在托管要素图层、托管要素图层视图、ArcGIS Server 要素服务图层和 ArcGIS Server 地图服务图层的相关表上创建过滤器;无法在地图标注或从文件导入的要素上创建过滤器。 只有满足过滤器表达式条件的要素才会在地图中显示。
以下步骤说明了如何在 Map Viewer 中应用过滤器。 对于要素图层,您还可以在要素图层项目页面的可视化选项卡上应用过滤器。
- 在Map Viewer中打开地图。
- 单击详细信息,然后单击内容。
- 浏览至需要过滤的要素图层,然后单击过滤器 。
- 创建定义表达式。
- 表达式采用的一般形式为<字段名> <运算符> <值、字段或唯一值>。
- 您可以创建一个表达式、多个表达式或一组或多组表达式。 组是满足某种条件的表达式的集合,例如,类型为小学,入学人数至少为 400。 要创建一组表达式,请单击添加集合。
- 如果创建了多个表达式,需选择要在图层中显示与全部表达式还是任一表达式匹配的要素。 全部表示您指定的所有条件都必须为真。 任一表示只要有一个表达式为真即可显示对应要素。
- 对于表达式的字段部分,单击字段下拉箭头,然后从列表中选择要查询的字段。
- 对于表达式的运算符部分,单击运算符下拉箭头,然后从列表中选择运算符。
- 如果想要根据特定值进行过滤,请选择值,然后在字段中输入值。 输入框会根据字段类型的不同而变化。
- 如果想要对一个字段中的值和另一个字段中的值进行比较,则选择字段,单击下拉箭头,然后选择表达式的字段。
- 如果想要根据为表达式选择的字段中的特定值进行过滤,可选择唯一值,然后从字段中选择唯一值。
注:
日期字段不支持唯一值过滤器。
- 如果根据值或唯一值创建了表达式,则可设置交互式表达式。 不能在基于字段的表达式中请求提供值。 单击请求值框。 在提示字段中输入有关该值的信息,然后在提示文本字段中输入提示文本。
- 要删除过滤器中的表达式,请单击表达式右侧的删除按钮 。
- 单击应用过滤器即可在地图上启用过滤后的视图。
提示:
如果为托管要素图层创建了过滤器,您可以选择应用过滤器并缩放至来启用已过滤视图并重绘当前地图以显示过滤内容。
- 要素图层拥有者和组织管理员可以将过滤器保存到图层中。 单击更多选项 ,然后单击保存图层。
通过图层保存过滤器时,访问该图层的所有人都会看到过滤的数据。 如果未将过滤器保存到图层中,则仅在地图中应用过滤器。
- 要撤消过滤器并显示图层中的所有要素,可单击移除过滤器。
如果已将过滤器保存到图层中,则需要再次保存图层才能从图层中移除过滤器。
按日期过滤
您可以按日期过滤某些要素图层。 例如,您可能想要显示在特定日期范围内发生地震的位置。
使用最近和非最近运算符,您也可以将动态日期过滤器应用于托管要素图层来显示相对于当前日期发生的事件 - 例如,在最近 5 天内编辑的所有要素 - 而无需每天手动更新过滤器。 其他可用于日期过滤器的运算符包括 is on、is not on、is before、is after、is between 和 is not between。
注:
按日期过滤可用于支持标准查询的托管要素图层和 ArcGIS Server 10.2 及更高版本的服务图层。
- 在Map Viewer中打开地图。
- 单击详细信息,然后单击内容。
- 浏览至需要过滤的要素图层,然后单击过滤器 。
- 执行以下操作为日期过滤器创建定义表达式:
- 从字段下拉菜单中选择一个日期字段。
- 从运算符下拉菜单中选择一个运算符,例如:在、早于和最近等。
注:
最近和非最近运算符仅适用于托管要素图层,不适用于 ArcGIS Server 要素服务。
- 根据您想要过滤日期的方式执行以下操作之一:
- 如果想要根据特定日期值进行过滤,则单击值,然后输入值。 根据您选择的运算符,可能需要在日历中指定一个日期(或两个日期)、手动输入一个或两个日期或指定以天、周或月为单位的时间范围。
- 如果想要对一个字段中的值和另一个字段中的值进行比较,请单击字段,然后从下拉菜单中选择字段。
- 可根据需要添加更多表达式或集合。
- 操作完成后,单击应用过滤器。
过滤器注意事项
使用过滤器时,请牢记以下内容:
- 您可在托管要素图层、托管要素图层视图、ArcGIS Server 要素服务图层和 ArcGIS Server 地图服务图层的相关表上创建过滤器。 不可以在从文件导入的地图标注或要素上创建过滤器。
注:
应用于托管要素图层和托管要素图层视图的过滤器不限制图层数据的访问权限。 任何具有图层访问权限的用户都可以移除过滤器并访问所有数据。
- 要更改字段名,通过弹出窗口配置编辑字段别名。
- 您可以根据值或唯一值创建交互表达式。 您不能根据字段创建交互表达式。
- 不要在值中添加特殊字符,除非这些特殊字符是值的一部分。 例如,City is "New York" 无法找到名为 New York 的要素。 在该示例中,使用 City is New York 代替。
- 如果您的字段包含编码值,则该值列表将显示字段服务所定义的所有编码值。 其中可能也包含未作为要素存在于图层中的值。 唯一值列表显示图层中的所有要素(可能是服务中值的子集)。
- 如果唯一值的数量超出图层允许的限制,则唯一值选项不可用。 相反,您可以使用值选项来明确输入用于过滤器的值。
- 如果您具有多个表达式,您是否将表达式分组为集合以及分组方式将影响过滤器表达式定义和您在地图中看到的内容。 在下面的例子中,所有初中或高中的私立学校都将在地图上进行绘制。
这是因为值对于表达式集中的所有表达式均为真(类型为初中或类型为高中),对于表达式集和附加表达式也均为真(类别为私立)。
如果您创建过滤器以使值对于表达式集合的每一部分均为真(类型为高中和类别为私立)但对于表达式集合或附加表达式也可以为真(类型为初中),则过滤器会选择所有公立和私立的初中以及私立高中。