解决道路冲突的工作原理
解决道路冲突工具可以调整符号化的道路要素,以便这些要素的图形不发生叠加。通常,当用来显示道路数据的比例小于创建道路数据时所用的比例时,会出现图形叠加。应用了适当的线符号以后,相邻的道路可能会彼此冲突。
解决道路冲突的工作原理
当输入要素在参考比例下符号化时,将评估输入要素彼此间的邻近性和平行性。根据等级字段中的值,对输入要素进行定级和分类。将对要素(或部分要素)稍加移动,以解决图形叠加并提高显示效果。当仅移动要素的一部分时,将平滑处理过渡效果。产生的位移可以有选择地存储在面输出要素类中。将该要素类用作传递位移工具的输入,以确保维护与其他要素的空间关系。
该工具根据要素的空间关系和相对等级来移动要素:
相异要素: 相异要素具有不同的等级值。例如沿高速公路车道布置的服务道路。在参考比例下,只要这些要素符号的边彼此相距小于 0.3 mm,这些要素就会向外移动以遵循要素间 0.3 mm 的可见间距。将移动高等级值(低重要性)的要素以安置低等级值(较高重要性)的要素。
相似要素: 相似要素具有相同的等级值。例如高速公路的两排车道或林荫大道的两排车道。只要在参考比例下这些要素相互平行(或接近平行)且其符号的边物理叠加,这些要素就会被分开以便其符号彼此相邻、没有间距。类似地,如果两个符号离得非常近,那么这两个符号将被捕捉到一起,以便这两个符号彼此相邻。
死角: 如果未连接的一端和另一条道路之间的空间无法从用肉眼辨别出来,则死胡同(悬空的要素,其一端未连接)就会被略微缩短。这么做是为了防止出现已连接的空交叉点。只要未连接的路段的符号的边与另一输入要素之间的距离在参考比例下小于 0.5 mm,就会缩短死角以满足 0.5 mm 的间距。
圆: 将放大(向外扩展)圆形的(或接近圆形的)要素(如环形交叉路),确保符号的内边之间在参考比例下存在 0.3 mm 的用肉眼可辨别的间距。
数据准备注意事项
解决道路冲突工具可以调整线要素,以确保这些线要素在输出比例下进行符号化时其图形是可分辨的。一次可评估和处理多个图层。一定要确保为工具正确地建立输入要素的几何方可维持要素之间的关系,因为这些要素共同存在于交通网中。注意下列输入数据要求和建议:
单部件要素: 输入要素不能包含多部件要素。使用多部分(Multipart)至单部分(Singlepart) 工具或通过必须为单一部分规则来创建拓扑,以便将要素转换为单一部分。
共享线段:输入要素不应彼此重叠,以致它们共享线段。使用不能重叠和不能自重叠线规则创建一个拓扑可解决这类问题。如果该工具正在处理多个输入图层,请使用不能与其他要素重叠规则创建拓扑。如果检测到共享线段,则会发出警告,但工具将继续运行。相关要素的 ObjectID 将被写入名为 SharedGeom#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。
自相交要素:输入线要素自身相交或共享公共的起点和终点,它们可能会导致意外的结果。使用不能自相交线规则创建拓扑可识别这些区域。如果检测到自相交要素,将会产生一条警告消息,但工具会继续进行处理。自相交要素的 ObjectID 将被写入名为 SelfIntersect#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。
低于 XY 容差的几何:有时,数据中的一些要素长度可能小于在地图或工具环境中指定的 XY 容差。如果检测到长度小于容差的要素,则会发出一条警告消息,并且工具将忽略这些要素。几何在容差之下的要素的 ObjectID 将被写入名为 GeomBelowTolerance#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。
空几何或 null 几何:输入要素必须包含有效的几何。如果检测到形状长度为零或 null 的几何,则会发出一条警告消息,并且工具将忽略这些要素。几何为空或 null 的要素的 ObjectID 将被写入名为 EmptyGeom#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。如有必要,使用修复几何工具来修复这些要素。
伪死角:伪死角是一种在最终地图比例下进行符号化时直观上看似相连的未连接线段。伪死角可能属于您根据外观来判断连接性但要素实际上并不相连的区域。如果在不修复连接性的情况下运行工具,结果中可能会出现明显的异常断开处。在考虑参考比例的情况下,如果任一端点到另一条线段的距离小于 0.5 mm,则该端点将被检测为伪死角。如果检测到伪死角,则会发出一条警告消息,但工具会继续进行处理。检测到的伪死角将被写入名为 DeadEnd#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。
发出警告或错误消息时所生成的日志文件,其位置与操作系统相关:
- 在 Windows XP 上,日志文件将写入 C:\Documents and Settings\<用户名>\Application Data\ESRI\GeoProcessing。
- 在 Windows Vista 和 Windows 7 上,日志文件将写入 C:\Users\<用户名>\AppData\Local\ESRI\GeoProcessing。
折点: 多余的折点可能影响质量和处理时间。如果适用,请使用简化线工具将其移除。
该工具评估符号化要素的图形冲突。符号系统范围和参考比例会被结合起来考虑。仅在以下操作结束后再运行此工具:确定了符号的外观,并且确保参考比例与所需的最终输出比例相对应。
要评估坐标系,如果已设置制图坐标系环境变量,则使用该变量;如果该工具在 ArcMap 的前台运行,可使用数据框的坐标系。如果以上两种坐标系均不可用,则使用输入图层的坐标系。
工作流注意事项
通常,与其他制图综合工具和图形冲突解决工具配合使用时,该工具最为有效。下面有一些提示,可以帮助您在工作流中将这些工具同其他图层和其他工具一起使用:
- 了解输入要素类将会被修改。该工具不会创建新的输出道路要素类,而是会直接修改输入要素类。考虑将具有制图表达的输入图层符号化(通过为要存储几何覆盖而设置的编辑属性)。在这种情况下,该工具所作的所有修改都将存储为几何覆盖。当结果不可接受或使用不同的参数重新运行工具时,使用移除覆盖工具将覆盖移除即可。如果输入图层不是使用制图表达来绘制的,请在处理之前复制要素类,以保留其原始状态。由于发生的位移已经解决了冲突,再次运行此工具并不会起任何作用,因为没有需要解决的冲突。
- 首先移除多余的要素。根据道路网的密度,最好首先移除多余的次要道路要素以留出更多的间距来解决冲突。使用定义查询或选择内容移除一个或多个道路类,或使用细化道路网工具进行更高级别的优化,即可达到此目的。
- 移动道路前先合并道路。合并分开的道路工具的功能基本上与“解决道路冲突”工具的功能相反。该工具可评估彼此距离很近且基本平行的道路要素(通常是单一分开的道路要素的独立车道),而且还可以生成用于更加清晰地显示道路的制图表达线。这两种方法都是针对合并道路问题的有效解决方法。一般来说,在较大的输出比例下,最好在视觉上区分独立的车道,而在较小的比例下,这些车道应合并成一条线。在中等比例下,对于不同的道路类,最好两种方法同时使用。如果在单一工作流中一起使用这两个工具,请首先在相关要素上运行合并分开的道路,然后使用该工具的结果作为解决道路冲突工具的输入。
- 建立要素等级。等级字段参数用于识别道路要素的相对重要性。通常,这相当于对道路进行分类和符号化的方式。将调整不太重要的道路以容纳更重要道路的显示。等级值为 1 表示最重要的道路;整数值越大,表示道路的重要性越低。为得到最佳的结果,不要对输入数据应用五种以上的等级类。所有输入图层将集中评估以划分要素等级,因此每个图层都必须含有一个同名字段,并使用相同的分类值。
- 考虑锁定特定要素。等级字段参数也可用来锁定要素,对于这种要素,可通过将等级字段的值设置为 0 来实现。已经锁定的要素基本不会移动。由于道路与其他地图要素的关系(尤其是像高程这样的连续数据)而无法平移道路时,这一点就会非常有用。例如,道路的某一段可能会经过非常陡峭狭窄的山谷,在制图时,如果将这条道路从它的当前位置移开,就会出现错误。锁定也可用于对道路的位移制造障碍。
- 使用锁定来定义障碍。 锁定也可用于对道路的位移制造障碍。例如,输入道路图层列表中就可以包含铁路图层和道路。如果要为所有铁路要素指定等级值 0,则将对道路进行评估以检查其与铁路之间是否存在图形冲突,并且道路也不会移动到铁路的上面或上空,但是不会修改铁路要素本身。
可选的输出位移要素类参数可创建一个面要素类,用来指示所发生的位移量和位移方向。该要素类可用于直观检查、空间查询,也可作为传递位移工具的输入。
对大型数据集分区
该工具的运行与上下文相关,这样在确定每个具体要素的最终状态时,会考虑到相邻和连接要素。一次可输入多个数据集,这意味着将同时对它们进行处理。使用大量的输入数据(或许多独立的输入图层)可能会超出内存限制。为避免这个限制,可以在运行该工具时启用分区,方法为在 Cartographic Partitions 地理处理环境变量中指定一个分区要素类。经分区后,该工具可以以逻辑和可管理的区块来按顺序处理数据。每个分区面描绘的输入要素与缓冲区中分区周围的附加数据一起被载入到工具中。附加数据可认为是处理收益。这样可以确保生成的要素类没有缝隙,并且跨越分区边界的要素状态一致。
在分区状态下解决道路冲突时,处于缓冲区中且在每个分区边界之外的要素也将进行修改。在分区边界,它们将与分区内实施的位移相匹配。从分区的边缘算起,位移量逐渐减少,从而实现平滑过渡。这样,当处理每个分区时,道路网的连通性将保持完好。当处理相邻的分区时,逐渐减少的位移作为冲突被检测出来并以正常方式解决。最终,分区边界两侧的道路位移将保持一致。