应用“按优先级减去结点”规则
在配置“按优先级减去结点”规则之前,必须检查逻辑示意图数据集中是否存在执行规则所必需的逻辑示意图结点要素类,以及该要素类是否与将要指定该规则的逻辑示意图模板相关联。
在深入了解“按优先级减去结点”规则配置之前,需要先了解一些该规则的专用术语:
- “减去的结点”是指图示内容不再包含在最终生成的逻辑示意图中的结点。
- “目标结点”是指在减去结点之前与被减去的结点连接在一起的结点,这些结点用于重新连接与被减去的结点关联的链接,从而在减去结点后保留网络拓扑。
- 如果一个被减去的结点具有 N 条连接,则需要创建 (N - 1) 条链接以连接目标结点。这些链接是超跨度链接。用于连接减去的结点与目标结点的链接是生成示意图中的减去的链接。该链接并未实际显示在生成示意图中,但其相关属性会在每一条 (N - 1) 条超跨度链接中显示。
通过“按优先级减去结点”规则,可以在移除给定逻辑示意图结点要素类实现的全部或某些特定结点并且将原来连接这些已移除结点的链接重新连接到目标结点以保持拓扑之后,生成简化的逻辑示意图。
减去的结点是由给定的逻辑示意图结点要素类实现的结点,这些减去的结点将不包含在最终结果示意图中。可以选择减去由指定逻辑示意图结点要素类实现的所有结点,或仅减去通过下列各项过滤出的部分结点:
- 适用于该逻辑示意图结点要素类所关联的真实要素类/对象表的 SQL 过滤器
- 基于其连接数的限制(即基于连接这些结点的链接的条数的限制)
- 专门为确定减去哪些结点而开发的扩展条件
- 待减去结点的附属逻辑示意图链接上的任何特定逻辑示意图属性,或与指定逻辑示意图链接要素类(即,用于实现连接待减去候选结点的链接的逻辑示意图链接要素类)相关联的真实要素类的任何字段
例如,该规则可以减去以下类型的结点:
- 具有两个连接的指定逻辑示意图要素类的结点
- 由逻辑示意图要素类实现的与特定字段值相符的结点
- 所连接的链接与扩展条件检测出的特定属性值相符的结点
- 所有连接的链接的相关真实要素具有相同特定属性并且所有相关要素的该属性都具有相同值的结点
- 同时检测这四种条件类型的结点
以下步骤重点介绍了对“按优先级减去结点”的规则属性页的配置,只要在“规则”选项卡工具条上单击“规则属性”按钮,并保证该选项卡中已添加了这样的“按优先级减去结点”规则,就会显示此页。要了解如何在“规则”选项卡中添加新规则项以及如何显示“规则属性”页面,请参阅指定逻辑示意图模板的逻辑示意图规则主题。
对于刚刚添加到“规则”选项卡的“按优先级减去结点”规则,如果单击“规则”选项卡工具条上的规则属性按钮 ,将打开下图所示的规则属性 对话框:
-
在描述字段中输入对规则的描述。
该描述字符串将显示在相关规则项的“规则”选项卡中,在逻辑示意图生成和更新期间也会显示,以便告知用户规则正在执行中。
-
在选择要减去的逻辑示意图结点要素类下拉列表中选择要减去的逻辑示意图结点要素类的名称。
从该下拉列表中可获取与逻辑示意图模板关联的所有逻辑示意图结点要素类。
当规则配置进行到此步骤时,基于所选逻辑示意图结点要素类的所有逻辑示意图结点都被配置为待减去的结点。
-
如果希望减去结点之后,连接被减去结点的链接上仍然显示折点,请选中保留折点复选框。
选中该复选框时,折点仍显示在减去的结点位置。
注:该选项适用于未完成布局设计的逻辑示意图、通过地理坐标显示逻辑示意图要素的逻辑示意图,以及逻辑示意图链接和初始折点一同显示的逻辑示意图。对于在配置完路径结点减去规则之后设计布局或更新的逻辑示意图,不会在减去的结点位置添加任何折点来保持保存的布局。
-
如果要对指定的逻辑示意图结点要素类指定 SQL 过滤器,以便只减去某些结点,请执行以下操作:
-
单击关联要素/对象类的 SQL 过滤器区域右侧的编辑按钮。
将打开 SQL 查询 对话框。
-
构建所需的 SQL 表达式。
该过滤操作的作用对象是指定逻辑示意图结点要素类所关联的要素类或对象类中存储的字段。
-
单击确定。
将关闭 SQL 查询 对话框,并且刚刚指定的 SQL 过滤器会自动显示在关联要素/对象类的 SQL 过滤器区域中。
然后,会使用指定的 SQL 过滤器来确定一部分要减去的逻辑示意图候选结点。未验证 SQL 过滤器的结点在规则执行期间不会被减去。
-
单击关联要素/对象类的 SQL 过滤器区域右侧的编辑按钮。
-
在减去结点时使用的结点连接限制部分,根据待减去的逻辑示意图候选结点所连接的链接数量来指定是减去所有这些候选结点,还是仅减去部分候选结点:
- 如果要减去所有逻辑示意图候选减去结点,请选择无连接限制。
- 如果要根据其连接数目,即根据连接这个结点的链接的数目来减去逻辑示意图候选减去结点,请选择连接限制:
- 如果要减去无连接的链接的结点,请选中减去带 0 个连接的结点复选框(系统默认选中)。
- 如果要减去所有仅带一个已连接链接的结点,请选中减去带 1 个连接的结点复选框(系统默认未选中)。
- 如果要减去所有仅带两个已连接链接的结点,请选中减去带 2 个连接的结点复选框(系统默认选中)。
- 如果要减去所有带三个或三个以上已连接链接的结点,请选中减去带 2 个以上连接的结点复选框(系统默认未选中)。
注:可选中多个复选框。例如,同时选中减去带 0 个连接的结点和减去带 2 个连接的结点复选框(默认值),可以在同一规则执行过程中减去无连接的结点以及带两个已连接链接的结点。
-
要确定待减去的结点,也可以根据针对待减去结点的逻辑示意图附属链接配置的逻辑示意图属性,或这些附属链接所关联的真实要素/对象中存储的字段指定一个约束。必须在连接的链接属性部分指定此约束:
- 选中使用属性名称复选框。
-
输入要使用的逻辑示意图属性或字段的名称。
对于每个连接到待减去结点候选项的逻辑示意图链接,该规则首先会在逻辑示意图链接中搜索使用此名称的逻辑示意图属性。如果未检测到使用此名称的逻辑示意图属性,该规则会搜索与该逻辑示意图链接关联的 GIS 要素的同名字段。仅当检测到的属性或字段对于连接的所有链接存在相同值时,才会减去该结点。
-
也可以指定特定的扩展条件来过滤出候选减去结点。要使用这种条件,必须在扩展条件部分配置参数:
- 选中使用扩展条件复选框。
- 从下拉列表中选择所需扩展条件。
“按优先级减去结点”规则的扩展条件是用于实现 esriSchematic.ISchematicNodeReductionExtended 接口的组件。
注:如果未在计算机中注册自定义扩展减去条件,则“按优先级减去结点”规则属性对话框中的“使用扩展条件”下拉列表以及“使用扩展条件”复选框将处于不可用状态。
扩展条件组件可根据所有其他指定的减去选项来处理候选减去结点。它可以确定在规则执行后最终每个结点是否被减去。如果存在某种连接到减去的结点的链接,则它也可以确定重新连接所有此类链接的目标结点。
-
定义减去指定结点后如何保留网络的拓扑 - 即指定将用于重新连接那些曾经连接到减去的结点的链接的目标结点。
- 如果想要将连接到减去的结点的最近结点作为目标结点,请选择选择最近的结点。这种情况下,目标检测仅取决于减去的结点到和其连接的结点之间的距离。最近的结点成为目标结点,该过程与该目标结点所基于的逻辑示意图要素类无关。警告:
结点间的距离是根据结点的地理位置计算出来的。如果在指定新的“按优先级减去结点”规则之后更新逻辑示意图,请切记更新之前在逻辑示意图中所看到的结点位置可能并非地理位置。这种情况下,如果逻辑示意图中所包含的结点没有显示在其地理坐标中,那么检测到的目标结点可能不会显示为最近的结点。
- 如果想要根据逻辑示意图结点要素类的优先级检测目标结点(将连接减去的结点所连接的链接),请选择选择最高优先级的结点。
这种情况下,对于每个与减去的结点连接的结点来说,减去规则在检测正确的目标结点之前会分析目标结点优先级选项部分中指定的选项。
- 如果所有与减去的结点连接的结点中仅有一个结点属于优先级最高的逻辑示意图要素类,那么该结点将成为目标结点。
- 如果所有与减去的结点连接的结点中,没有任何结点属于优先级最高的逻辑示意图要素类,则规则将检查是否存在属于定义为第二级优先级的逻辑示意图要素类的结点,以此类推。
- 如果所有连接减去的结点的结点中,有多个结点属于优先级最高的逻辑示意图要素类,规则将根据多选择解决方案子部分中指定的选项检测目标结点。
目标结点优先级选项部分中的参数是高级参数。
- 按递减优先级排序的逻辑示意图要素类列表区域中包含与逻辑示意图模板相关联的所有逻辑示意图要素类,这些逻辑示意图要素类按优先级顺序排列 - 即从优先级最高的逻辑示意图要素类到优先级最低的逻辑示意图要素类。要更改某逻辑示意图要素类优先级,请单击并拖动该逻辑示意图要素类条目到列表中的其他级别,然后放下。注:
当某逻辑示意图链接要素类优先级较高时,规则会考虑与减去的结点相连接的链接,而不是与减去的结点相连接的结点。目标结点是由连接到减去的结点的逻辑示意图链接要素类实现的链接的起始结点或末端结点。
- 多选择解决方案子部分用于在几个候选目标结点发生冲突时(即当几个结点都属于优先级最高的逻辑示意图要素类时),指定如何选择目标结点的规则。
如果在选中当两个以上结点发生冲突时为其选择最近结点的逻辑示意图要素类部分选中与这些互相冲突的结点相关联的逻辑示意图要素类,则选中如果具有相同优先级的两个结点间发生冲突,则选择最近的结点复选框,会将距减去的结点最近的结点作为目标结点。
注:如果未在选中当两个以上结点发生冲突时为其选择最近结点的逻辑示意图要素类部分选中实现互相冲突结点的逻辑示意图要素类,则不会减去要减去的结点。
例如,如果优先级最高的 X 逻辑示意图要素类的两个结点连接到同一个要减去的结点,则这两个 X 结点都是目标结点的候选项。这种情况下,如果选中如果具有相同优先级的两个结点间发生冲突,则选择最近的结点复选框,且在选中当两个以上结点发生冲突时为其选择最近结点的逻辑示意图要素类列表中选中与 X 相关的逻辑示意图要素类复选框,那么距减去的结点最近的 X 结点将作为目标结点。如果只选中如果具有相同优先级的两个结点间发生冲突,则选择最近的结点选项,却未在选中当两个以上结点发生冲突时为其选择最近结点的逻辑示意图要素类列表中选中与 X 相关的逻辑示意图要素类复选框,那么按优先级减去规则将不会试图为 X 的候选目标结点解决冲突,也不会移除要减去的结点。
- 如果想要将连接到减去的结点的最近结点作为目标结点,请选择选择最近的结点。这种情况下,目标检测仅取决于减去的结点到和其连接的结点之间的距离。最近的结点成为目标结点,该过程与该目标结点所基于的逻辑示意图要素类无关。
- 单击确定以关闭规则属性 对话框。