如果逻辑示意图要素之间过于紧密或过于疏远,以致于无法以所需比例显示符号和标注,那么网络逻辑示意图将难以阅读。可以应用一组逻辑示意图布局阐明并归一化网络逻辑示意图中要素之间的间距。
逻辑示意图布局类型
系统提供多种逻辑示意图布局算法,以对网络逻辑示意图内容进行布局。
布局类别有四种:树布局、优化布局、逻辑示意图布局和其他布局。
树布局
树布局会对逻辑示意图要素进行等级排列并显示一个树结构。以下为树布局:
优化布局
优化布局包括以下三种用于优化逻辑示意图边的逻辑示意图布局:
逻辑示意图布局
逻辑示意图布局包括多种类型的布局。其中大多数布局允许将网络逻辑示意图中在视觉上接近的要素分离开来,同时尽可能保留这些要素的位置,例如,格网布局、线性分派布局、空间分派布局和力导向布局。其他两个布局(旋转树布局和压缩布局)可用于优化逻辑示意图中的空间。
- 压缩布局
此布局算法会在试图保持相对定位的同时,将逻辑示意图要素压缩至逻辑示意图的中部。该布局所处的位置允许其在算法执行期间构建作为超节点移动的交汇点组。
- 力导向布局
此布局算法使用物理模拟绘制图形,方法是通过标识在其中尝试使能量局部最小化的约束系统。该算法会搜索约束系统的一种平衡状态,即各个逻辑示意图交汇点所对应的一个位置,在该位置处,每个交汇点的总约束为零。
- 格网布局
此算法可对与某一磁力格网相关的逻辑示意图交汇点进行定位,该磁力格网的像元大小由像元宽度和像元高度参数值确定。
- 线性分派布局
此布局算法可用于在看起来过于紧密、重叠或重合的逻辑示意图交汇点之间添加空间。该算法会沿连接边移动交汇点。这种沿边的移动是基于交汇点的当前和相对位置以及布局参数实现的。
- 主环布局
此布局算法用于在主环周围排列逻辑示意图要素,并对连接到沿主环放置的每个逻辑示意图交汇点的逻辑示意图要素子集进行等级布局。
- 相对主线布局
此布局将在活动逻辑示意图中沿平行的直线排列网络逻辑示意图要素,其中所有连接的边都具有相同的属性值。还将放置源自这些线的分支,使它们相对于直线的方向以及相对于原始距离的比例和两者的关系保持不变。
- 旋转树布局
此布局算法可根据指定的角度旋转与当前在输入网络逻辑示意图图层中设置的透视交汇点相关的一个或多个树。
- 空间分派布局
此布局算法可逐步分离明显接近重叠状态的逻辑示意图交汇点,分离的依据是交汇点的当前位置以及所指定的平移系数。
其他布局
此类别包括以下特定算法:
逻辑示意图布局详细信息
使用地理处理工具来执行逻辑示意图布局算法。每个布局都有其自己的参数,这些参数可以控制逻辑示意图要素之间的间距、边几何、保持内容要素的位置等。一些布局还会考虑可能在布局执行前已放置在逻辑示意图中的逻辑示意图标记。
应用逻辑示意图布局
可以使用地理处理工具来执行逻辑示意图布局。
应用逻辑示意图布局的方法有两种:
- 手动
如果您希望将布局应用到逻辑示意图地图视图中当前显示的现有网络逻辑示意图,请使用此方法。在这种情况下,布局可以应用于网络逻辑示意图的全部内容或部分内容(所选逻辑示意图要素的子集)。
- 自动生成逻辑示意图
将在逻辑示意图模板上设置此方法,以便对基于该模板的所有逻辑示意图进行动态布局。布局将始终应用于基于该模板的逻辑示意图的全部内容。在这种情况下,可以在模板上配置多个布局。将按照在模板上配置布局的条目顺序对其进行链接。布局 #1 在逻辑示意图中网络要素的初始几何上运行,布局 #N 在执行算法 #(N-1) 生成的几何上运行。
布局参数
将根据每个布局的唯一参数来运行逻辑示意图布局。
每个布局的每个参数都有其默认值,如有必要,可对其进行修改。可以根据需要对每个模板的这些默认参数值进行预设。
在地理处理窗格中加载布局算法工具时,除非将执行布局的输入网络逻辑示意图基于相应模板,已针对该模板显式配置布局算法的其他参数值,否则其将使用其默认参数值。
如果使用 Python 脚本在逻辑示意图上运行布局算法,则不必指定各个算法参数值。如果未指定参数值,则将此算法添加到模板后,布局将使用算法参数默认值或者在输入逻辑示意图基于的模板上设置的算法参数值来运行布局。
在服务器上以异步模式运行逻辑示意图布局
默认情况下,所有逻辑示意图布局都将在客户端和服务器上同步执行。但是,根据逻辑示意图大小、布局算法的复杂性和为服务指定的超时(默认为 600 秒),某些布局执行可能会超出服务超时,从而使操作失败。在这种情况下,可能需要异步应用布局。
在启用在服务器上以异步模式运行选项的情况下应用逻辑示意图布局时,对于已编辑逻辑示意图,该过程将在客户端上保持为同步;即,在布局执行完成之前,不可以在该逻辑示意图上处理任何其他操作。但是,可以将服务器资源专用于运行超时较长的布局算法,从而在服务器上异步执行该过程。此模式可在异步布局完成运行时防止客户端阻止其他操作,从而使您能够在此期间创建或处理其他逻辑示意图。
注:
仅当使用已在 公共设施网络 10.7.1 ArcGIS Server 发布的 Enterprise 服务时,此异步模式才适用。
对内容要素进行布局
大多数布局算法使用特定选项保留容器,该选项用于控制内容要素的算法执行。使用保留容器选项时,请注意以下几点:
- 选中此选项后,布局算法将在逻辑示意图的顶层图上执行,并保留以下内容的相对位置:
- 与结构交汇点相关的所有内容要素或其结构设备内的设备程序集或程序集逻辑示意图面容器。
- 与其逻辑示意图线性容器周围的线性容器相关的所有内容要素。这些内容将与线性容器一起绘制
- 如果未选中此选项,则将针对逻辑示意图中的内容要素和非内容要素执行布局算法。
逻辑示意图标记和布局
在执行之前,一些布局会考虑逻辑示意图中可能存在的逻辑示意图标记。您可以在逻辑示意图中使用四种类型的逻辑示意图标记:根交汇点标记、端交汇点标记、透视交汇点标记和障碍标记。
根交汇点标记
树布局算法会从某些被视为树根的交汇点开始处理。如果逻辑示意图由断开连接的网络部分组成,则树布局将系统地构建断开连接的树,每个树从一个根交汇点开始。
如果将逻辑示意图基于的模板配置为运行“设置根交汇点”规则,则可以在逻辑示意图生成或更新时设置根交汇点标记。也可以使用设置根交汇点工具将交汇点设置为根,以使树布局从这些交汇点开始处理。
如果在逻辑示意图中未设置根交汇点,则树布局将随机设置所需的交汇点。
在以下情况下,树布局会将根设置在以下位置处:
- 径向树布局将根交汇点置于圆心,并从同心圆中的此根开始排列子树。每个圆对应一个级别。
- 主线树布局从指定根交汇点构建其主线。
- 智能树布局从指定根交汇点开始构建其树。
如果逻辑示意图由多个断开连接的图形组成,或者逻辑示意图中指定了多个根交汇点,则将使用以下位置:
- 径向树布局将根交汇点置于具有虚构圆心的第一个同心圆周围。
- 主线树布局和智能树布局沿垂直于树方向的同一条轴对齐根交汇点,以使其对于每个断开连接的图形或者图形的不同树分支,显示为不同的起点。
端交汇点标记
对于主线树布局,还需要考虑端交汇点(主线上的最后一个交汇点)。
与根交汇点一样,这些特定的交汇点可以使用设置端交汇点工具进行设置或者由算法决定。在后一种情况下,每个端交汇点是从根交汇点开始的最长分支的最后一个交汇点,即最长分支会考虑沿该分支的边的数量。
透视交汇点和障碍标记
应用旋转树布局之前,您必须使用设置透视交汇点工具标记要围绕其进行旋转的交汇点。此外,如果您希望控制旋转布局,并防止其超出特定逻辑示意图要素执行,则可能需要使用设置障碍工具在这些要素上设置障碍标记。