Skip To Content

Configure the portal to geocode addresses

A useful feature of Portal for ArcGIS is the ability to map addresses from a CSV file or table. To allow this, you must make sure the portal has a valid geocode utility service (to find the addresses) and a hosting server (to read the addresses and send them to the geocode utility service).

Set a geocode utility service

You must set a geocode utility service for your portal to geocode a large number of addresses at a time, such as when you add a CSV file that contains addresses to the map viewer. You can use a geocode service from an ArcGIS Online organization, or you can configure your own geocode service that runs on a federated GIS Server or a stand-alone GIS Server.

See Configure utility services for more information on setting a geocode utility service. For information on configuring your own geocode service, see the next section.

Configure your own geocode service

Portal for ArcGIS uses the World geocode 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 geocode service and set it as your portal's geocode utility service.

Enable Suggest capabilities on your custom geocode utility service if you want address or place-name suggestions to appear when users search in the map viewer.

  1. Follow the instructions in Creating an address locator in the ArcGIS Desktop help to create a locator from your data. If you want to use suggestions in the portal map viewer, check the Suggest option on the Create Address Locator tool when you create the locator.
  2. Publish the locator as a service by right-clicking the locator in the Catalog tree in ArcGIS Desktop and clicking Share As Service.

    For more information on publishing a service, see How to publish a service in the ArcGIS Server help.

  3. If you did not enable suggestions on the locator when you created it, you can enable suggestions on the geocode service after it is published. Open the Service Editor for the service in ArcGIS Desktop or ArcGIS Server Manager, click the Capabilities tab, and check the Suggest operation.
  4. Configure the resultant service as your portal's geocode utility service by following the applicable instructions in Configure 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 a relational data store configured with it.

  1. Install ArcGIS Data Store.
  2. 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.

  1. Choose the GIS Server site from the drop-down list in the Hosting Server section of the Server pane.
  2. Click Save.

Configure the Geocode Locations from Table tool to use the Esri World Batch Geocoder

By default, the Esri World Batch Geocoder service is shared with the organization when you configure it as a utility service. To allow users and publishers in the organization to submit batch geocoding requests against the Esri World Batch Geocoder using the Geocode Locations from Table tool, you also need to share the Esri World Batch Geocoder with Everyone.

  1. Browse to My Content.
  2. Click the AGO World Geocoder locator item to open its details page.
  3. Click Share on the Overview tab and check Everyone.
  4. Click OK.

Using the Esri World Batch Geocoder in the Geocode Locations from Table tool consumes credits in the ArcGIS Online organization you used when configuring the geocoding utility service. The number of concurrent batch geocode requests for the Esri World Batch Geocoder cannot be configured and is always set to one. Using any other locator service with the Geocode Locations from Table tool will not consume credits, and other locators can be configured to send multiple concurrent batch geocoding requests.

Configure the suggested number of concurrent batch geocoding requests for your geocode utility service

The geocode utility service 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 geocode utility service, the geocode service 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 geocode utility 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 geocode utility 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 geocode utility service and the geoprocessing service. For example, if there are eight instances available for the geocode utility service and two instances available for the geoprocessing service, the suggested number of concurrent batch geocoding requests should be set to four. When the geoprocessing service is executed, it will send four concurrent batch geocoding requests to the geocode utility service. In case more instances are available for the geocode utility service, the suggested number of concurrent batch geocoding requests should be appropriately adjusted to maximize the utilization of instances for the geocode utility 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 geocode utility service, use the following steps:

  1. 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.
  2. Browse to Home > Portals > Self.
  3. At the bottom of the page, click Update.
  4. In the Geocode Service text box, you will see the geocoding utility services currently configured with the portal. For the geocode utility services that allow batch geocoding (which can be identified if they have the batchproperty set to true), you can configure the suggested number of concurrent batch geocoding requests. Choose the geocoder 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
        }]

  5. Add the property numBatchThreads to all of the geocode utility services that you want to use with the GeocodingTools geoprocessing service. In order to set the numBatchThreads value, first determine the number of concurrent batch geocoding requests you want to enable for a given geocode utility service, and set the property equal to that number. Note that in order to configurenumBatchThreads on the geocoding utility service, it 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
        }]

  6. After you have updated the JSON in the Geocode Service text box, click Update Organization at the bottom of the page.

The url of the geocode utility service with the added numBatchThreads property should be used 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.