ArcGIS Enterprise 门户一个非常有用的功能是可以从逗号分隔值 (CSV) 文件、Microsoft Excel 文件或表映射地址或地名。为此,必须确保门户具有有效的定位器服务(用于查找地址或地点)和托管服务器(用于读取地址或地点并将其发送到定位器服务)。
旧版本:
定位器服务之前称为地理编码服务。在某些地区,软件用户界面和 API 仍然使用术语“地理编码服务”以便向后兼容。
设置定位器服务
您必须为门户设置一个定位器服务才能同时对大量地址或地名进行地理编码,例如,当向 Map Viewer 中添加包含地址的 CSV 文件时。您可以使用 ArcGIS Online 组织中的定位器服务,或者可以向门户的联合服务器之一或独立的 GIS Server 发布您自己的定位器(地理编码)服务。
启用批量地理编码的 ArcGIS Online 定位器服务必须配置为允许用户创建定位器视图。如果 ArcGIS Online 地理编码服务代理被删除,则定位器视图将不再运行。如果在升级到 ArcGIS Enterprise 10.6.1 之前配置了 ArcGIS Online 定位器服务,则必须禁用并重新启用 Geocode ArcGIS Online 实用程序服务以支持定位器视图。
有关在门户中设置定位器以启用地理编码的详细信息,请参阅配置实用程序服务。有关配置您自己的服务的信息,请参阅下一部分。
配置您自己的定位器服务
默认情况下,ArcGIS Enterprise 门户使用在 ArcGIS Online 中托管的 ArcGIS World Geocoding Service。如果组织使用自己的定位器数据来查找地址和地名,或者门户无权访问 ArcGIS Online,则发布定位器(地理编码)服务并将其设置为门户的定位器。
如果您希望当用户在 Map Viewer 中进行搜索时显示地址或地名建议,则请在定位器服务中启用建议功能。
- 按照 ArcMap 帮助中创建地址定位器的说明,基于您的数据创建定位器。如果想要使用Map Viewer中的建议,请在创建定位器时选中创建地址定位器工具上的建议选项。
- 右键单击 ArcMap 或 ArcCatalog 目录树中的定位器,然后单击共享为服务,从而将定位器作为服务发布。
有关发布服务的详细信息,请参阅 ArcGIS Server 帮助中的如何发布服务。
- 如果创建时未启用关于定位器的建议,则可在将其发布后启用关于定位器服务的建议。为 ArcMap 或 ArcGIS Server 管理器中的服务打开服务编辑器,单击功能选项卡,然后选中建议操作。
- 将生成的服务配置为门户的定位器。转至组织 > 编辑设置 > 实用程序服务。
使用 GIS Server 配置关系数据存储
您设置为门户托管服务器的 GIS Server 站点必须配置有 ArcGIS Data Store 关系数据存储。
- 安装 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 和定位器视图的并发批量地理编码请求数量无法配置并始终设置为一。将任何其他定位器服务与对表格中的位置进行地理编码工具一起使用时不会消耗配额,并且可以将其他定位器配置为发送多个并发批量地理编码请求。
批量地理编码时添加日志记录以获得更多反馈
默认情况下,将地理编码工具地理处理服务的消息级别设置为警告。若要了解更详细的错误消息,以及更好地更新批处理地理编码作业的状态,可将地理编码工具地理处理服务的日志记录级别设置为信息。
- 浏览到您的托管服务器的 Server Manager。
- 单击 Server Manager 目录中的实用程序文件夹。
- 单击 GeocodingTools 地理处理服务。
- 单击左侧的参数通栏,将消息级别更改为信息。接下来,单击右上角的保存并重新启动按钮。
将日志记录级别更改为信息将导致性能轻微下降,但也会提供更好的作业进度反馈和更多可能出现错误的相关信息。这些优势在对表格中的位置进行地理编码工具和地理编码表工具中均有所显现。
为您的定位器配置建议数目的并发批量地理编码请求
运行在联合 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 任务中,使用新增 numBatchThreads 属性的定位器服务的 url 作为 geocodeServiceURL。有关通过 ArcGIS REST API 任务在 GeocodingTools 服务内运行工具的信息,请参阅 ArcGIS REST API 文档。