标注 | 说明 | 数据类型 |
输入要素类或图层 | 将根据要素的点位置从中返回匹配的地点或地址的点要素类或图层。 | Feature Layer |
输入地址定位器 | 将用于对输入要素类或图层进行反向地理编码的定位器。 | Address Locator |
输出要素类 | 输出要素类。 注:由于 shapefile 限制,系统不支持将输出保存为 shapefile 格式。 | Feature Class |
输出地址类型 (可选) |
旧版本:此参数已弃用和维护,只是为了向后兼容。 默认情况下,将使用定位器支持的要素类型。 | String |
搜索距离 (可选) |
旧版本:此参数已弃用和维护,只是为了向后兼容。 默认情况下,将根据定位器支持的角色使用优化的分层距离值,并且其不能被覆盖。 | Linear Unit |
要素类型 (可选) | 指定将返回的可能匹配类型。 可选择单个值或多个值。 如果选择单个值,则输入要素类型的搜索容差为 500 米。 如果包括多个值,则将应用要素类型等级表中指定的默认搜索距离。 有关反向地理编码的要素类型参数的详细信息,请参阅要素类型。 此参数并非支持所有定位器。
| String |
首选位置类型 (可选) | 将返回用于指定点地址匹配的首选输出几何。 此参数的选项是可用于路由的街道位置的一侧,或者表示地址的屋顶或宗地质心的位置。 如果数据中不存在首选位置,则将返回默认位置。 对于 Addr_type=PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。 此参数并非支持所有定位器。
| String |
摘要
基于要素类中的点位置创建地址。 在反向地理编码过程中,根据使用创建定位器工具创建的定位器的优化距离值来搜索点位置的最近地址、地点或交叉点。
使用 ArcGIS World Geocoding Service 执行地理编码操作需要 ArcGIS 组织帐户并需要消耗配额。 组织帐户必须具有足够的配额,才能完成整个地理编码请求。
注:
当活动门户为 ArcGIS Online 且输入定位器为 ArcGIS World Geocoding Service 时,工具顶部将提供配额估算。
使用情况
输入要素类必须包含具有有效 x,y 坐标的点形状。 对于包含空坐标的点,将不返回结果。
输出要素类将包含与输入要素类相同的记录数。 其他包含结果地址或地点的字段将被添加到要素类中。 字段名以 REV_ 作为前缀。 如果找不到某个匹配的地点或地址,字段将包含空值。
如果输入要素类的空间参考与定位器的空间参考不同,则定位器将动态转换坐标并尝试找到匹配项。 输出要素类将保存在与输入要素类相同的空间参考中。 要更改输出要素类的空间参考,请在工具的环境设置中设置其他输出坐标系。
如果输入要素类中的某个点无法返回匹配的地点或地址,则表明定位器中不存在任何可与输入点关联的要素。 以下是导致不匹配点的常见原因:
- 点包含空坐标系。
- 点的坐标不正确并且无法转换为定位器中使用的空间参考。
- 定位器的相应区域内不包含可与点关联的参考要素。
- 系统已指定在合理距离内没有良好匹配项的要素类型。 有关详细信息,请参阅要素类型匹配条件。
使用 ArcGIS World Geocoding Service 对某要素类进行反向地理编码时,需要 ArcGIS Online for organizations 订阅。
当使用使用 z 感知数据构建的输入定位器时,该工具将返回非 z 感知的输出。 该工具仅支持 2D 输出。
参数
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 | 输出要素类。 注:由于 shapefile 限制,系统不支持将输出保存为 shapefile 格式。 | Feature Class |
address_type (可选) |
旧版本:此参数已弃用和维护,只是为了向后兼容。 默认情况下,将使用定位器支持的要素类型。 | String |
search_distance (可选) |
旧版本:此参数已弃用和维护,只是为了向后兼容。 默认情况下,将根据定位器支持的角色使用优化的分层距离值,并且其不能被覆盖。 | Linear Unit |
feature_type [feature_type,...] (可选) | 指定将返回的可能匹配类型。 可选择单个值或多个值。 如果选择单个值,则输入要素类型的搜索容差为 500 米。 如果包括多个值,则将应用要素类型等级表中指定的默认搜索距离。 有关反向地理编码的 feature_type 参数的详细信息,请参阅要素类型。 此参数并非支持所有定位器。
| String |
location_type (可选) | 用于指定将返回的 POINT_ADDRESS 匹配的首选输出几何。 此参数的选项包括 ROUTING_LOCATION(可用于路由的街道位置侧)和 ADDRESS_LOCATION(表示屋顶、地址宗地质心或前门的位置) 如果数据中不存在首选位置,则会返回 ROUTING_LOCATION 的默认位置。 对于 Addr_type=PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。 有关 reverseGeocode 的 locationType 参数的详细信息,请参阅 REST API Web 帮助。 此参数并非支持所有定位器。
| String |
代码示例
以下 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.geocoding.ReverseGeocode(input_feature_class, address_locator,
result_feature_class, "ADDRESS")
以下 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"
# Run ReverseGeocode
arcpy.geocoding.ReverseGeocode(input_features, locator, reverse_output,
addr_type, None, feature_type, location_type)
以下 Python 脚本演示了如何在独立脚本中通过 ArcGIS World Geocoding Service 使用 ReverseGeocode 函数。
注:
如果正在使用门户上的定位器,请确保已登录系统并在 ArcGIS AllSource 中将门户设置为活动门户。 要访问除活动门户之外的门户上的定位器,请使用 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"
# Run ReverseGeocode
arcpy.geocoding.ReverseGeocode(input_features, locator, reverse_output,
addr_type, None, feature_type, location_type)