Portal for ArcGIS 的一个非常有用的功能是可以从 CSV 文件或表映射地址。为此,必须确保门户具有有效的地理编码实用程序服务(用于查找地址)和托管服务器(用于读取地址并将其发送到地理编码实用程序服务)。
设置地理编码实用程序服务
您必须为门户设置一个地理编码实用程序服务才能同时对大量地址进行地理编码,例如,当向地图查看器中添加包含地址的 CSV 文件时。您可以使用 ArcGIS Online 组织中的地理编码服务,或者可以配置在联合 GIS Server 或独立 GIS Server 上运行的您自己的地理编码服务。
有关设置地理编码实用程序服务的详细信息,请参阅配置实用程序服务。有关配置您自己的地理编码服务的信息,请参阅下一部分。
配置您自己的地理编码服务
默认情况下,Portal for ArcGIS 使用在 ArcGIS Online 上托管的世界地理编码服务。如果组织使用自己的定位器数据来查找地址和地名,或者门户无权访问 ArcGIS Online,则发布地理编码服务并将其设置为门户的地理编码实用程序服务。
如果您希望当用户在地图查看器中进行搜索时显示地址或地名建议,则请在自定义地理编码实用程序服务中启用建议功能。
- 按照 ArcGIS Desktop 帮助中创建地址定位器的说明,基于您的数据创建定位器。如果想要使用门户地图查看器中的建议,请在创建定位器时选中创建地址定位器工具上的建议选项。
- 右键单击 ArcGIS Desktop 目录树中的定位器,然后单击共享为服务,从而将定位器作为服务发布。
有关发布服务的详细信息,请参阅 ArcGIS Server 帮助中的如何发布服务。
- 如果创建时未启用定位器上的建议,则可在将其发布后启用地理编码服务上的建议。为 ArcGIS Desktop 或 ArcGIS Server 管理器中的服务打开服务编辑器,单击功能选项卡,然后选中建议操作。
- 按照配置实用程序服务中的相应说明,将生成的服务配置为门户的地理编码实用程序服务。
使用 GIS Server 配置关系数据存储
您设置为门户托管服务器的 GIS Server 站点必须配置有关系数据存储。
- 安装 ArcGIS Data Store。
- 创建关系数据存储。
创建关系数据存储时,请指定您希望用作门户托管服务器的 GIS Server 站点的 URL。
联合 GIS Server 与您的门户
必须先将 GIS Server 站点与门户联合,然后才能将其指定为托管服务器。与门户联合的 GIS Server 站点必须配置为通过 HTTP 和 HTTPS 或仅通过 HTTPS 进行通信。
有关说明,请参阅联合 ArcGIS Server 站点与门户。
指定托管服务器
将您刚刚与门户联合的 GIS Server 站点指定为托管服务器。
- 从服务器窗格的托管服务器部分的下拉列表中选择 GIS Server 站点。
- 单击保存。
将“对表格中的位置进行地理编码”工具配置为使用 Esri World Batch Geocoder
默认情况下,Esri World Batch Geocoder 服务配置为实用程序服务时,该服务将与组织共享。. 要允许组织中的用户和发布者使用对表格中的位置进行地理编码工具针对 Esri World Batch Geocoder 提交批处理地理编码请求,还需要将 Esri World Batch Geocoder 与所有人共享。
- 浏览至我的内容。
- 单击 AGO World Geocoder 定位器项目打开其详细信息页面。
- 在概览选项卡上单击共享并选中所有人。
- 单击确定。
配置地理编码实用程序服务时,在对表格中的位置进行地理编码工具中使用 Esri World Batch Geocoder 将消耗您所使用的 ArcGIS Online 组织中的配额。Esri World Batch Geocoder 的并发批处理地理编码请求数无法配置并始终设置为一。将任何其他定位器服务与对表格中的位置进行地理编码工具一起使用时将不会消耗配额,并且其他定位器可以配置为发送多个并发批处理地理编码请求。
为您的地理编码实用程序服务配置建议数目的并发批处理地理编码请求
运行在联合 GIS Server 站点的 GeocodingTools 地理处理服务 也可使用地理编码实用程序服务。地理处理服务可向地理编码实用程序服务发送多个并发请求,从而加快批量地理编码的整体执行速度。地理处理服务发出的并发请求数目可由门户管理员配置。如果地理处理服务向地理编码实用程序服务发出过多的并发请求,地理编码服务可能会运行不佳,这可能会导致在运行地理处理服务时故障增加。因此,管理员应根据地理编码实用程序服务的可用实例数目来设置地理处理服务所使用的实例数目,还应配置 GeocodingTools 地理处理服务的任意实例可发出的并发批处理地理编码请求的数目。
最佳做法是,地理编码实用程序服务的实例数目必须始终大于或等于 GeocodingTools 地理处理服务的可用实例数目。并发批处理地理编码请求的数目应设置为与地理编码实用程序服务和地理处理服务二者的可用实例数目成正比。例如,如果地理编码实用程序服务的可用实例数目为 8,地理处理服务的可用实例数目为 2,则并发批处理地理编码请求的建议数目应设置为 4。地理处理服务在执行后,会向地理编码实用程序服务发送 4 个并发批处理地理编码请求。如果有更多实例可供地理编码实用程序服务使用,则应相应调整建议的并发批处理地理编码请求数目,以充分利用可供地理编码实用程序服务使用的实例。
请注意,Esri World Batch Geocoder 无法配置为使用多个并发请求。以下配置适用于配置为实用程序服务的其他所有已发布定位器服务。
要为您的地理编码实用程序服务配置建议数目的并发批处理地理编码请求,请执行以下步骤:
- 转到 Portal for ArcGIS Directory 共享位置并以具有管理权限的成员身份登录。URL 格式为 https://webadaptorhost.domain.com/<webadaptorname>/sharing/rest。
- 浏览至主页 > 门户 > 自助。
- 在页面底部,单击更新。
- 在地理编码服务文本框中,您将看到当前通过门户配置的地理编码实用程序服务。对于支持批处理地理编码的地理编码实用程序服务(可被识别,前提是其 batch 属性已设置为 true),您可以配置建议数目的并发批处理地理编码请求。选择您希望通过该属性进行配置的地理编码器。地理编码服务文本框中的 JSON 将采用以下格式:
[{ "url" : "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "northLat" : "Ymax", "southLat" : "Ymin", "eastLon" : "Xmax", "westLon" : "Xmin", "name" : "Esri World Geocoder", "batch": false, "suggest" : true }, { "url" : "https://machine.domain.com/server/rest/services/Locators/USA/GeocodeServer", "name" : "Streetmap Premium USA Geocoder", "placeholder" : "Find address or place", "singleLineFieldName" : "SingleLine", "batch" : true, "placefinding" : true, "suggest" : true, "zoomScale" : 10000 }]
- 将 numBatchThreads 属性添加到您希望与 GeocodingTools 地理处理服务配合使用的所有地理编码实用程序服务中。要设置 numBatchThreads 值,首先确定您希望针对给定地理编码实用程序服务启用的并发批处理地理编码请求的数目,并将属性设置为等于该数目。请注意,要在地理编码实用程序服务上配置 numBatchThreads,必须将 batch 设置为 true。
在本示例中,将 Streetmap Premium USA Geocoder 实用服务允许的并发批处理地理编码请求的数目设置为 4。
[{ "url" : "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "northLat" : "Ymax", "southLat" : "Ymin", "eastLon" : "Xmax", "westLon" : "Xmin", "name" : "Esri World Geocoder", "batch": false, "suggest" : true }, { "url" : "https://machine.domain.com/server/rest/services/Locators/USA/GeocodeServer", "name" : "Streetmap Premium USA Geocoder", "placeholder" : "Find address or place", "singleLineFieldName" : "SingleLine", "batch" : true, "placefinding" : true, "suggest" : true, "zoomScale" : 10000, "numBatchThreads" : 4 }]
- 在更新地理编码服务文本框中的 JSON 后,单击页面底部的更新组织。
在 AnalyzeGeocodeInput 和 BatchGeocode 任务中,新增 url 属性的地理编码实用程序服务的 numBatchThreads 应用作 geocodeServiceURL。有关通过 ArcGIS REST API 任务在 GeocodingTools 服务内运行工具的信息,请参阅 ArcGIS REST API 文档。