反向地理编码 (地理编码)

摘要

基于要素类中的点位置创建地址。 在反向地理编码过程中,根据使用创建定位器工具创建的定位器的优化距离值来搜索点位置的最近地址、地点或交叉点。

注:

使用旧工具创建的定位器不会以相同的方式进行优化,并且将使用默认值 100 作为距离。 为获得最佳结果,请更新使用旧工具构建的定位器,并使用创建定位器工具进行构建。

使用 ArcGIS World Geocoding Service 执行地理编码操作需要 ArcGIS 组织账户并需要消耗配额。 组织帐户必须具有足够的配额,才能完成整个地理编码请求。

使用情况

  • 输入要素类必须包含具有有效 x,y 坐标的点形状。 对于包含空坐标的点,将不返回结果。

  • 输出要素类将包含与输入要素类相同的记录数。 其他包含结果地址或地点的字段将被添加到要素类中。 字段名以 REV_ 作为前缀。 如果找不到某个匹配的地点或地址,字段将包含空值。

  • 如果输入要素类的空间参考与定位器的空间参考不同,则定位器将动态转换坐标并尝试找到匹配项。 输出要素类将保存在与输入要素类相同的空间参考中。 要更改输出要素类的空间参考,请在工具的环境设置中设置其他输出坐标系

  • 如果输入要素类中的某个点无法返回匹配的地点或地址,则表明定位器中不存在任何可与输入点关联的要素。 以下是导致不匹配点的常见原因:

    • 点包含空坐标系。
    • 点的坐标不正确并且无法转换为定位器中使用的空间参考。
    • 定位器的相应区域内不包含可与点关联的参考要素。
    • 系统已指定在合理距离内没有良好匹配项的要素类型。

  • 使用 ArcGIS World Geocoding Service 对某要素类进行反向地理编码时,需要 ArcGIS Online for organizations 订阅。

参数

标注说明数据类型
输入要素类或图层

将根据要素的点位置从中返回匹配的地点或地址的点要素类或图层。

Feature Layer
输入地址定位器

将用于对输入要素类或图层进行反向地理编码的定位器。

Address Locator
输出要素类

输出要素类。

Feature Class
输出地址类型
(可选)

指定是将点的地址以街道地址的形式返回,还是以交叉点地址的形式返回(如果定位器支持交叉点匹配)。

  • 地址地址将以街道地址的形式返回,或者以输入地址定位器所定义的格式返回。 这是默认设置。
  • 交叉点地址将以交叉点地址的形式返回。 如果地址定位器支持匹配交叉点地址,则可使用此选项。
旧版本:

此参数仅适用于使用创建地址定位器工具构建的定位器,或包含使用创建地址定位器工具构建的定位器的复合定位器。

String
搜索距离

搜索点位置的最近地址或交叉点时将使用的距离。 某些定位器使用不支持覆盖搜索距离参数的优化距离值。

旧版本:

此参数仅适用于使用创建地址定位器工具构建的定位器,或包含使用创建地址定位器工具构建的定位器的复合定位器。

Linear Unit
要素类型
(可选)

指定将返回的可能匹配类型。 可选择单个值或多个值。 如果选择单个值,则输入要素类型的搜索容差为 500 米。 如果包括多个值,则将应用要素类型等级表中指定的默认搜索距离。

