创建复合地址定位器 (地理编码)

摘要

创建复合地址定位器。 一个复合定位器由两个或更多的定位器组成,这些定位器允许使用多个定位器来匹配地址。

了解有关复合定位器的详细信息

使用情况

  • 在创建复合地址定位器之前,请先使用创建定位器工具创建参与地址定位器。

  • 复合地址定位器的空间参考是必须的。 除非在工具的环境设置中指定了其他输出坐标系,否则,将使用第一个参与地址定位器的空间参考。

参数

标注说明数据类型
地址定位器

将用于创建复合定位器的定位器。 参与定位器的顺序决定了候选项的搜索方式以及地点或地址的匹配方式。 对单个地点或地址进行地理编码时,除非为定位器指定了选择条件,否则将根据所有参与地点或地址定位器来匹配地址。 系统将根据参与定位器的列出顺序来显示找到的所有候选项。 对地点或地址表进行地理编码时,地点或地址将自动与在前几个参与定位器中找到的第一个最佳候选项匹配。 如果地点或地址匹配失败,它将回退到列表中后面的定位器。

每个参与的定位器都需要一个参考名称。 该定位器名称即复合定位器名称。 名称中不能使用空格或特殊符号。 最大名称长度:14 个字符。

Value Table
字段映射

每个参与定位器所使用的输入字段与复合定位器的输入字段之间的映射。

由参与定位器生成的字段和字段内容。 字段映射部分列出了所有的唯一输入字段。 当您展开该部分时,会显示每个参与地址定位器的所有输入字段出现(子字段)的列表。 这些字段是复合地址定位器的输入字段。 如果由于唯一名称是根据参与地址定位器进行填充的,因而产生了重复的字段(如 ZIP 和邮政编码),那么您可以对子字段进行分组,方法是将子字段拖拽到相应的字段,或使用上箭头下箭头按钮来移动子字段。

Field Mappings
选择条件
(可选)

每个参与定位器的选择条件。 每个参与定位器仅可添加一个选择条件。

构建复合地址定位器时,您可以基于输入地址字段的值来指定所使用的地址定位器。 例如,如果复合地址定位器使用包含某特定城市街道数据的定位器,则可以过滤掉没有此特定城市名称的所有地址或地点。 使用选择条件将会排除不满足特定地址条件的参与地址定位器,从而提高地理编码过程的效率。 例如,如果为某个街道地址定位器指定了选择条件 "City" = 'Atlanta',则只有包含城市名“Atlanta”的地址才会根据此定位器进行地理编码。

要指定选择条件,请在选择条件列中选中要应用此条件的地址定位器的复选框。 可在文本框中输入一个表达式(例如 "City" = 'Atlanta')或单击“更多”按钮打开指定定位器选择条件对话框并定义相应的条件。

Value Table
输出复合地址定位器

将创建的复合地址定位器。 ArcGIS Pro 仅支持保存在文件文件夹中的定位器。

Address Locator

arcpy.geocoding.CreateCompositeAddressLocator(in_address_locators, in_field_map, {in_selection_criteria}, out_composite_address_locator)
名称说明数据类型
in_address_locators
[[in_address_locator, name],...]

将用于创建复合定位器的定位器。 参与定位器的顺序决定了候选项的搜索方式以及地点或地址的匹配方式。 对单个地点或地址进行地理编码时,除非为定位器指定了选择条件,否则将根据所有参与地点或地址定位器来匹配地址。 系统将根据参与定位器的列出顺序来显示找到的所有候选项。 对地点或地址表进行地理编码时,地点或地址将自动与在前几个参与定位器中找到的第一个最佳候选项匹配。 如果地点或地址匹配失败,它将回退到列表中后面的定位器。

每个参与的定位器都需要一个参考名称。 该定位器名称即复合定位器名称。 名称中不能使用空格或特殊符号。 最大名称长度:14 个字符。

Value Table
in_field_map

每个参与定位器所使用的输入字段与复合地址定位器的输入字段之间的映射。

