解决建筑物冲突工具通过移动或隐藏建筑物以使建筑物的图形不发生叠加或者使建筑物不违反制图规范定义的间距要求,来解决建筑物间以及与线性障碍要素有关的符号冲突。
数据准备注意事项
解决建筑物冲突工具可以通过调整建筑物的位置、方向、大小和可见性来改善一组建筑物的显示效果。 代表模式和分布保持不变。 而建筑物间的图形冲突以及建筑物与障碍要素(如道路)间的图形冲突将得到解决。 小型的面建筑物也将被放大到最小尺寸以符合规范要求。
该工具可评估符号化要素的图形冲突。 符号系统范围和参考比例将结合使用。 仅在以下操作结束后再运行此工具:确定了符号的外观,并且确保参考比例与所需的最终输出比例相对应。
注意下列输入数据要求和建议:
- 输入类型 - 输入建筑物必须是点或面。 不接受线路输入建筑物要素。 可通过将多个图层输入到该工具中来同时评估和解决点建筑物和面建筑物。
- 面建筑物大小 - 最小容许建筑物大小参数可用于将面建筑物放大到在输出比例下可分辨的最小大小,或者用于和制图规范相匹配。 关于此参数,将忽略输入点建筑物。 在处理过程中,某些面建筑物的大小可能会略微减小以解决冲突。 面建筑物不会减小到小于最小建筑物大小。
- 点建筑物大小 - 即使用于显示点建筑物的符号小于某个比例下的最小容许建筑物大小,也不会放大这些符号。 这基于假设:点建筑物已被有意符号化以满足地图规范或所需的外观。 通常,关联的输入点建筑物要素由与该最小面建筑物大小匹配的标记符号来符号化。 必要时将旋转或移动点建筑物以解决冲突。 如果输入图层是通过制图表达绘制的,则点旋转将存储为几何覆盖。
- 聚合的建筑物和简化的建筑物 - 为得到最佳结果,在使用该工具前,不应对建筑物过分聚合。 大型聚合建筑物几乎没有通过移动解决冲突的选项,因此最终隐藏了大量建筑物。 建筑物覆盖区可以在解决冲突之前进行简化。
小于 XY 容差的几何 - 在某些情况下,数据中的一些要素的长度可能小于在地图或工具环境中指定的 x,y 容差。 如果检测到长度小于容差的要素,则会发出一条警告,并且工具将忽略这些要素。 几何在容差之下的要素的 ObjectID 将被写入名为 GeomBelowTolerance#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。
空几何或 null 几何 - 输入要素必须包含有效的几何。 如果检测到形状长度为零或 null 的几何,则会发出一条警告,并且工具将忽略这些要素。 几何为空或 null 的要素的 ObjectID 将被写入名为 EmptyGeom#.txt(其中 # 是一个数字,随着日志文件的生成,该数字会不断增大)的日志文件。 如有必要,使用修复几何工具来修复这些要素。
在 Windows 操作系统中,在发出警告或出现错误时生成的日志文件会写入 C:\Users\<user name>\AppData\Local\ESRI\GeoProcessing。
工作流注意事项
通常,与其他制图综合工具和图形冲突解决工具配合使用时,该工具最为有效。 下面有一些提示,可以帮助您在工作流中将这些工具同其他图层和其他工具配合使用:
- 了解输入要素类将会被修改 - 该工具不会创建新的输出道路要素类,而是会直接修改输入要素类。 考虑使用制图表达对输入图层进行符号化(将编辑属性设置为存储几何覆盖)。 在这种情况下,该工具所做的所有修改都将存储为几何覆盖。 如果结果不可接受或者要使用不同的参数重新运行该工具,则需要使用移除覆盖工具来移除覆盖,或在编辑会话期间从 ArcMap 中手动移除一些特定要素的覆盖。 如果输入图层不是使用制图表达来绘制的,请在处理之前复制要素类,以保留其原始状态。
- 首先移除多余的要素 - 根据建筑物的分布密度,对于那些非常小的或在制图时不重要的建筑物,如果本身也不适合最终的输出比例,那么最好首先将其移除。 这将创建更多的空间来解决冲突,但通常会产生更好的结果。 通过图层定义查询或选择移除小于某一尺寸的面建筑物或满足附加条件的点建筑物或面建筑物,可达到此目的。
- 直接建立要素等级 - 可选的等级字段参数用于识别建筑物的相对重要性。 相对于重要性较低的建筑物,将优先考虑重要性较高的建筑物。 重要性较低的建筑物很可能被移动或隐藏以容纳重要建筑物。 等级值为 1 表示最重要的建筑物;整数值越大,表示建筑物的重要性越低。 为得到最佳结果,不要在数据集内应用五种以上的等级类。 更详细的分类会增加处理时间,并使该工具为密集分布的建筑物提供合理解决方案的难度增加。 所有输入图层将集中评估以划分要素等级,因此每个图层都必须含有一个同名字段,并使用相同的分类值。
- 自动建立要素等级 - 对于解决建筑物冲突工具,等级字段参数是可选的。 如果未指定,则将根据建筑物的周长及其与障碍之间的距离为建筑物指定其相对的内部重要性。 使用周长(而不是面积)来突出以较高建筑物覆盖区细节层次专门捕获的建筑物。 如果在解决建筑物冲突之前选择简化建筑物覆盖区,则请记住这一点。 距离多处障碍较近的较大建筑物将被视为比距离一处障碍相对较远的较小建筑物更重要。 等级字段参数可有效地和部分填充的等级字段配合使用;地图上的重要建筑物可以使用等级值作为属性,并且所有其他要素(值为 NULL)将具有内部计算出的相对重要性。
- 强制特定要素保持可见状态 - 等级值为 0 可强制要素的可见性,以确保要素不会在不可见性字段内标记为用于掩膜。 这些建筑物被认为局部重要,因此附近建筑物的可见性和位置可能比不强制建筑物保持可见性的地方受到更大影响。 等级为 0 的建筑物仍可以进行变换(移动、旋转、调整大小),以解决冲突并与所需的其他参数相匹配。
- 定义障碍要素 - 输入障碍图层参数可用于指定对建筑物的移动位置起限制作用的线图层或面图层。 道路图层通常用于防止建筑物横穿道路。 必须至少指定一个障碍图层,但也可以接受多个图层。 需要谨记,放置的障碍约束越多,工具找到可接受的冲突解决方案就越困难。
- 将建筑物定向至障碍图层 - 可以选择性地对建筑物进行定向以使其正面与障碍要素对齐。 例如,可以将建筑物定向为与附近的道路对齐。 如果障碍图层定向参数为 TRUE,则所有满足大小和邻域分析要求的建筑物都将参考该障碍图层进行定向。 如果该参数为 FALSE,则不会进行特定的定向,但是在解决冲突的过程中,附近的要素可能偶然被略微旋转。
- 大小要求 - 所有点建筑物,以及满足最小容许建筑物大小参数值(即,边界框的两侧均小于等于该值)的面建筑物都将被定向。 这包括已放大到最小建筑物大小值的建筑物。 不定向更大的建筑物。 仅当满足大小要求时,强制为保持可见的建筑物(等级 = 0)才会被定向。
- 邻域分析要求 - 仅对与障碍要素之间的距离不超过最小容许建筑物大小参数两倍的建筑物考虑定向。 该距离的测量范围是从建筑物符号的图形边到障碍要素符号的图形边。
- 相对于障碍要素移动建筑物 - 建筑物和障碍之间的间距可由障碍图层间距参数选择性地进行控制。 该值指定所有建筑物与障碍要素之间的距离。 在图形上距离障碍要素距离小于障碍间距值的任何建筑物都将被向外移动以遵守间距距离。 不会将建筑物移动到更靠近障碍物的位置以匹配此距离(除非因了解决冲突而偶然需要移动)。 通过设置障碍图层间距的值来控制间距,如下:
- 间距等于零 - 建筑物将被直接捕捉到障碍要素的图形边。 任何一个建筑物,只要其任意一部分与障碍要素的图形范围的距离小于最小容许建筑物大小的值,都将被捕捉到障碍的边。 任何与障碍要素接触或重叠的建筑物都将被捕捉到障碍的边。
- 间距大于零 - 必要时,建筑物将被移动得远离障碍以达到该间距。
- 间距为 NULL - 建筑物不会相对于障碍而移动,除非在处理冲突解决方案的情况下。 这是默认设置。
- 从显示中移除已被掩膜的要素 - 已被掩膜的建筑物由不可见性字段参数来控制。 对于由工具确定应该从显示中移除才能解决冲突的建筑物,指定其不可见性字段的值为 1。 对于那些应该保留的,值为 0。 要更改建筑物的可见性,请更改不可见性字段中的值。 要在地图上显示结果,请向图层添加定义查询,以便只显示可见的建筑物 (不可见性字段 = 0)。
- 检查结果 - 可运行检测图形冲突工具以识别该工具无法解决的区域。 使用恰好小于建筑物间距参数的冲突距离来运行该工具,以识别该工具无法遵循建筑物间距的区域。
- 要查看建筑物的最终大小,请向任一名为 RBC_SIZE 的输入建筑物要素类中添加一个双精度型或浮点型字段。 在工具处理的过程中,该字段将使用每个要素周围的旋转边界框的最短侧进行更新。 通过该字段,可以很方便地查看对哪些要素进行了放大以满足最小容许建筑物大小参数值。 如果将输出存储为形状覆盖,则该值将反映形状覆盖的大小。 如果输入的几何为点,则该字段中的值将反映参考比例下点符号的大小。
对大型数据集分区
该工具的运行与上下文相关,这样在确定每个具体要素的最终状态时,会同时考虑到相邻和连接要素。 一次可输入多个数据集,这意味着将同时对它们进行处理。 使用大量的输入数据(或许多独立的输入图层)可能会超出内存限制。 为避免这个限制,可以在运行该工具时启用分区,方法为在制图分区地理处理环境变量中指定一个分区要素类。 启用分区后,工具可以按照逻辑和可管理的区块来按顺序处理数据。 每个分区面描绘的输入要素与缓冲区中分区周围的附加数据一起被载入到工具中。 附加数据可认为是处理收益。 这样可以确保生成的要素类没有缝隙,并且跨越分区边界的要素状态一致。
通过分区解决建筑物冲突时,仅修改源于每个分区边缘内或边缘上的建筑物。 通过该工具所做的修改可包括调整大小、旋转、移动或不显示。 甚至可以将建筑物移到分区的外部。 在处理分区建筑物时,缓冲区中分区周围的障碍和建筑物会被考虑在内,但不会对它们做出修改。