将街道分配给点 (地理编码)

摘要

使用地址信息(例如门牌号和街道名称以及距离)来查找某个点的最佳街道要素候选。 地址信息的优先级高于距离。

此工具可用于将点地址链接到街道数据。 通过比较点和街道要素的地址信息以及它们之间的距离来建立链接。 最佳候选项之间的名称最相似,但也应该很接近。 建立链接后,可以为点地址生成街道对象 ID、街道一侧和街道旁的新点。 附加属性也可以从街道传输到点地址。 该工具的一些使用实例包括:将街道的属性追加到点地址(反之亦然)、生成在同名街道(可用作路径选择位置)旁边的点,或者生成鱼骨图来说明点地址及其关联街道要素之间的关系。

对于更多信息,请参阅根据街道名称和邻近程度将街道分配给点

插图

分配街道至点工具图示
分配街道至点工具,通过比较点和街道要素的街道名称以及它们之间的距离,将点地址链接到街道要素。

使用情况

  • 此工具将接受单部件点和线要素类作为输入。

  • 此工具可以帮助为街道参考数据和点参考数据的备用名称分配一个连接 ID,以便两个数据集具有相同的连接 ID 来链接到备用街道名称表。

  • 当输入点和线要素类存储在地理数据库中且输出也保存到地理数据库时,此工具的性能最佳。

  • 对于点字段映射街道字段映射参数值,在两个数据集上使用将地址拆分为组件工具,并将该工具的输出结果用作将街道分配给点输入点要素街道要素参数值。

  • 为了提高质量,请确保输入点和街道要素类中的街道名称和街道地址组成部分的拼写和格式一致。

  • 当输入点要素几何位于屋顶或宗地质心时,使用此工具保存街道上相应点的坐标,以便与定位器的首选位置属性配合使用。

  • 为了帮助规划工作流程,输出结果中提供了点所在街道一侧的指示器。 通过此指示器,可在构建定位器时确保该定位器在街道的正确一侧显示结果。

  • 输出结果是从输入点要素复制的所有要素和属性,其中包括从链接的街道中通过街道字段参数值追加到点要素上的指定字段的属性值。 这可以包括来自输入街道要素类的街道 ID 字段。

  • 输出将默认包含以下字段:

    • Street_ObjectID- 来自与输入点关联的街道要素参数值的街道段的对象 ID。
      注:

      如果输入街道要素类包含具有街道 ID 的字段,请选择该字段作为可在查看结果时使用的街道字段参数值。

    • InputPoint_X- 点要素类的空间参考中输入点要素参数值的 x 坐标。
    • InputPoint_Y- 点要素类的空间参考中输入点要素参数值的 y 坐标。
    • Street_X- 点要素类的空间参考中街道要素参数值的链接街道上输入点位置的 x 坐标。
    • Street_Y- 点要素类的空间参考中街道要素参数值的链接街道上输入点位置的 y 坐标。
    • Street_Side- 相对于要素数字化方向,输入点所在的街道一侧。 该值不是相对于沿街道出行的方向。 此属性具有下列值之一:
      • L - 该点与街道左侧相连。
      • R - 该点与街道右侧相连。
      • NULL — 该点未连接到街道。
    • Street_MatchReason- 表示运行该工具后,输入点要素值如何链接或匹配到街道要素值。 此属性可具有下列值中的一个:
      • Match_FullStAddr_AddNum - 使用所有街道地址组件将点与街道进行匹配,并且门牌号在所链接街道的门牌号范围内。
      • Match_FullStAddr - 所有街道地址组件均用于将点与街道进行匹配。
      • Match_StName_AddNum - 仅使用街道名称组件将点与街道关联,且门牌号在所关联街道的门牌号范围内。
      • Match_StName - 仅使用街道名称组件将点与街道链接起来。
      • Match_Distance_AddNum - 使用距离将点链接到街道,因为点和街道之间的街道名称组件不匹配,但门牌号在链接街道的门牌号范围内。
      • Match_Distance - 使用距离将点链接到街道,因为点和街道之间的街道名称值不匹配。
      • Unmatched - 根据距离或街道地址组成部分,该点与街道不匹配。
        注:

        当点与街道不匹配时,默认输出字段和选定街道字段将具有 NULL 属性,但 InputPoint_XInputPoint_Y 字段将使用输入点要素类的坐标进行填充。

  • 当字段的值为 Street_MatchReason Match_Distance_AddNumMatch_DistanceUnmatched 时,查看输出点参数值的结果。 在地图上直观地显示点与街道之间的链接方式,可以更轻松地查看结果。

  • 该工具支持并行处理。 当未设置并行处理因子环境(默认)时,并行处理会根据表的大小和逻辑核心的数量进行缩放。 对于少于 50 行的数据集,仅使用一个进程。

