逻辑示意图布局

如果逻辑示意图要素之间过于紧密或过于疏远,以致于无法以所需比例显示符号和标注,那么网络逻辑示意图将难以阅读。 可以应用一组逻辑示意图布局阐明并归一化网络逻辑示意图中要素之间的间距。

逻辑示意图布局类型

系统提供多种逻辑示意图布局算法,以对网络逻辑示意图内容进行布局。

布局类别有四种:树布局、优化布局、逻辑示意图布局和其他布局。

树布局

树布局会对逻辑示意图要素进行等级排列并显示一个树结构。 以下为树布局:

  • 主线树布局

    此布局算法会沿主线对输入网络逻辑示意图中的交汇点和边进行等级排列,并将其相关分支置于该主线的左侧、右侧或两侧。

  • 径向树布局

    此布局算法会对逻辑示意图要素进行等级排列,并根据指定的半径参数将它们置于径向树中。 此算法需有一个用作圆心的根交汇点,从此根交汇点开始围绕同心圆(每个圆对应一个级别)排列子树。

  • 智能树布局

    此布局算法会对逻辑示意图要素进行等级排列,并根据指定的方向和间距将它们置于智能树中。

优化布局

优化布局包括以下三种用于优化逻辑示意图边的逻辑示意图布局:

  • 遵循角度布局

    此布局算法可沿指定对齐方向逐步移动逻辑示意图边。 对于每条逻辑示意图边,该布局会注释其当前方向,然后在指定的各个方向中搜索最近的方向,然后沿该方向对边进行移动。

  • 部分重叠边布局

    此布局算法可检测共线边的集合或者边的共线部分(边段),这些内容均可视为位于给定大小的缓冲区内。

  • 修整逻辑示意图边布局

    此布局算法可用于处理对于网络逻辑示意图边折点的简单操作。 这样您就可以:

    • 移除沿逻辑示意图边的所有折点。
    • 减少沿逻辑示意图边的部分折点。
    • 通过添加边上的折点来直角化逻辑示意图边。
    • 分离重叠的逻辑示意图边。
    • 检测彼此相交成直角的逻辑示意图边并修整其几何,以在相交位置显示圆弧。

逻辑示意图布局

逻辑示意图布局包含多种类型的布局。 其中大多数布局允许将网络逻辑示意图中在视觉上接近的要素分离开来,同时尽可能保留这些要素的位置,例如,格网布局、线性分散布局、空间分散布局和力导向布局。 其他两个布局(旋转树布局和压缩布局)可用于优化逻辑示意图中的空间。

  • 压缩布局

    此布局算法会在试图保持相对定位的同时,将逻辑示意图要素压缩至逻辑示意图的中部。 该布局所处的位置允许其在算法运行期间构建作为超节点移动的交汇点组。

  • 力导向布局

    此布局算法使用物理模拟绘制图形,方法是通过标识在其中尝试使能量局部最小化的约束系统。 该算法会搜索约束系统的一种平衡状态,即各个逻辑示意图交汇点所对应的一个位置,在该位置处,每个交汇点的总约束为零。

  • 格网布局

    此布局算法可对与某一磁力格网相关的逻辑示意图交汇点进行定位,该磁力格网的像元大小由像元宽度像元高度参数值确定。

  • 线性分派布局

    此布局算法可用于在看起来过于紧密、重叠或重合的逻辑示意图交汇点之间添加空间。 该算法会沿连接边移动交汇点。 这种沿边的移动是基于交汇点的当前和相对位置以及布局参数实现的。

  • 主环布局

    此布局算法用于在主环周围排列逻辑示意图要素,并对连接到沿主环放置的每个逻辑示意图交汇点的逻辑示意图要素子集进行等级布局。

  • 相对主线布局

    此布局算法将在活动逻辑示意图中沿平行的直线排列网络逻辑示意图要素,其中所有连接的边都具有相同的属性值。 还将放置源自这些线的分支,使它们相对于直线的方向以及相对于原始距离的比例和两者的关系保持不变。

  • 旋转树布局

    此布局算法可根据指定的角度旋转与当前在输入网络逻辑示意图图层中设置的透视交汇点相关的一个或多个树。

  • 空间分派布局

    此布局算法可逐步分离明显接近重叠状态的逻辑示意图交汇点,分离的依据是交汇点的当前位置以及所指定的平移系数。

其他布局

此类别包含以下特定算法:

  • 模板布局

    此布局算法可用于重新运行输入网络逻辑示意图基于的模板上当前配置的布局算法列表。 若已对逻辑示意图进行编辑,且您想要将布局恢复为初始状态,此工具将非常有用。

  • 地理位置布局

    此布局算法可用于移动各个逻辑示意图交汇点和边要素,以使其与地图视图中关联网络要素的地理位置相匹配。

逻辑示意图布局详细信息

使用地理处理工具应用逻辑示意图布局算法。 每个布局都有其自己的参数,这些参数可以控制逻辑示意图要素之间的间距、边几何、保持内容要素的位置等。 一些布局还会考虑可能在布局应用前已放置在逻辑示意图中的逻辑示意图标记。

应用逻辑示意图布局

可以使用地理处理工具应用逻辑示意图布局。

