跨逻辑示意图模板共享逻辑示意图图层定义
将子类型图层组与每个逻辑示意图子图层的复杂符号和复杂标注设置结合使用时,在模板上设置的逻辑示意图图层定义的大小可能会变得非常大。 此外,各种网络源的属性数量越多,则逻辑示意图图层定义的大小将越大。
当使用已发布的公共设施网络或追踪网络服务时,特别建议控制在逻辑示意图模板上配置的逻辑示意图图层定义。 在这种情况下,最佳做法是在逻辑示意图模板之间共享逻辑示意图图层定义,以优化服务器启动时间并避免增加内存占用。
在控制模板上的逻辑示意图图层定义并减少现有逻辑示意图模板中的定义数量之前,了解导致不同逻辑示意图模板之间的图层定义存在差异的原因将非常重要。
了解逻辑示意图图层定义存在差异的原因
当运行添加逻辑示意图模板工具向公共设施网络添加新的逻辑示意图模板,而未在其创建时指定任何特定逻辑示意图图层定义时,将在此模板上初始化一个默认的简单随机逻辑示意图图层定义。 对于任何新创建的模板,此逻辑示意图图层定义均不同。
此外,当使用将逻辑示意图模板图层定义重置为默认值选项运行更改逻辑示意图模板工具时,不同逻辑示意图模板的重置逻辑示意图图层定义各不相同。
运行创建逻辑示意图图层定义工具以初始化模板上的逻辑示意图图层定义是另一个用例。 即使在各种模板上应用此工具以导入同一网络地图中存在的图层属性,仍将在每个模板上以默认随机颜色创建为表示折叠面、面容器、边对象和交汇点对象而创建的附加逻辑示意图子图层。
服务器启动时的模板图层定义分析
当在 ArcGIS Server 计算机上启动公共设施网络或追踪网络服务时,会将逻辑示意图模板加载到内存中,并系统分析每个已加载模板上的图层定义,然后将其与已加载模板上设置的图层定义进行比较。 如果内存中已存在相同的图层定义,将自动与当前正在加载的模板“共享”。 由此可避免多次加载相同图层定义,也免于在服务器上增加不必要的内存占用量。
模板图层定义共享
考虑到上述情况,建议网络所有者限制现有逻辑示意图模板中各种逻辑示意图图层定义的数量。 最佳做法可能是仅创建一个或两个逻辑示意图图层定义文件(.ndl 文件),然后将其中一个文件导入每个现有模板;例如:
使用丰富的符号系统和标注设置第一个逻辑示意图图层定义。 然后,运行导入逻辑示意图模板定义工具以将此逻辑示意图图层定义导入每个用于创建有趣逻辑示意图的模板,将与其他人共享这些逻辑示意图(开关站逻辑示意图、互联变电站逻辑示意图等)。
使用更简单的符号系统和标注设置第二个逻辑示意图图层定义。 然后,将其导入用于生成质量保证和质量控制等用途的逻辑示意图模板中。
注:
对于特定模板,可以已存在此类丰富或简单的图层定义。 在这种情况下,可以运行导出逻辑示意图模板定义工具将其从该模板中导出,然后将其重新导入其他模板,以便使用相同的图层定义设置这些模板。
跨逻辑示意图模板控制共享逻辑示意图图层定义
要控制并优化在逻辑示意图模板之间正确共享逻辑示意图图层定义的方式,网络所有者可以参考以下几点:
服务器启动时记录的消息
“网络逻辑示意图”选项卡中的“图层定义共享”列
重要信息:
将从 Enterprise 12.1 和 ArcGIS Pro 3.7 版本开始提供这些新功能。
了解服务器启动时记录的消息
从 Enterprise 12.1 开始,将在服务启动时记录新消息以帮助网络所有者标识逻辑示意图模板上存在的各种图层定义,并确定是否已在模板之间共享这些定义。 要对这些日志进行分析,网络所有者可以登录到 ArcGIS Server Manager,然后选择信息作为日志过滤级别。 然后,公共设施网络或追踪网络服务启动后,必须在查看日志消息列表中搜索特定消息,例如以下消息:
级别 = INFO,消息 =
Template A, Template B share the same layer definition级别 = WARNING,消息 =
Template C does not share its layer definition with any other diagram template级别 = WARNING,消息 =
Not all diagram templates have a layer definition ID
诸如 Template C does not share its layer definition with any other diagram template 等警告日志将告知网络所有者哪些模板的逻辑示意图图层定义与其他所有模板均不相同。
通过统计诸如 Template A, Template B share the same layer definition 等信息日志,网络所有者可以了解现有逻辑示意图模板之间已共享的各种图层定义的数量。 然后,网络所有者可以决定是否需要导出一个图层定义,并将其与其他多个模板共享,以进一步减少共享图层定义的数量。
当使用 ArcGIS Pro 3.7 之前版本在逻辑示意图模板上配置图层定义时,将显示诸如 Not all diagram templates have a layer definition ID 等警告日志。 借助图层定义 ID,可以在服务启动时高效分析模板之间的图层定义共享,因此强烈建议在每个逻辑示意图模板上初始化此类 ID。 从 ArcGIS Pro 3.7 开始,当网络所有者使用以下工具之一来创建或更改逻辑示意图模板图层定义时,将会启用此 ID 设置:
添加逻辑示意图模板(无论是否将逻辑示意图图层定义文件指定为输入)
更改逻辑示意图模板(启用将逻辑示意图图层定义重置为默认值选项)
导入逻辑示意图模板定义(指定逻辑示意图图层定义文件为输入)
了解“网络逻辑示意图”选项卡中的“图层定义共享”列
要控制逻辑示意图模板上是否存在图层定义 ID 以及在这些模板之间共享图层定义 ID 的方式,网络所有者可以打开公共设施网络或追踪网络图层属性对话框中的网络逻辑示意图选项卡,并查看图层定义共享列。 此选项卡将显示该网络现有的 N 个逻辑示意图模板的列表。 对于使用 ArcGIS Pro 3.7 之前版本设置图层定义的任何现有逻辑示意图模板,其图层定义共享单元格将为空。 使用 ArcGIS Pro 3.7 或更高版本配置或更改逻辑示意图模板图层定义后,该单元格将不再为空。 此列不会严格显示模板上存在的图层定义 ID。 仅在其中一个现有模板上修改逻辑示意图图层定义后,对于任何模板,此列中显示的数值将会发生变化。 如果所列 N 个模板中的每个模板均使用 ArcGIS Pro 3.7 或更高版本初始化了其逻辑示意图图层定义,则这些数值将按从 1 到最大值 N 进行排序。 当 N 为这些数值中的最大值时,这意味着 N 个模板中没有一个模板与其他现有模板共享相同的逻辑示意图图层定义。 多个逻辑示意图模板上的相同数值意味着这些逻辑示意图模板各自具有相同的图层定义 ID;也就是说,这些模板共享相同的逻辑示意图图层定义。 此列中的最大值反映了现有模板之间共享的不同逻辑示意图图层定义的数量。
结合以上所有说明,网络所有者可以分析图层定义共享列并回答以下问题:
每个现有逻辑示意图模板上是否均存在图层定义 ID,以便在服务启动时高效分析模板之间的图层定义共享?
逻辑示意图模板之间存在多少种不同的逻辑示意图图层定义?
哪些模板已共享相同的逻辑示意图图层定义?
是否可将在逻辑示意图模板之间已共享的其中一个逻辑示意图图层定义导入其他多个逻辑示意图模板,以进一步减少所有模板之间已共享的图层定义数量?