A useful feature of ArcGIS Enterprise portals is the ability to map addresses or place names from a Comma Separated Values (CSV) file, Microsoft Excel file, or table. To allow this, you must make sure the portal has a valid locator service (to find the addresses or places) and a hosting server (to read the addresses or places and send them to the locator service).
Legacy:
Locator services were previously called geocode services. Certain areas of the software user interface and API still use the term geocode service for backward compatibility.
Set a locator service
You must set a locator service for your portal to geocode a large number of addresses or place names at a time, such as when you add a CSV file that contains addresses to Map Viewer. You can use a locator service from an ArcGIS Online organization, or you can publish your own locator (geocode) service to one of the portal's federated servers or a stand-alone GIS Server.
The ArcGIS Online locator service, with batch geocoding enabled, must be configured to allow users to create locator views. If the ArcGIS Online geocode service proxy is deleted, the locator views will no longer function. If you configured the ArcGIS Online locator service prior to upgrading to ArcGIS Enterprise 10.6.1, then you must disable and re-enable the Geocode ArcGIS Online utility service to support locator views.
See Configure utility services for more information on setting a locator in your portal to enable geocoding. For information on configuring your own service, see the next section.
Configure your own locator service
ArcGIS Enterprise portals use the ArcGIS World Geocoding Service hosted in ArcGIS Online by default. If your organization has its own locator data to use for finding addresses and place names, or if your portal does not have access to ArcGIS Online, publish a locator (geocode) service and set it as your portal's locator.
Enable Suggest capabilities on the locator service if you want address or place name suggestions to appear when users search in Map Viewer.
- Follow the instructions in Creating an address locator in the ArcMap help to create a locator from your data. If you want to use suggestions in Map Viewer, check the Suggest option on the Create Address Locator tool when you create the locator.
- Publish the locator as a service by right-clicking the locator in the Catalog tree in ArcMap or ArcCatalog and clicking Share As Service.
For more information on publishing a service, see How to publish a service in the ArcGIS Server help.
- If you did not enable suggestions on the locator when you created it, you can enable suggestions on the locator service after it is published. Open the Service Editor for the service in ArcMap or ArcGIS Server Manager, click the Capabilities tab, and check the Suggest operation.
- Configure the resultant service as a locator for your portal. Go to Organization > Edit Settings > Utility Services.
Configure a relational data store with a GIS Server
The GIS Server site you set as your portal's hosting server must have an ArcGIS Data Store relational data store configured with it.
- Install ArcGIS Data Store.
- Create a relational data store.
When creating the relational data store, specify the URL of the GIS Server site you want to use as your portal's hosting server.
Federate the GIS Server with your portal
Before you can designate a GIS Server site as a hosting server, you must federate it with the portal. The GIS Server site you federate with the portal must be configured to communicate through HTTP and HTTPS or HTTPS only.
For instructions, see Federate an ArcGIS Server site with your portal.
Designate the hosting server
Specify the GIS Server site you just federated with your portal as the hosting server.
- Choose the GIS Server site from the drop-down list in the Hosting Server section of the Server pane.
- Click Save.
Configure the Geocode Locations from Table tool to use the Esri World Batch Geocoder and locator views
By default, the Esri World Batch Geocoder service is shared with the organization. Locator views of the Esri World Batch Geocoder are not shared at all by default. To submit batch geocoding requests against the Esri World Batch Geocoder and against locator views using the Geocode Locations from Table tool or using Geocode Table, you need to share the service with everyone.
- Browse to the My Content tab of the content page.
- Click the AGO World Geocoder locator, or the corresponding locator view that needs to be shared, and open its item details page.
- Click Share on the Overview tab and check Everyone.
- Click OK.
Using the Esri World Batch Geocoder or a locator view in the Geocode Locations from Table tool consumes credits in the ArcGIS Online organization you use when configuring the portal's locator (geocoding utility service). The number of concurrent batch geocode requests for the Esri World Batch Geocoder and for locator views cannot be configured and is always set to one. Using any other locator service with the Geocode Locations from Table tool does not consume credits, and you can configure additional locators to send multiple concurrent batch geocoding requests.
Add logging for more feedback while batch geocoding
By default, the Geocoding Tools geoprocessing service message level is set to Warning. For more detailed error messages, and for better updates on the status of your batch geocoding job, you can set the logging level of the Geocoding Tools geoprocessing service to Info.
- Browse to the Server Manager of your hosting server.
- Click the Utilities folder in the Server Manager directory.
- Click the GeocodingTools geoprocessing service.
- Click the Parameters banner on the left and change Message Level to Info. Then, click the Save and Restart button in the upper right corner.
Changing the logging level to Info will cause a slight decrease in performance, but will provide better feedback of job progress and more information about possible errors, should they occur. These benefits can be seen in both the Geocode Locations from Table tool and the Geocode Table tool.
Configure the suggested number of concurrent batch geocoding requests for your locator
The portal's locator can also be used by the GeocodingTools geoprocessing service running on your federated GIS Server site. The geoprocessing service can send multiple concurrent requests to the geocode utility service to speed up the overall execution for batch geocoding. The number of concurrent requests made by the geoprocessing service can be configured by a portal administrator. If the geoprocessing service is making excessive concurrent requests to the locator, it may perform poorly, and this could result in increased failures when running the geoprocessing service. For this reason, the administrator should set the number of instances used by the geoprocessing service based on the number of instances available for the locator service and also configure the number of concurrent batch geocoding requests that can be made from any instance of the GeocodingTools geoprocessing service.
As a best practice, the number of instances for the locator service must always be greater than or equal to the number of instances available for the GeocodingTools geoprocessing service. The number of concurrent batch geocoding requests should be set proportional to the number of instances available for both the locator and geoprocessing services. For example, if there are eight instances available for the locator service and two instances available for the geoprocessing service, the set the concurrent batch geocoding requests to four. When the geoprocessing service is executed, it sends four concurrent batch geocoding requests to the locator service. In case more instances are available for the locator service, adjust the number of concurrent batch geocoding requests appropriately to maximize the utilization of instances for the locator service.
Note that the Esri World Batch Geocoder cannot be configured to use more concurrent requests. The following configuration applies to all other published locator services that are configured as utility services.
To set the suggested number of concurrent batch geocoding requests for your locator service, use the following steps:
- Go to the Portal for ArcGIS Directory sharing location and log in as a member with administrative privileges. The URL is in the format https://webadaptorhost.domain.com/<webadaptorname>/sharing/rest.
- Browse to Home > Portals > Self.
- At the bottom of the page, click Update.
- In the Geocode Service text box, you will see the locator services currently configured with the portal. For the services that allow
batch geocoding (those services that have the batchproperty set to true), you can configure the suggested number of
concurrent batch geocoding requests. Choose the service that you want to configure with this property. The JSON in the Geocode Service text box will be in the following format:
[{ "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 }]
- Add the property numBatchThreads to all of the locator services that you want to use with the GeocodingTools geoprocessing service. To set the numBatchThreads value, first determine the number of concurrent batch geocoding requests you want to enable for a given locator service, and set the property equal to that number. Note that to configure numBatchThreads on the locator service, the service must have batch set to true.
In this example, the number of allowable concurrent batch geocoding requests for the Streetmap Premium USA Geocoder utility service is set to four.
[{ "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 }]
- After you have updated the JSON in the Geocode Service text box, click Update Organization at the bottom of the page.
Use the url of the locator service with the added numBatchThreads property as the geocodeServiceURL in the AnalyzeGeocodeInput and BatchGeocode tasks. For information on running the tools within the GeocodingTools service through ArcGIS REST API tasks, see the ArcGIS REST API documentation.