应用逻辑示意图布局的方法有两种:

  • 手动 - 如果您希望将布局应用到逻辑示意图地图视图中当前显示的现有网络逻辑示意图,请使用此方法。 在这种情况下,布局可以应用于整个网络逻辑示意图或所选逻辑示意图要素的子集。
  • 在逻辑示意图生成时自动应用 - 将在逻辑示意图模板上设置此方法,以便对基于该模板的所有逻辑示意图进行动态布局。 布局将始终应用于基于该模板的整个逻辑示意图。 在这种情况下,可以在模板上配置多个布局。 它们按照在模板上配置的条目序列顺序运行。 布局 #1 在逻辑示意图中网络要素的初始几何上运行,布局 #N 在应用算法 #(N-1) 生成的几何上运行。

布局参数

将根据每个布局的唯一参数来运行逻辑示意图布局。

每个布局的每个参数都有其默认值,如有必要,可对其进行修改。 可以根据需要对每个模板的这些默认参数值进行预设。

地理处理窗格中加载布局算法工具时,除非将运行布局的输入网络逻辑示意图基于相应模板,且已针对该模板显式配置布局算法的其他参数值,否则其将使用其默认参数值。

如果使用 Python 脚本在逻辑示意图上运行布局算法,则不必指定各个算法参数值。 如果未指定参数值,则将此算法添加到模板后,布局将使用算法参数默认值或者在输入逻辑示意图基于的模板上设置的算法参数值来运行布局。

在服务器上以异步模式运行逻辑示意图布局

所有逻辑示意图布局默认在客户端和服务器上同步运行。 但是,根据逻辑示意图大小、布局算法的复杂性和为服务指定的超时(默认为 600 秒),某些布局应用可能会超出服务超时,从而导致操作失败。 在此情况下,可能需要异步应用布局。

在启用在服务器上以异步模式运行选项的情况下应用逻辑示意图布局时,对于已编辑逻辑示意图,该过程将在客户端上保持同步;即,在布局应用完成之前,不可以在该逻辑示意图上处理任何其他操作。 但是,可通过将服务器资源专门用于运行具有超时较长的布局算法,在服务器上异步运行该过程。 此模式可防止客户端在完成异步布局操作时阻止其他操作,从而可以在此期间创建或处理其他逻辑示意图。

注:

仅当使用在 ArcGIS Server 10.7.1 上发布的 utility network 服务时,异步模式才适用。

对内容要素进行布局

大多数布局算法使用特定选项保留容器,该选项用于控制内容要素的算法运行。 使用保留容器选项时,请注意以下几点:

  • 选中此选项后,布局算法将在逻辑示意图的顶层图上运行,并保留以下内容的相对位置:
    • 与结构交汇点相关的所有内容要素或其结构设备内的设备程序集或程序集逻辑示意图面容器。
    • 与其逻辑示意图线性容器周围的线性容器相关的所有内容要素。 这些内容将与线性容器一起绘制
    保留容器处于选中状态下的智能树布局结果
  • 如果未选中此选项,则将针对逻辑示意图中的内容要素和非内容要素运行布局算法。

逻辑示意图标记和布局

在运行之前,一些布局会考虑逻辑示意图中可能存在的逻辑示意图标记。 您可以在逻辑示意图中使用四种类型的逻辑示意图标记:根交汇点标记、端交汇点标记、透视交汇点标记和障碍标记。

根交汇点标记

树布局算法会从某些被视为树根的交汇点开始处理。 如果逻辑示意图由断开连接的网络部分组成,则树布局将系统地构建断开连接的树,每个树从一个根交汇点开始。

如果将逻辑示意图基于的模板配置为运行“设置根交汇点”规则,则可以在逻辑示意图生成或更新时设置根交汇点标记。 也可以使用设置根交汇点工具将交汇点设置为根,以使树布局从这些交汇点开始处理。

如果在逻辑示意图中未设置根交汇点,则树布局将随机设置所需的交汇点。

在以下情况下,树布局会将根设置在以下位置处:

  • 径向树布局将根交汇点置于圆心,并从同心圆中的此根开始排列子树。 每个圆对应一个级别。
  • 主线树布局从指定根交汇点构建其主线。
  • 智能树布局从指定根交汇点开始构建其树。

如果逻辑示意图由多个断开连接的图形组成,或者逻辑示意图中指定了多个根交汇点,则将使用以下位置:

  • 径向树布局将根交汇点置于具有固定圆心的第一个同心圆周围。
  • 主线树布局和智能树布局沿垂直于树方向的同一条轴对齐根交汇点,以使其对于每个断开连接的图形或者图形的不同树分支,显示为不同的起点。

端交汇点标记

对于主线树布局,还需要考虑端交汇点(主线上的最后一个交汇点)。

与根交汇点一样,这些特定的交汇点可以使用设置端交汇点工具进行设置或者由算法决定。 在后一种情况下,每个端交汇点是从根交汇点开始的最长分支的最后一个交汇点,即最长分支会考虑沿该分支的边的数量。

透视交汇点和障碍标记

应用旋转树布局之前,您必须使用设置透视交汇点工具标记要围绕其进行旋转的交汇点。 此外,如果您希望控制旋转布局,并防止其超出特定逻辑示意图要素运行,则可能需要使用设置障碍工具在这些要素上设置障碍标记。

相关主题