此参数并非支持所有定位器。

  • 子地址匹配将限于街道地址(基于代表房屋和建筑物子地址位置的点)。 如果作为服务发布,则此选项需要通过 ArcGIS Pro 2.8 或更高版本及 ArcGIS Enterprise 10.9 或更高版本中创建的定位器。
  • 点地址匹配将限于街道地址(基于代表房屋和建筑物位置的点)。
  • 宗地匹配将限于被视为不动产并且可包括一个或多个房屋或其他建筑物的一片土地。 通常会为此匹配类型分配一个地址和宗地标识号。
  • 街道地址匹配将限于与点地址不同的街道地址,因为门牌号是由数字范围内插的。 街道地址匹配包括匹配街段的门牌号范围,而不包括内插的门牌号值。
  • 街道交叉点匹配将限于包括街道交叉点和城市以及州和邮政编码信息(可选信息)的街道地址。 这是从街道地址参考数据中获取的,例如 Redlands Blvd & New York St, Redlands, CA, 92373。
  • 街道名称匹配值将被限制为类似于街道地址,但却没有门牌号、行政区域和邮政编码(可选)的街道地址,例如 W Olive Ave, Redlands, CA, 92373。
  • 地点匹配将限于代表居民区的地名。
  • 邮政地址匹配将限于邮政编码。 参考数据是邮政编码点,例如 90210 USA。
  • 感兴趣点匹配将限于感兴趣点。 参考数据包括行政区域、地名、企业、地标和地理要素,例如星巴克。
  • 距离标记匹配将限于表示沿某条街道的线性距离的街道地址(通常以公里或英里为单位,且指定了原点位置,如 Mile 25 I-5 N, San Diego, CA)。
String
首选位置类型
(可选)

用于指定点地址匹配的首选输出几何。 此参数的选项是街道位置的一侧,可用于路径或表示地址屋顶或宗地质心的位置。 如果数据中不存在首选位置,则将返回默认位置。 对于 Addr_type=PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。

此参数并非支持所有定位器。

  • 地址位置将返回地理编码结果的几何,该几何可以表示地址位置,例如屋顶、建筑物质心或前门。
  • 路径位置将返回地理编码结果的几何,该几何表示靠近街道一侧的位置,可用于车辆配送。 这是默认设置。
String

arcpy.geocoding.ReverseGeocode(in_features, in_address_locator, out_feature_class, {address_type}, search_distance, {feature_type}, {location_type})
名称说明数据类型
in_features

将根据要素的点位置从中返回匹配的地点或地址的点要素类或图层。

Feature Layer
in_address_locator

将用于对输入要素类或图层进行反向地理编码的定位器。

Address Locator
out_feature_class

输出要素类。

Feature Class
address_type
(可选)

指定是将点的地址以街道地址的形式返回,还是以交叉点地址的形式返回(如果定位器支持交叉点匹配)。

旧版本:

此参数仅适用于使用创建地址定位器工具构建的定位器,或包含使用创建地址定位器工具构建的定位器的复合定位器。

  • ADDRESS地址将以街道地址的形式返回,或者以输入地址定位器所定义的格式返回。 这是默认设置。
  • INTERSECTION地址将以交叉点地址的形式返回。 如果地址定位器支持匹配交叉点地址,则可使用此选项。
String
search_distance

搜索点位置的最近地址或交叉点时将使用的距离。 某些定位器使用不支持覆盖搜索距离参数的优化距离值。

旧版本:

此参数仅适用于使用创建地址定位器工具构建的定位器,或包含使用创建地址定位器工具构建的定位器的复合定位器。

Linear Unit
feature_type
[feature_type,...]
(可选)

指定将返回的可能匹配类型。 可选择单个值或多个值。 如果选择单个值,则输入要素类型的搜索容差为 500 米。 如果包括多个值,则将应用要素类型等级表中指定的默认搜索距离。 有关 reverseGeocode 的 featureTypes 参数的更多详细信息,请参阅 REST API Web 帮助。

