地址数据和地点一直在发生变化 - 新的企业不断出现,新的房产开发项目不断启动,以及新的道路不断开始铺设。 位置数据一直在更新,因此为组织获取到最新数据则尤为重要。 获取到最新的地址或地点数据(参考数据)后,您可以相应地更新定位器,以确保您的组织正在搜索最新的可用数据。
更新参考数据
某市政府希望将某个新的房产开发项目中的一组新宗地添加到其参考数据中,且邮局需要获得该房产开发项目的路径以便为其发送邮件。 您需要将新宗地添加到一个要素类中,但该操作并不会自动更新定位器。 每次创建定位器时,其中都将包含创建时所使用的参考数据的快照。 在更改参考数据后,您可以重新创建定位器以反映这些更改。 如果选择不重新创建定位器,则将使用现有定位器继续执行地理编码。 现有定位器将根据其创建时的参考信息状态生成地理编码结果。
此外,使软件保持在最新状态的很重要的一个原因是,每个版本定位器的规则和本地知识都会发生变化。 如果希望得到最佳的地理编码体验和结果,就应该在每个版本中重新创建定位器。
使用新数据更新定位器
有两种方法可以帮助您使用最新的参考数据来更新定位器。 您可以就地更新数据并运行重新构建地址定位器工具,或使用创建定位器工具创建新的定位器。 您可以使用 ModelBuilder 中的模型自动执行以下任一过程:从目录窗格中的工程历史记录中重新运行该工具,或使用 Python 脚本运行。
注:
如果使用 ArcGIS Enterprise 地理数据库中的版本化数据,则可基于所选版本的数据创建定位器。 如果重新构建定位器,将根据原来用于定位器的那一版本的数据库执行重新构建。
更新本地定位器
如果您需要对数据进行就地管理和精选,请使用创建定位器工具重新创建名称相同的现有定位器,或使用重新构建地址定位器工具通过最新的参考数据更新您的定位器。 更新所有相关表后,您可以运行重新构建地址定位器工具,该工具将创建一个包含最新数据的新定位器。 使用重新构建地址定位器工具时,该工具要求参考数据路径、字段映射和表与原始定位器完全相同。 如果其他用户或应用程序正在使用该定位器,则定位器将被锁定且无法重新构建。 因此,建议您在本地重新构建您的定位器,然后在组织中的共享驱动器上将其共享。 如果要在网络驱动器上共享您的定位器,建议您使用定位器包。 使用定位器包可为每个用户解包该定位器,并且在一名组织成员使用定位器时不会锁定定位器。
或者,如果要添加表或更新字段映射,则始终可以使用创建定位器工具或创建要素定位器工具来创建新的定位器。 此工具将基于最新的参考数据来创建定位器,您可以调整字段映射或添加其他参考数据表以提高地理编码的精度。 通过以下步骤了解如何使用最新的参考数据更新本地存储的现有定位器和复合定位器。
更新定位器
以下内容将介绍更新现有定位器的建议步骤:
- 更新用于构建定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具重新创建定位器。
或者,从工程中移除定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 确保重新构建的定位器返回新地址和地点的结果。
更新复合定位器
由于无法使用重新构建地址定位器工具来重新构建复合定位器,因此必须更新复合定位器的参与定位器,以使复合定位器保持在最新状态。
使用以下步骤更新现有的复合定位器:
- 更新用于构建参与定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具重新创建每个参与定位器。
或者,从工程中移除定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 确保重新构建的复合定位器返回新地址和地点的结果。
更新定位器服务
注:
在服务器上更新定位器服务之前,必须在本地更新定位器。
使用数据存储更新定位器服务
当使用在服务器上注册为数据存储的文件夹时,可以使用以下工作流更新定位器服务或复合定位器服务。 如果定位器已使用 Python 脚本发布,则假定 copy_data_to_server 参数已设置为 False。这是推荐的工作流。
更新定位器服务
以下步骤假定您已创建定位器并使用数据存储发布定位器。 如果尚未执行此操作,则应在尝试下面概述的更新之前执行此操作。 借助以下步骤,通过将文件夹用作注册的数据存储来更新定位器服务:
- 更新用于构建定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具在本地重新创建定位器。
或者,从工程中移除定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 在服务器上停止定位器服务。
- 将更新的定位器从本地计算机复制到注册为数据存储的服务器上的目录中。
- 启动服务。
- 确保更新的定位器服务在服务的 REST 端点上正常运行,或者将服务添加到 ArcGIS Pro 中,并在定位窗格中使用服务。
更新复合定位器服务
以下步骤假定您已创建复合定位器并使用数据存储发布定位器。 如果尚未执行此操作,则应在尝试下面概述的更新之前执行此操作。 借助以下步骤,通过将文件夹用作注册的数据存储来更新复合定位器服务:
- 更新用于构建参与定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具在本地重新创建参与定位器。
或者,从工程中移除定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 在服务器上停止复合服务。
- 将更新的参与定位器从本地计算机复制到注册为数据存储的服务器上的目录中。
- 启动服务。
- 确保更新的复合服务在服务的 REST 端点上正常运行,或者将服务添加到 ArcGIS Pro 中,并在定位窗格中使用服务。
更新已复制到服务器的定位器服务
以下工作流可用于更新已在发布时复制到服务器的定位器服务或复合定位器服务。 如果定位器已使用 Python 脚本发布,则假定 copy_data_to_server 参数已设置为 True。
更新定位器服务
使用以下步骤更新已在发布时复制到服务器的定位器服务:
- 更新用于构建定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具在本地重新创建定位器。
或者,从工程中移除定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 使用引用已更新定位器的本地定位器覆盖现有的定位器服务。
或者,要自动执行此步骤,请使用 CreateGeocodeSDDraft 函数中的示例代码,并将 overwrite_existing_service 参数设置为 True。
- 确保更新的定位器服务在服务的 REST 端点上正常运行,或者将服务添加到 ArcGIS Pro 中,并在定位窗格中使用服务。
更新复合定位器服务
以下步骤假定您已创建复合定位器。 如果尚未执行此操作,则应在尝试下面概述的更新之前执行此操作。 使用以下步骤更新已在发布时复制到服务器的复合定位器服务:
- 更新用于构建参与定位器的参考数据。
- 通过从历史记录窗格、ModelBuilder 模型或 Python 脚本中重新运行该工具,使用创建定位器或创建要素定位器工具在本地重新创建参与定位器。
或者,从工程中移除参与定位器,以避免方案锁错误,并将包含更新数据的定位器添加到重新构建地址定位器工具中,然后运行该工具。
- 使用引用已更新参与定位器的本地复合定位器覆盖现有的复合服务。
要自动执行此步骤,请使用 CreateGeocodeSDDraft 函数中的示例代码,并将 overwrite_existing_service 参数设置为 True。
- 确保更新的复合服务在服务的 REST 端点上正常运行,或者将服务添加到 ArcGIS Pro 中,并在定位窗格中使用服务。
这些步骤可确保定位器服务的停机时间最短。 使用这些步骤更新定位器服务时,唯一的服务停机时间是将新定位器复制到正确的服务器文件夹中。 此过程中最耗时的部分是根据已更新的参考数据创建新定位器;在此解决方案中,当旧定位器服务仍在运行的同时,定位器的创建将在磁盘上进行。