参数

标注说明数据类型
输入点要素

输入点要素类或图层。

Feature Layer
点字段映射

来自点要素的街道地址组件字段的映射,用于将完整街道名称与街道要素参数值中的完整街道名称进行比较,计算该点所链接到的街道段。

要从输入点要素参数值中选择用于将点链接到街道的地址组件,请执行以下操作:

  • 字段名称列的下拉列表中选择地址组件。
  • 数据字段列下,从下拉列表中选择包含相应地址组件的点要素类的字段。

可用的地址组件字段如下:

  • 街道前缀方向 - 街道名称前面的方向,例如 W. Redlands Blvd. 中的 W。
  • 街道前缀类型 - 街道名称前面的街道类型,如 Avenue B 中的 Avenue。
  • 街道名称 - 街道的名称,如 Cherry Rd 中的 Cherry。
  • 街道类型 - 街道名称后面的街道类型,如 New York St. 中的 St.
  • 街道方向 - 街道名称后面的方向,如 Bridge St. NW 中的 NW
  • 街道全名 - 地址的完整街道名称,例如 S. Orange St.
  • 门牌号 - 与地址关联的门牌号,例如 380 New York St. 中的 380。
Value Table
街道要素

输入街道要素类或图层,其属性将被分配给输入点要素参数值。

Feature Layer
街道字段映射

来自街道要素的街道地址组件字段的映射,用于将完整街道名称与输入点要素参数值中的完整街道名称进行比较,计算该点所链接到的街道段。

要从街道要素参数值中选择用于将点链接到街道的地址组件,请执行以下操作:

  • 字段名称列的下拉列表中选择地址组件。
  • 数据字段列下,从下拉列表中选择包含相应地址组件的街道要素类的字段。

数据字段下拉列表中,从街道要素类中选择与字段名称列中列出的街道地址组件相对应的字段。 可用的地址组件字段如下:

  • 街道前缀方向 - 街道名称前面的方向,例如 W. Redlands Blvd. 中的 W。
  • 街道前缀类型 - 街道名称前面的街道类型,如 Avenue B 中的 Avenue。
  • 街道名称 - 街道的名称,如 Cherry Rd 中的 Cherry。
  • 街道类型 - 街道名称后面的街道类型,如 New York St. 中的 St.
  • 街道方向 - 街道名称后面的方向,如 Bridge St. NW 中的 NW
  • 街道全名 - 地址的完整街道名称,例如 S. Orange St.
  • 左侧门牌号始于 - 表示街道左侧门牌号范围的起始数字的值。
  • 左侧门牌号止于 - 表示街道左侧门牌号范围的结束数字的值。
  • 右侧门牌号始于 - 表示街道右侧门牌号范围的起始数字的值。
  • 右侧门牌号止于 - 表示街道右侧门牌号范围的结束数字的值。
Value Table
输出点

包含分配给该点的街道字段的输出点要素类。

Feature Class
街道字段
(可选)

街道要素参数值中的字段将被分配给输出点参数值。 从输入街道要素中选择包含要分配给链接点要素的属性的字段,例如包含街道 ID 值的字段。 所选字段将添加到输出点参数值。

Field
距离
(可选)

用于查找距离点要素最近的街道要素的距离。 距离限制越高,工具运行所需的时间越长,但匹配的质量会提高。 默认值是 70 米。

Double
输出几何
(可选)

指定将包含在输出点要素类中的几何。

  • 输入点几何原始输入点要素类的几何将包含在输出点要素类中。
  • 街道点几何链接点的街道位置的几何将包含在输出点要素类中。
String

arcpy.geocoding.AssignStreetsToPoints(in_point_features, point_field_mapping, in_street_features, street_field_mapping, out_points, {street_fields}, {distance}, {output_geometry})
名称说明数据类型
in_point_features

输入点要素类或图层。

Feature Layer
point_field_mapping
[point_field_mapping,...]

来自点要素的街道地址组件字段的映射,用于将完整街道名称与 in_street_features 参数值中的完整街道名称进行比较,计算该点所链接到的街道段。