此参数并非支持所有定位器。

  • SUBADDRESS匹配将限于街道地址(基于代表房屋和建筑物子地址位置的点)。 如果作为服务发布,则此选项需要通过 ArcGIS Pro 2.8 或更高版本及 ArcGIS Enterprise 10.9 或更高版本中创建的定位器。
  • POINT_ADDRESS匹配将限于街道地址(基于代表房屋和建筑物位置的点)。
  • PARCEL匹配将限于被视为不动产并且可包括一个或多个房屋或其他建筑物的一片土地。 通常会为此匹配类型分配一个地址和宗地标识号。
  • STREET_ADDRESS匹配将限于与 POINT_ADDRESS 不同的街道地址,因为门牌号是由数字范围内插的。 STREET_ADDRESS 匹配包括匹配街段的门牌号范围,而不包括内插的门牌号值。
  • STREET_INTERSECTION匹配将限于包括街道交叉点和城市以及州和邮政编码信息(可选信息)的街道地址。 这是从 STREET_ADDRESS 参考数据中获取的,例如 Redlands Blvd & New York St, Redlands, CA, 92373。
  • STREET_NAME匹配值将被限制为类似于 STREET_ADDRESS,但没有门牌号、行政区域和邮政编码(可选)的街道地址,例如 W Olive Ave, Redlands, CA, 92373。
  • LOCALITY匹配将限于代表居民区的地名。
  • POSTAL匹配将限于邮政编码。 参考数据是邮政编码点,例如 90210 USA。
  • POINT_OF_INTEREST匹配将限于感兴趣点。 参考数据包括行政区域、地名、企业、地标和地理要素,例如星巴克。
  • DISTANCE_MARKER匹配将限于表示沿某条街道的线性距离的街道地址(通常以公里或英里为单位,且指定了原点位置,如 Mile 25 I-5 N, San Diego, CA)。
String
location_type
(可选)

用于指定 POINT_ADDRESS 匹配的首选输出几何。 此参数的选项是 ROUTING_LOCATION(街道位置的一侧,可用于路径),或 ADDRESS_LOCATION(表示屋顶、地址的宗地质心或前门的位置)。 如果数据中不存在首选位置,则会返回 ROUTING_LOCATION 的默认位置。 对于 Addr_type = "PointAddress" 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。 有关 reverseGeocode 的 locationType 参数的更多详细信息,请参阅 REST API Web 帮助。

此参数并非支持所有定位器。

  • ADDRESS_LOCATION将返回地理编码结果的几何,该几何可以表示地址位置,例如屋顶、建筑物质心或前门。
  • ROUTING_LOCATION将返回地理编码结果的几何,该几何表示靠近街道一侧的位置,可用于车辆配送。 这是默认设置。
String

代码示例

ReverseGeocode 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ReverseGeocode 函数。

import arcpy

arcpy.env.workspace = "C:/data/locations.gdb"

# Set local variables:
input_feature_class = "customers"
address_locator = "e:/StreetMap/data/Street_Addresses_US.loc"
result_feature_class = "customers_with_address"

arcpy.ReverseGeocode_geocoding(input_feature_class, address_locator, 
                               result_feature_class, "ADDRESS")
ReverseGeocode 示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 ReverseGeocode 函数。

# Description: 
# Reverse Geocode customer point locations using a locator created with
# the Create Locator tool.

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = "c:/data/Atlanta.gdb"

# Set local variables
input_features = "MyCustomers"
locator = "c:/data/Atlanta/Atlanta_StreetAddress.loc"
reverse_output = "MyCustomers_Reverse_Streets"
addr_type = "ADDRESS"
feature_type = "STREET_INTERSECTION;STREET_ADDRESS"
location_type = "ROUTING_LOCATION"

# Execute ReverseGeocode
arcpy.geocoding.ReverseGeocode(input_features, locator, reverse_output, 
                               addr_type, None, feature_type, location_type)
ReverseGeocode 示例 3(独立脚本)

以下 Python 脚本演示了如何在独立脚本中通过 ArcGIS World Geocoding Service 使用 ReverseGeocode 函数。

注:

如果正在使用门户上的定位器,请确保已登录系统并在 ArcGIS Pro 中将门户设置为活动门户。 要访问除活动门户之外的门户上的定位器,请使用 SignInToPortal 函数进行身份验证。

# Description: 
# Reverse Geocode customer point locations using the ArcGIS World Geocoding Service.

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = "c:/data/Atlanta.gdb"

# Set local variables
input_features = "MyCustomers"
locator = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"
reverse_output = "MyCustomers_Reverse_Streets"
addr_type = "ADDRESS"
feature_type = "STREET_INTERSECTION;STREET_ADDRESS"
location_type = "ROUTING_LOCATION"

# Execute ReverseGeocode
arcpy.geocoding.ReverseGeocode(input_features, locator, reverse_output, 
                               addr_type, None, feature_type, location_type)

环境

特殊情况

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题