复合定位器是由一个或多个单一的定位器或地理编码服务组成的虚拟定位器。 复合定位器可用于将来自多个源的地理编码组合成单一定位器,无论复合是在本地使用还是作为服务使用。 您可以使用复合定位器进行地理编码,以便可以同时根据不同的数据集将地址与多个定位器进行匹配,从而提高匹配结果的地理编码精度。
如果您根据亚特兰大市的权威数据创建了一个定位器,并且需要对亚特兰大和邻近城市内的位置进行地理编码,则可以使用包含基于亚特兰大街道参考数据的定位器和 ArcGIS World Geocoding Service 的复合定位器来返回最佳匹配项。 您可以通过复合定位器为参与的定位器创建过滤器,以确保使用您自己的亚特兰大街道定位器来匹配亚特兰大范围内的地址,使用 ArcGIS World Geocoding Service 来匹配邻近城市的地址。
使用复合定位器的另一个理由是,它能够回退到另一个定位器以增加找到最佳匹配项的可能性。 例如,县政府可以针对基于交通运输部门街道数据集和评估人员办公室宗地数据集的单个定位器创建一个复合定位器,并用它来定位将过多的水排放到街道的居民。 我们要将宗地定位器列在首位,原因是它可准确引用参考数据中的要素,从而使其精度要高于基于门牌号范围的街道中心线定位器。 如果地址与宗地不匹配,则定位器可以回退到街道中心线定位器,并在那里查找下一个最佳匹配项。
复合定位器可存储对参与定位器和地理编码服务的引用,但不会包含各个定位器的实际地址信息、索引和参考数据。 可将复合定位器添加到新工程和现有工程中,添加方式与单个定位器大体相同。
构建符合定位器
构建复合定位器的工作流如下:
要构建复合定位器,请从现有定位器开始。 在构建复合定位器的初始阶段,应计划搜索过程。 例如,您可以先搜索包含地方道路数据的定位器。 如果没有出现满意的结果,可以再使用包含省际道路或国道的定位器搜索地址。 最后,应使用按特定区域(如邮政编码或城市)进行搜索的定位器。
构建复合定位器时,您可以基于输入字段的值来指定所使用的定位器。 例如,如果复合定位器使用包含某特定城市道路数据的标准定位器,则您可以过滤掉没有此特定城市名称的所有地址。 使用选择条件将会排除不满足特定地址条件的参与定位器,从而提高地理编码过程的效率。 如果未指定选择条件,系统将根据所有参与定位器对地址进行地理编码。
对地址表进行地理编码时,需要使用选择条件。 在查找窗格中以单行输入格式查找地址时,不适合使用选择条件。
以下步骤介绍的是如何通过创建复合地址定位器地理处理工具创建复合定位器。
- 打开地理处理窗格。
- 单击工作空间顶部分析选项卡上的工具按钮 。
- 单击工作空间顶部分析选项卡上的工具按钮 。
- 选择创建复合地址定位器工具。
- 在地理处理窗格中选择工具箱选项。
- 从地理处理工具箱列表中选择地理编码工具选项。
- 从地理编码工具列表中选择创建复合地址定位器工具。
- 单击地址定位器文本框旁的浏览按钮 。
将出现地址定位器对话框。
- 浏览到要在复合定位器中使用的首个定位器,然后单击打开。
- 重复将定位器添加到地址定位器文本框(会根据需要显示更多)中的过程,直到添加完所有您想添加到复合定位器中的定位器。
将参与定位器添加到地址定位器文本框后,会自动给定显示在名称文本框中的名称。 在对地址表进行地理编码的过程中,对地址进行地理编码所依据的单个定位器的名称将作为一个属性存储在输出要素类中。 也可以单击名称并对其进行更改。 名称中不能包含空格或特殊符号。 名称的最大长度为 14 个字符。
定位器的显示顺序确定了它们在地理编码过程中的使用顺序。 列表顶部的定位器最先使用,依此类推。
- 查看工具字段映射参数中的值。
每个参与定位器都可以指定一组不同的地理编码输入字段。 将参与定位器添加到工具后,将自动创建并映射输入字段。 字段和字段内容将由参与定位器生成。 字段映射参数列出了所有的唯一输入字段,您可看到每个参与定位器的所有输入字段出现次数(子字段)的列表。 这些字段是复合定位器的输入字段。
您可以查看字段映射以决定是否需要修改任何内容。 复合定位器创建的输入字段可具有一些默认的字段名和属性。 例如,字段名称 Street、City、State 和 ZIP 是由两个参与定位器于步骤 11 在下图中填充。 偶尔,您可能发现两个参与定位器本应具有映射相同的字段但却未能这样,这是因为该字段在每个参与定位器中的命名不同。 例如,两个定位器可能均具有邮政编码信息,但其中一个将该数据引用为 ZIP 而另一个将数据引用为 ZIPCode。 这两个值应映射到同一输入字段,但这两个不同的名称可能会导致映射失败。 下一步骤将讨论如何将参与定位器子字段移动到其他输入字段中(这也是字段映射过程的一部分)。
警告:
请勿从字段映射参数中删除任何定位器字段。 所创建的不包含所有定位器字段的复合定位器将无效。
- 为参与定位器映射输入地址字段。
查看每个参与定位器的输入字段,从而确定复合定位器的总输入字段数。 创建复合地址定位器工具上显示的这些字段将显示为复合定位器的输入字段。
字段映射可能涉及到将某参与定位器输入字段移动或重新分组到复合定位器的相应输入字段中。 为此,选择您希望修改的输入字段值。 子字段值显示在右侧。 单击您希望移动的参与定位器子字段值的左侧箭头,从下拉菜单中选择您希望将其移动到的位置,然后单击移动至所选位置按钮。 您还可以使用上箭头按钮 或下箭头按钮 向上或向下移动输入字段,或者可单击删除所选项目按钮 删除输入字段。 单击单个输入字段时会显示这些选项。
复合定位器创建的输入字段可具有一些默认的字段名和属性。 要查看此信息,请单击您希望查看的输入字段,然后单击右侧的属性选项卡。 每个字段均包含一个名称和一个别名,即使用新复合定位器进行地理编码时显示在地理编码地址工具窗格上的名称。 通过修改文本框中显示的值,您可以修改字段的属性。
如果需要为复合定位器创建新的输入字段,请按照下方子步骤操作:
- 单击添加新字段按钮 。
新字段文本框将显示在现有输入字段下方。
- 输入新输入字段的名称。
- 选择新输入字段后,单击右侧的属性选项卡。
- 在名称文本框中键入输入地址字段的名称。
名称中不应包含空格或特殊符号。 其最大长度为 32 个字符。
- 如果想要更改显示在地理编码地址工具窗格上的名称,可在别名文本框中输入别名。
别名可以包含空格或特殊符号。
- 指定输入字段长度(以字符为单位)。
- 通过所提供的复选框,指定在对地址表进行地理编码时输入字段是否为必填字段。
- 或者,要将子字段添加到输入字段,可以单击属性选项卡旁的子字段选项卡,然后单击添加子字段下拉列表并从列表中选择一个值。
创建后可移动和编辑子字段,方法与其他输入字段大体相同。
完成字段映射后,将启用设置选择条件功能。 每个参与定位器仅支持一个选择条件。
- 单击添加新字段按钮 。
- 在工具的选择条件部分中,可以有选择地在选择条件列下的各个参与定位器右侧的文本框中输入表达式。
每个参与定位器仅可添加一个选择条件。 一个有用的选择条件示例是 "City" = 'Atlanta',您可以将其直接输入到文本框中。
- 要更改输出定位器名称和目标值,请单击输出复合地址定位器文本框旁的浏览按钮 。
将出现输出复合地址定位器对话框。
- 指定定位器的存储位置并为定位器命名,然后单击保存。
- 可以选择性地指定结果顺序选项。
如果您的复合定位器中有一个或多个多角色定位器,或者复合定位器中有一个或多个地理编码服务,则可能希望修改此设置。 有关结果顺序工作原理的详细信息,请参阅复合定位器调整提示。
- 使用定位器顺序 - 参与定位器按照添加到创建复合地址定位器工具的顺序排序,并遵守上方所述的传统定位器回退。
按角色和得分排序 - 参与定位器的各个角色将按照精确度从高到低的顺序进行分组和排序。 首先返回更精确角色的结果,然后是较不精确角色的结果;在为相同角色的不同定位器返回结果时,将根据得分进行返回。 如果您有一个多角色定位器和多个单角色定位器,或者有多个多角色定位器,建议您使用此选项。 自动将定位器和角色按照推荐的最佳回退顺序排序。
自定义顺序 - 借助参与定位器的可自定义回退顺序,您可以在多角色定位器的角色之间插入定位器。 不能在多角色地理代码服务之间插入定位器。
- 单击运行 。
完成该过程后,会将定位器添加到目录窗格的定位器文件夹中。 您还可以在之前指定的保存位置查找定位器。 您可以将新创建的复合定位器添加到新工程或现有工程,从而在新工程或现有工程中使用该复合定位器对地址表进行地理编码。
警告:
选择参与定位器时,可以选择引用另一个复合定位器。 但是,请确保未循环使用定位器。 例如,如果复合定位器 A 将复合定位器 B 作为参与定位器,而复合定位器 B 又将复合定位器 A 作为参与定位器,则将形成重复循环,从而导致地理编码失败。
注:
- 复合定位器中最多可包含 30 个参与定位器,但是建议使用的参与定位器不要超过 10 个,否则地理编码可能会非常缓慢。
- 第一个参与定位器的空间参考将用作复合定位器的空间参考。 使用定位器时,默认情况下,将使用与定位器相同的空间参考来保存地理编码结果。
- 如果使用创建定位器或者创建要素定位器工具在本地复合定位器中创建参与定位器,则复合定位器将从定位窗格中的这些定位器返回建议。 使用创建地址定位器工具创建的参与定位器不会通过存储在文件夹中的复合定位器返回建议。
- 将使用创建要素定位器工具创建的定位器添加到复合定位器时,应谨慎对待,原因在于名称要素定位器角色字段的字段映射可能会导致意外行为。 建议您使用通过创建定位器工具创建的基于 POI 角色的定位器。