解决建筑物冲突 (制图)

许可等级:BasicStandardAdvanced

摘要

通过移动或隐藏建筑物解决建筑物间的符号冲突以及与线状障碍要素有关的符号冲突。

了解有关“解决建筑物冲突”工作原理的详细信息

警告警告:

该工具不会生成输出图层,而是更改输入图层的源要素类。如果输入图层使用制图表达(其编辑行为被设置为存储形状覆盖)进行绘制,则经过修改的要素将以形状覆盖的形式存储在制图表达中。如果图层不是通过制图表达绘制的,则修改输入要素的几何。建议将冲突解决工具与制图表达结合使用。这样,当结果不可接受或使用不同的参数重新运行工具时,只需使用移除覆盖工具将覆盖移除即可。如果未使用编辑行为被设置为存储形状覆盖的制图表达,则强烈建议您创建输入要素的副本。

了解有关制图表达的详细信息

警告警告:

如果输入要素未使用投影坐标系,则会发出一条警告消息。该工具基于线性距离单位,如果使用非投影坐标系,则将创建意外的结果。因此,强烈建议您对使用投影坐标系的数据运行此工具,以确保获得有效的结果。如果坐标系缺失或未知,则会生成一条错误消息并且工具将不执行处理操作。

插图

Resolve Building Conflicts tool
Buildings before and after processing with the Resolve Building Conflicts tool

用法

语法

ResolveBuildingConflicts_cartography (in_buildings, invisibility_field, in_barriers, building_gap, minimum_size, {hierarchy_field})
参数说明数据类型
in_buildings
[in_buildings,...]

包含可能存在冲突或者小于容许大小的建筑物要素的输入图层。建筑物可以是点或面。将对建筑物进行修改以解决它们与其他建筑物和障碍要素的冲突。

Layer
invisibility_field

存储不可见性值的字段,不可见性值可用于从显示中移除某些建筑物以解决符号冲突。值为 1 的建筑物将从显示中移除;值为零的建筑物将保留。对图层使用定义查询可只显示可见建筑物。不会删除任何要素。

String
in_barriers
[[Layer, Boolean, Linear Unit],...]

作为与输入建筑物要素存在冲突的障碍的所有线状要素或面状要素所在的图层。将对建筑物进行修改以解决建筑物与障碍之间的冲突。定向值为布尔值,用于指定是否应将建筑物定向到障碍图层。

间距用于指定建筑物应朝向或远离障碍图层所移动的距离。输入此值时必须带有单位。

  • 间距值 0(零)表示会将建筑物直接捕捉到障碍线或轮廓符号系统的边缘。
  • null(未指定)间距值表示除解决冲突所需的移动外,建筑物将不会移向或远离障碍线或轮廓线。

注注:

如果输入“间距”值时未带有单位(如输入 10 而不是 10 米),将使用输入要素的坐标系的线性单位。

Value Table
building_gap

某比例下符号化的建筑物之间的最小容许距离。将移动或隐藏间距小于此距离的建筑物以保持此距离。最小容许距离将相对于参考比例进行设置(如,1:50,000 比例下为 15 米)。如果未设置参考比例,最小容许距离值为 0。

Linear unit
minimum_size

旋转的最佳大小边界框的最短侧的最小容许大小,此边界框位于以参考比例绘制的符号化的建筑物要素周围。会将边界框侧小于此值的建筑物进行扩大以达到此值。可能会不按比例来调整建筑物大小,这将导致建筑物的形态发生改变。

Linear unit
hierarchy_field
(可选)

该字段包含要素重要性的等级级别,其中 1 表示非常重要,重要性随整数值的增大而递减。虽然可能会对建筑物进行一定程度的移动以解决冲突,但值 0(零)将强制建筑物保持可见。如果未使用此参数,此工具将根据要素的周长及其与障碍要素的距离对要素重要性进行评估。

String

代码实例

ResolveBuildingConflicts 工具示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ResolveBuildingConflicts 工具。

import arcpy
from arcpy import env
env.workspace = "C:/data"
env.referenceScale = "50000"
arcpy.ResolveBuildingConflicts("C:/data/footprints.lyr; \
                               C:/data/bldg_points.lyr",                                
                                "invisible",
                                "'C:/data/roads.lyr' \
                                'true' \
                                '5 Meters'; \
                                'C:/data/trails.lyr' \
                                'false' \
                                '10 Meters'; \
                                'C:/data/streams.lyr' \
                                'false' \
                                '5 Meters'",
                                "10 meters", 
                                "15 meters", 
                                "bldg_hierarchy")
ResolveBuildingConflicts 工具示例 2(独立 Python 脚本)

此独立脚本显示的是使用 ResolveBuildingConflicts 工具的示例。

# Name: ResolveBuildingConflicts_standalone_script.py
# Description: Resolves the symbology conflicts between
#              buildings and nearby barriers,
#              in this case - roads
 
# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"
env.referenceScale = "50000"

# Set local variables
in_buildings = "C:/data/footprints.lyr;C:/data/bldg_pts.lyr"
invisibility_field = "invisible"
in_barriers = "'C:/data/roads.lyr' 'true' '5 Meters';\
              'C:/data/trails.lyr' 'false' '10 Meters';\
              'C:/data/streams.lyr' 'false' '5 Meters'"
building_gap = "10 meters"
minimum_size = "15 meters"
hierarchy_field = "bldg_hierarchy"

# Execute Resolve Building Conflicts
arcpy.ResolveBuildingConflicts(in_buildings,
                               invisibility_field,
                               in_barriers,
                               building_gap,
                               minimum_size,
                               hierarchy_field)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 否
ArcGIS for Desktop Standard: 否
ArcGIS for Desktop Advanced: 是
5/10/2014