应用力导向布局 (网络逻辑示意图)

摘要

用于突出显示网络逻辑示意图中包含的闭合线。

了解有关力导向布局算法的详细信息

警告:

如果您具有处于打开状态的编辑会话,则在运行此工具前,必须先保存您的编辑内容。从而确保逻辑示意图可反映对数据库中网络拓扑所做的最新更改。如果保存编辑内容失败,则编辑内容不会反映在逻辑示意图中。

注:

各布局算法均包括默认参数值。除非另行指定,否则将使用默认参数值。如果输入网络逻辑示意图基于模板且已使用其他参数值来配置此布局,则会使用该值。

使用情况

  • 在与企业级地理数据库中的公共设施网络或追踪网络数据库连接搭配使用时,系统不支持此工具。您必须使用相关的已发布公共设施网络或追踪网络服务或文件地理数据库中的公共设施网络或追踪网络。

  • 输入网络逻辑示意图图层必须来自文件地理数据库中的公共设施网络或追踪网络或者网络逻辑示意图服务。

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

  • 由于该算法趋于强调包含在网络逻辑示意图中的环,所以通常由管理高度网格化网络(如,水、废水或天然气)的操作员使用。

  • 当处理非常大的逻辑示意图时,请考虑在服务器上以异步模式应用布局

参数

标注说明数据类型
输入网络逻辑示意图图层

将应用布局的网络逻辑示意图。

Diagram Layer
保留容器布局
(可选)

指定算法将如何处理容器。

  • 选中 - 将对逻辑示意图的上方图执行布局算法,以保留容器。
  • 未选中 - 将对逻辑示意图中的内容要素和非内容要素执行布局算法。这是默认设置。

Boolean
迭代次数
(可选)

要处理的迭代次数。默认值为 20。

Long
排斥系数
(可选)

用于在接近的逻辑示意图交汇点之间添加距离。排斥系数越大,则将在接近重叠的逻辑示意图交汇点之间添加的距离越大。默认值为 1。

Double
自由度
(可选)

指定每次算法迭代过程中,用于移动逻辑示意图交汇点的面积。

  • 用于移动逻辑示意图交汇点的面积将受到限制。这是默认设置。
  • 用于移动逻辑示意图交汇点的面积将比较大。
  • 用于移动逻辑示意图交汇点的面积将为中等大小。
String
中断点相对位置 (%)
(可选)

边显示类型设置为弯曲边(Python 中的 edges_display_type = "CURVED_EDGES")时,将沿逻辑示意图边插入的用于计算弯曲边几何的两个拐点的相对位置。以介于 15 和 40 之间的百分比表示;默认值为 30。例如,如果中断点相对位置 (%) 参数值为介于 15 和 40 之间的 N,则以下情况适用:

  • X 为边的自交汇点的 x 坐标,Y 为水平树边的至交汇点的 y 坐标:
    • 第一个拐点将定位在 [XY] 线段长度的 N%
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%
  • Y 为边的自交汇点的 y 坐标,X 为垂直树边的至交汇点的 x 坐标:
    • 第一个拐点将定位在 [YX] 线段长度的 N%
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%

注:

上述自交汇点和至交汇点的概念与树方向相关;与网络要素或对象边的拓扑无关。

边显示类型参数设置为规则边(Python 中的 edges_display_type = "REGULAR_EDGES")时,将忽略该参数。

Double
边显示类型
(可选)

指定逻辑示意图边的显示类型。

  • 规则边所有逻辑示意图边均显示为直线。这是默认设置。
  • 弯曲边所有逻辑示意图边均显示为曲线。
String
在服务器上以异步模式运行
(可选)

指定布局算法在服务器上将异步运行还是同步运行。

  • 选中 - 布局算法将在服务器上异步运行。服务器资源可通过该选项来运行超时较长的布局算法。当执行耗时且可能导致服务器超时的布局(例如,部分重叠边)并应用于大型逻辑示意图(超过 25,000 个要素)时,建议进行异步运行。
  • 未选中 - 布局算法将在服务器上同步运行。如果执行时超过服务超时值(默认为 600 秒),则布局算法可能失败,无法完成。这是默认设置。

