创建要素定位器 (地理编码)

描述

使用参考数据创建定位器,该参考数据包含在单个字段中存储的每个要素的唯一名称或值。使用此工具创建的定位器具有广泛的应用。可使用该定位器搜索要素的名称或唯一属性,例如水表、地名简称、手机信号塔或用于标识位置的字母数字字符串(例如,N1N115)。

通过此工具创建的定位器将使用单个字段中的索引值来搜索单个字段中的值,并将它们作为点集合返回,或标识点位置附近的要素。可使用该工具创建的定位器进行地理编码的地址表还必须包含具有相同唯一名称或值的单个字段以供标识位置。

注:

通过此工具创建的定位器适用于 ArcGIS Pro 2.5 或更高版本、Enterprise 10.8 或更高版本以及作为 ArcMap 中的定位器服务。通过此工具创建的定位器不能用作 ArcMap 中的本地定位器。

使用方法

  • 支持将表示为服务的要素类数据类型用作参考数据。

  • 该工具支持将包含点和面几何的要素类用作参考数据。

  • 使用此工具创建的定位器可用于搜索唯一标识符或者不超过 5 个单词的短字符串值。

  • 可将此工具的输出用作创建复合地址定位器工具的输入。但是,应谨慎将使用此工具创建的定位器与复合定位器中基于其他地址角色的定位器搭配使用,因为名称要素定位器角色字段的字段映射可能导致意外行为。最佳做法是使用创建定位器工具基于 POI 角色创建的定位器。

语法

arcpy.geocoding.CreateFeatureLocator(in_features, search_fields, output_locator, {locator_fields})
参数说明数据类型
in_features

将用于创建定位器的参考数据要素类或要素图层。

支持将表示为服务的要素类数据类型用作参考数据。

警告:

如果为参考数据定义了定义查询或存在选定要素,则在创建定位器时,仅包含查询要素和所选要素。

注:

如果使用包含数百万个要素的参考数据创建地址定位器,则包含临时目录的驱动上的可用磁盘空间必须至少为数据大小的 3 到 4 倍,原因是在将定位器复制到输出位置之前,需将用于构建定位器的文件写入此位置。如果没有足够的磁盘空间,则一旦空间不足,工具将失败。此外,在创建大型定位器时,计算机必须具备足够的 RAM,才能处理占用较大内存的进程。

Feature Layer
search_fields

将参考数据字段映射到用于搜索 in_features 参数的字段。search_fields 映射采用以下格式完成,其中 <locator field name> 是定位器角色支持的字段的名称,<data field name> 是用于搜索 in_features 参数的字段的名称。

# <locator field name> <data field name>
# This shows an example:
reference_data_field_map = """
"'Name' AssetName"
"""

所选字段将编入索引并用于搜索。映射 in_features 参数中参考数据的相关字段。

Field Info
output_locator

要在文件夹中创建的输出定位器文件。创建定位器后,可以在定位器设置中修改其他属性和选项。

Address Locator
locator_fields
(可选)

映射范围等级的附加字段(如果数据中存在)。Rank 字段用于对模糊不清的查询的结果 或具有相同名称和分数的候选项进行排序。范围字段有助于设置地图范围以显示经过地理编码的结果locator_fields 映射采用以下格式完成:

# <additional locator field name> <additional data field name>
# This shows an example:
additional_fields_map = """
"'Rank' RANK;'Min X' Xmin;
'Max X' Xmax;'Min Y' Ymin;
'Max Y' Ymax"
"""

<additional locator field name> 字段是定位器支持的附加字段的名称,<additional data field name> 字段是 in_features 参数中字段的名称。映射 in_features 参数中参考数据的相关字段。

Field Info

代码示例

CreateFeatureLocator 示例 1(独立脚本)

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

# Description: Create a feature locator using local data.
# Import system modules
import arcpy
# Set local variables
in_features = r"C:\data\arizona.gdb\az_points"
search_field = "*Name NAME VISIBLE NONE"
output_locator = r"C:\output\locators\az_points_locator"
locator_fields = "Rank <None> VISIBLE NONE;'Min X' <None> VISIBLE NONE;'Max X' <None> VISIBLE NONE;'Min Y' <None> VISIBLE NONE;'Max Y' <None> VISIBLE NONE"
# Execute CreateFeatureLocator
arcpy.geocoding.CreateFeatureLocator(in_features, search_field, output_locator, 
                                     locator_fields)
CreateFeatureLocator 示例 2(独立脚本)

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

# Description: Create a feature locator using data from a hosted feature service in ArcGIS Online.
# Import system modules
import arcpy
# Sign in to Portal
arcpy.SignInToPortal("https://www.arcgis.com", "<username>", "<password>")
# Set local variables
in_features = "https://services.arcgis.com/<layer_id>/arcgis/rest/services/<service_name>/FeatureServer/<layer_number>"
search_field = "*Name NAME VISIBLE NONE"
output_locator = r"C:\output\locators\service_locator"
locator_fields = "Rank <None> VISIBLE NONE;'Min X' <None> VISIBLE NONE;'Max X' <None> VISIBLE NONE;'Min Y' <None> VISIBLE NONE;'Max Y' <None> VISIBLE NONE"
arcpy.geocoding.CreateFeatureLocator(in_features, search_field, output_locator, 
                                     locator_fields)

许可信息

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

相关主题