描述
使用参考数据创建定位器,该参考数据包含在单个字段中存储的每个要素的唯一名称或值。使用此工具创建的定位器具有广泛的应用。可使用该定位器搜索要素的名称或唯一属性,例如水表、地名简称、手机信号塔或用于标识位置的字母数字字符串(例如,N1N115)。
通过此工具创建的定位器将使用单个字段中的索引值来搜索单个字段中的值,并将它们作为点集合返回,或标识点位置附近的要素。可使用该工具创建的定位器进行地理编码的地址表还必须包含具有相同唯一名称或值的单个字段以供标识位置。
注:
通过此工具创建的定位器适用于 ArcGIS Pro 2.5 或更高版本、Enterprise 10.8 或更高版本以及作为 ArcMap 中的定位器服务。通过此工具创建的定位器不能用作 ArcMap 中的本地定位器。
使用方法
语法
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 参数的字段的名称。
所选字段将编入索引并用于搜索。映射 in_features 参数中参考数据的相关字段。 | Field Info |
output_locator | 要在文件夹中创建的输出定位器文件。创建定位器后,可以在定位器设置中修改其他属性和选项。 | Address Locator |
locator_fields (可选) | 映射范围和等级的附加字段(如果数据中存在)。Rank 字段用于对模糊不清的查询的结果 或具有相同名称和分数的候选项进行排序。范围字段有助于设置地图范围以显示经过地理编码的结果。locator_fields 映射采用以下格式完成:
<additional locator field name> 字段是定位器支持的附加字段的名称,<additional data field name> 字段是 in_features 参数中字段的名称。映射 in_features 参数中参考数据的相关字段。 | Field Info |
代码示例
以下 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)
以下 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: 是