Boolean

派生输出

标注说明数据类型
输出网络逻辑示意图

更新的网络逻辑示意图图层。

逻辑示意图图层

arcpy.nd.ApplyForceDirectedLayout(in_network_diagram_layer, {are_containers_preserved}, {iterations_number}, {repel_factor}, {degree_freedom}, {breakpoint_position}, {edge_display_type}, {run_async})
名称说明数据类型
in_network_diagram_layer

将应用布局的网络逻辑示意图。

Diagram Layer
are_containers_preserved
(可选)

指定算法将如何处理容器。

  • PRESERVE_CONTAINERS 将对逻辑示意图的上方图执行布局算法,以保留容器。
  • IGNORE_CONTAINERS将对逻辑示意图中的内容要素和非内容要素执行布局算法。这是默认设置。
Boolean
iterations_number
(可选)

要处理的迭代次数。默认值为 20。

Long
repel_factor
(可选)

用于在接近的逻辑示意图交汇点之间添加距离。排斥系数越大,则将在接近重叠的逻辑示意图交汇点之间添加的距离越大。默认值为 1。

Double
degree_freedom
(可选)

指定每次算法迭代过程中,用于移动逻辑示意图交汇点的面积。

  • LOW用于移动逻辑示意图交汇点的面积将受到限制。这是默认设置。
  • HIGH用于移动逻辑示意图交汇点的面积将比较大。
  • MEDIUM用于移动逻辑示意图交汇点的面积将为中等大小。
String
breakpoint_position
(可选)

边显示类型设置为弯曲边(Python 中的 edges_display_type = "CURVED_EDGES")时,将沿逻辑示意图边插入的用于计算弯曲边几何的两个拐点的相对位置。以介于 15 和 40 之间的百分比表示;默认值为 30。例如,如果中断点相对位置 (%) 参数值为介于 15 和 40 之间的 N,则以下情况适用:

  • X 为边的自交汇点的 x 坐标,Y 为水平树边的至交汇点的 y 坐标:
    • 第一个拐点将定位在 [XY] 线段长度的 N%
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%
  • Y 为边的自交汇点的 y 坐标,X 为垂直树边的至交汇点的 x 坐标:
    • 第一个拐点将定位在 [YX] 线段长度的 N%
    • 第二个拐点将定位在 [XY] 线段长度的 (100 - N)%

注:

上述自交汇点和至交汇点的概念与树方向相关;与网络要素或对象边的拓扑无关。

边显示类型参数设置为规则边(Python 中的 edges_display_type = "REGULAR_EDGES")时,将忽略该参数。

Double
edge_display_type
(可选)

指定逻辑示意图边的显示类型。

  • REGULAR_EDGES所有逻辑示意图边均显示为直线。这是默认设置。
  • CURVED_EDGES所有逻辑示意图边均显示为曲线。
String
run_async
(可选)

指定布局算法在服务器上将异步运行还是同步运行。

  • RUN_ASYNCHRONOUSLY布局算法将在服务器上异步运行。服务器资源可通过该选项来运行超时较长的布局算法。当执行耗时且可能导致服务器超时的布局(例如,部分重叠边)并应用于大型逻辑示意图(超过 25,000 个要素)时,建议进行异步运行。
  • RUN_SYNCHRONOUSLY布局算法将在服务器上同步运行。如果执行时超过服务超时值(默认为 600 秒),则布局算法可能失败,无法完成。这是默认设置。
Boolean

派生输出

名称说明数据类型
out_network_diagram_layer

更新的网络逻辑示意图图层。

逻辑示意图图层

代码示例

ApplyForceDirectedLayout 示例(Python 窗口)

将遵循力导向布局算法应用至名为 Temporary Diagram 的逻辑示意图。

import arcpy
arcpy.ApplyForceDirectedLayout_nd("Temporary Diagram", "PRESERVE_CONTAINERS", 
                                  20, 1, "LOW", 25, "CURVED_EDGES", 
                                  "RUN_SYNCHRONOUSLY")

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题