创建定位器工具允许您将多个参考数据图层和角色组合成一个定位器,以便一次搜索多种类型的位置。
多角色定位器
多角色定位器由多个参考数据图层和定位器角色组成。 多角色定位器可用于将来自多个源和多个定位器角色的具有不同几何类型的多个数据图层组合成一个定位器。 这样,您就可以使用一个定位器来搜索屋顶位置、插入街道位置、感兴趣点、邮政编码以及行政区域。 创建多角色定位器将减少冗余信息和候选项,这将有助于提高性能以及减小定位器在磁盘上的大小。
使用多角色定位器将重复的地理编码结果最小化
创建定位器工具从用于构建定位器的参考数据中提取详细信息。 为此,您可以创建一个多角色定位器,从而最大程度地减少重复几何或跳过建议和地理编码结果中精度较低的候选项。 此最大程度地减少重复的过程有助于降低定位器的大小,并提高定位器的性能和候选项排序。 复合定位器不具备此功能,且将返回相同位置的重复候选项。
例如,可使用上面的数据,基于点地址和名为 SanDiegoComposite 的街道地址角色并通过两个单独的定位器来创建一个复合定位器。 基于“点地址”和“街道地址”角色为两个名为 SanDiegoMultiroleZip 的角色创建多角色定位器。 在定位窗格中搜索 15815 Cope Rd, 92065 的结果如下所示。
从其他角色的参考数据中恢复缺失的属性
多角色定位器允许您恢复缺失的属性,这些属性在用于定位器中每个指定角色的参考数据中不可用。 创建定位器工具使用的两种方法在构建多角色定位器时恢复缺失的属性,即使用 ID 链接不同角色之间的属性,以及使用面数据进行行政区域的空间链接。
使用连接 ID 字段来链接不同角色中的相同属性
创建多角色定位器时,可为具有相同 ID 的要素恢复参考数据图层和角色之间的缺失属性。 当一个角色中特定 ID 的参考数据中缺少相应的字段值,但其他角色中相同 ID 的参考数据中存在该字段值的情况下,就会用到此功能。 这需要假定在整个参考数据中,将同一 ID 的同一值分配给同一要素。 在下方用于点地址角色的数据中,Yosemite Blvd 缺少城市名称,因此定位器不会返回匹配项或在此记录的输出中包含城市名称。
但是,如果您的城市边界参考数据包含相同 CityID 的相应城市值并将“城市”角色添加到定位器中,则创建定位器工具将使用城市和点地址参考数据中完全相同的 CityID 值来恢复点地址记录的 Waterford。
因此,输入地址 12725 Yosemite Blvd, Waterford 在多角色定位器中匹配且得分为 100,同时缺失的城市名称将添加到输出中。
注:
构建定位器时,主要参考数据中的 ObjectID 字段的值不能用作在不同角色之间链接属性的 ID。 使用 ObjectID 字段的值可能会增加定位器的大小,并降低批量地理编码性能和地理编码质量。
使用空间链接来恢复缺失的行政区域名称
如果相应行政区域的参考数据为面要素,且行政区域角色已添加到多角色定位器中,则可以在空间上恢复缺失的行政区域名称并将其添加到定位器中。 创建定位器工具将使用空间计算来确定哪个行政区域面包括每个地址,并自动为每个地址分配相应的行政区域名称。
例如,如果使用下面的参考数据基于“点地址”角色构建定位器,则 Yosemite Blvd 的记录将再次缺少城市值。 但是,这次将没有包含将数据链接在一起的 ID 的 CityID 字段,这一点已在上一部分中进行了说明。 但是,如果将参考面要素的“城市”角色添加到定位器,则可以在空间上为“点地址”角色恢复城市值。
Yosemite Blvd 的点位于为沃特福德市定义的面中,因此将添加该值而非原始 PointAddress 要素类的空城市名称。 因此,多角色定位器能够匹配输入地址 12725 Yosemite Blvd, Waterford 且得分为 100,同时缺失城市名称将添加到输出中:
注:
使用创建定位器工具构建定位器时,通过连接 ID 来恢复值的优先级要高于空间计算的优先级。 因此,如果在参考数据中有可用的连接 ID 值,且该值由参与多角色定位器的角色使用,则不会执行空间计算。
复合定位器使用情况
有时,多角色定位器不适用于特定工作流。 具体而言,可能存在以下情况:定位器需要多个需要相同类型角色的参考数据图层,且无法将参考数据合并为单个数据集。 在这种情况下,您可以创建多个单独的定位器并将其合并成一个复合定位器。 有关复合定位器的详细信息,请参阅将多个定位器组合成复合定位器。