使用可用的地址组件从 in_point_features 参数值中提供街道地址组件字段名称和数据字段名称,如下所示:

  • STREET_PREFIX_DIR - 街道名称前面的方向,如 W. Redlands Blvd 中的 W。
  • STREET_PREFIX_TYPE - 街道名称前面的街道类型,如 Avenue B 中的 Avenue。
  • STREET_NAME - 街道的名称,如 Cherry Rd 中的 Cherry。
  • STREET_SUFFIX_TYPE - 街道名称后面的街道类型,如 New York St. 中的 St.
  • STREET_SUFFIX_DIR - 街道名称后面的方向,如 Bridge St. NW 中的 NW
  • STREET_FULL_NAME - 地址的完整街道名称,例如 S. Orange St.
  • HOUSE_NUMBER - 与地址关联的门牌号,例如 380 New York St. 中的 380。

Value Table
in_street_features

输入街道要素类或图层,其属性将被分配给 in_point_features 参数值。

Feature Layer
street_field_mapping
[street_field_mapping,...]

来自街道要素的街道地址组件字段的映射,用于将完整街道名称与 in_point_features 参数值中的完整街道名称进行比较,计算该点所链接到的街道段。

使用可用的地址组件从 in_street_features 参数值中提供街道地址组件字段名称和数据字段名称,如下所示:

  • STREET_PREFIX_DIR - 街道名称前面的方向,如 W. Redlands Blvd 中的 W。
  • STREET_PREFIX_TYPE - 街道名称前面的街道类型,如 Avenue B 中的 Avenue。
  • STREET_NAME - 街道的名称,如 Cherry Rd 中的 Cherry。
  • STREET_SUFFIX_TYPE - 街道名称后面的街道类型,如 New York St. 中的 St.
  • STREET_SUFFIX_DIR - 街道名称后面的方向,如 Bridge St. NW 中的 NW
  • STREET_FULL_NAME - 地址的完整街道名称,例如 S. Orange St.
  • HOUSE_NUMBER_FROM_LEFT - 表示街道左侧门牌号范围的起始数字的值。
  • HOUSE_NUMBER_TO_LEFT - 表示街道左侧门牌号范围的结束数字的值。
  • HOUSE_NUMBER_FROM_RIGHT - 表示街道右侧门牌号范围的起始数字的值。
  • HOUSE_NUMBER_TO_RIGHT - 表示街道右侧门牌号范围的结束数字的值。
Value Table
out_points

包含分配给该点的街道字段的输出点要素类。

Feature Class
street_fields
[street_fields,...]
(可选)

in_street_features 参数值中的字段将被分配给 out_points 参数值。 从输入街道要素中选择包含要分配给链接点要素的属性的字段,例如包含街道 ID 值的字段。 这些字段将被添加到 out_points 参数值中。

Field
distance
(可选)

用于查找距离点要素最近的街道要素的距离。 距离限制越高,工具运行所需的时间越长,但匹配的质量会提高。 默认值是 70 米。

Double
output_geometry
(可选)

指定将包含在输出点要素类中的几何。

  • INPUT_POINT_GEOMETRY原始输入点要素类的几何将包含在输出点要素类中。
  • STREET_POINT_GEOMETRY链接点的街道位置的几何将包含在输出点要素类中。
String

代码示例

AssignStreetsToPoints 示例(独立脚本)

以下 Python 脚本演示了如何使用 AssignStreetsToPoints 函数。

import arcpy

# Point Address Data from Tutorial Data
in_point_features = r"C:\Data\SanMarcos.gdb\Address_Points"
point_field_mapping = "STREET_FULL_NAME ADDRESS"

# Street Address Data from Tutorial Data
in_street_features = r"C:\Data\SanMarcos.gdb\Address_Lines"
street_field_mapping = "HOUSE_NUMBER_FROM_LEFT L_ADDNUM_FROM;HOUSE_NUMBER_TO_LEFT L_ADDNUM_TO;HOUSE_NUMBER_FROM_RIGHT R_ADDNUM_FROM;HOUSE_NUMBER_TO_RIGHT R_ADDNUM_TO;STREET_PREFIX_DIR STPREDIR;STREET_NAME STNAME;STREET_SUFFIX_TYPE STSUFFIX;STREET_SUFFIX_DIR STPOSTDIR"

output_data_path = r"C:\Data\SanMarcos.gdb\Street_Points"

arcpy.geocoding.AssignStreetsToPoints(
    in_point_features,
    point_field_mapping,
    in_street_features,
    street_field_mapping,
    output_data_path,
    street_fields=None,
    distance=70,
    output_geometry="STREET_POINT_GEOMETRY"
)