对于每个定位器输入字段,字段信息的格式应如下示例字符串所示:"Address 'Address or Intersection' true true false 4 Text 0 0 ,First,'#',Street" 此字符串中的信息由以下内容组成:

  • 新字段名称 (Address) - 复合定位器的新定位器字段名称。

    组合中的一个定位器可能有一个 Address 字段,而另一个定位器可能有一个 Street Address 字段。 您可以将新的复合定位器字段指定为 Address,它引用两个原始定位器字段。

  • 新字段名称的别名 ('Address or Intersection') - 复合定位器的新定位器字段名称。

    对于具有新字段名称 Address 的复合定位器,您可以为 'Address or Intersection' 字段指定一个别名。

  • isEditable (true) - 指定新的复合定位器字段是否可编辑。 选项为 truefalse
  • Allow NULL Values (true) - 指定新的复合定位器字段是否允许空值。 选项为 truefalse
  • Required (false) - 指定新的复合定位符字段是否为必填字段。 选项为 truefalse
  • Length (4) - 新复合定位符字段的长度。
  • Type (Text) - 新复合定位器字段的数据类型。 对于定位器,此值应始终为 Text
  • Scale (0) - 新复合定位器字段的比例。 可使用 1 到 100 之间的任意值。 此值不适用于定位器,必须使用有效值。
  • Precision (0) - 新复合定位器字段的精度。 可使用 1 到 100 之间的任意值。 此值不适用于定位器,必须使用有效值。
  • Merge rule (First) - 新复合定位符字段的合并规则。 可使用任意的合并规则值。 此值不适用于定位器,必须使用有效值。
  • Delimiter ('#') - 新复合定位符字段的分隔符。 可使用任意支持的分隔符。
  • Original locator field name (Street) - 原始参与定位器中的定位器字段名称。
Field Mappings
in_selection_criteria
[[in_address_locator, selection_criteria],...]
(可选)

每个参与定位器的选择条件。 每个参与地址定位器仅可添加一个选择条件。

使用选择条件将会排除不满足特定地址条件的参与地址或地点定位器,从而提高地理编码过程的效率。 有关如何在地理编码过程中使用选择条件的详细信息,请参阅将多个定位器组合成复合定位器的基础知识

Value Table
out_composite_address_locator

将创建的复合地址定位器。 ArcGIS Pro 仅支持保存在文件文件夹中的定位器。

Address Locator

代码示例

CreateCompositeAddressLocator 示例(Python 窗口)

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

# Create a composite address locator using the StreetMap US Streets and Tutorial Atlanta locators.

# Import system modules
import arcpy 

arcpy.env.workspace = "C:/ArcTutor/Geocoding/atlanta/"

# Set local variables:
US_Streets_locator = "C:/dm_stmap_dvd/streetmap_na/data/Street_Addresses_US"
Atlanta_locator = Atlanta
Atlanta_Composite = US_Atlanta_Composite

#Field mapping
address_field_map = "Address 'Street or Intersection' true true false 100 Text 0 0 ,First,#,Atlanta_locator,Address,0,0,US_Streets_locator,Street;"
city_field_map = "City 'City or Placename' true true false 40 Text 0 0 ,First,#,Atlanta_locator,City,0,0,US_Streets_locator,City;"
state_field_map = "State 'State' true true false 20 Text 0 0 ,First,#,Atlanta_locator,State,0,0,US_Streets_locator,State;"
zip_field_map = "Zip 'Zipcode' true true false 10 Text 0 0 ,First,#,Atlanta_locator,Zip,0,0,US_Streets_locator,ZIP"

composite_locator_field_map = address_field_map + city_field_map + state_field_map + zip_field_map

arcpy.CreateCompositeAddressLocator_geocoding("Atlanta_locator Atlanta;US_Streets_locator US_Streets", composite_loactor_field_map,"Atlanta '\"City\" = 'Atlanta'';US_Streets #",Atlanta_Composite)

许可信息

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

相关主题