GIS, Cartographic and Spatial Analysis Tools: Geocoding

This guide provides an overview of geographic software, libraries and tools supported by or recommended by RDS staff.

Geocoding Data

Geocoding is the process of identifying spatially referenced information (coordinates) for locations (usually a list of addresses or place names). This is one of the most common geospatial services and there are a number of tools available to you.  To work, these tools require an extant database of locations.  These are known as gazetteers.  For a partial list of free gazetteers see the GIS and Spatial Data Research Guide.  However, many of the most powerful and widely used gazetteers (such as those built by ESRI or Google) are proprietary and not available for unlimited free use.

GIS Based Geocoding

ESRI: ArcGIS Pro comes with a suite of powerful geocoding tools (see the geocoding toolbox).  These tools will allow you to make an address locator form source data.

  • The ArcGIS Pro World Geocoding service is built in to ArcGIS Pro.  This is a powerful and easy to use service. However, this is is a credit based (not free) service.  Your Columbia ArcGIS Online account (see the ESRI tab for license information) will provide  you with a limited number of credits.  If you exhaust your allotment of credits, you may request more by reaching out to the GIS Service Center at CIESIN to request more. 
  • You can also access the ESRI World Geocoding Service directly through the ArcGIS Rest API

QGIS: In general, the geocoding tools in QGIS are not been as powerful and flexible as the ESRI alternatives. However, there are a couple of plugins available that may be useful:

  • The MMQGIS plugin has a geocding toolset that include:
    • The Geocode from street layer tool which allows you to create an address locator from source data in a csv format
    • The Geocode CSV with Web Service tools which allow you to geocode a table of addresses through several remote geocoding services. Note that some of these services will have small limits on the number of addresses you may submit.  Also, the number of input fields is limited and awkward.  Still, this is an easy tool to use for smaller and simpler projects.  The services currently available are:​
      • Nominatim - an open source world geocoding service built from Open Streetmap data
      • The United States Census Bureau geocoder (US addresses only)
      • The Google world geocoding service.  Note that this service requires you to have an geocoding API key in advance and has a daily limit (currently 2,500 addresses). 
      • ESRI World geocoding Service.  Note that this service requires this ESRI server URL: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/findAddressCandidates and also has a daily limit.
  • The Pelias Geocoding plugin allows geocoding through the Pelias open-source world geocoder.  Access to the geocoder is available through two services, openrouteservice and geocode.earth Note that in both cases you will have to apply for an API key to access the services.  It is not clear what the limit to these services is.

R: There are R packages that enable geocoding services.  These include:

  • ggmap for geocoding through online mapping services including Google (note that an API key and daily limits will apply) 
  • tidygeocoder for geocoding through Nominatim or the US Census Geocoder.

Python: In addition to ArcPy which can access the geocoding tools in ArcGIS, Geopy is a geocoding client for several popular geocoding web services including Nominatim and Google. 

Free Geocoding Services

Free as in speech: These are free services built on open source or otherwise public gazetteers. Several of these are built on data from OpenStreetMap. OSM also maintains their own wiki page of geocoding search engines.

  • Nominatim is a popular world geocoder using OSM data.
  • OSMNames: is derived from OSM data, the entire database is available for download and there is (at least some) ability to submit requests through their API.
  • Pelias is a geocoder built from open data and the entire database is available for download.
  • Photon: Free ("extensive usage will be throttled") geocoder built on OSM data. Or can be downloaded from the github repo.
  • US Census Geocoding API: for United States street addresses.
  • Geoclient API for New York City street addresses.

Free as in beer: There are a number of other services that will geocode a limited number of places/addresses for free, but charge for larger requests.  We will try to list the limit of free requests (2,500 at a time is currently a common limit), but note that these may change at any time. In some cases these services are built from public gazetteers; more often the source data is proprietary (or unclear).  Be mindful of any applicable usage restrictions when using these services.

  • Google gazetteer:  The popular Google geocoder may be available for limited free use. The limits for this service have been significantly curtailed over the year, currently they allow 2,500 geocodes per day.  Also, to apply for an API key google requires an account with a credit card account on file.  There are a variety of tools that will allow you to access the API (see also the QGIS and R sections above). 
    • This online geocoder allows you to upload a csv and send requests against the Google Maps API.
    • This Github repo has a tool for geocoding a CSV against the Google Maps API, although it can be edited to use other services.
  • Texas A&M geoservices provides geocodine services for US addresses only.  Source data is compiled from a variety of public and proprietary sources.  Geocoding is available through API access and a downloadable desktop client.  Alternatively, you can upload your own tables (up to 2,500 at a time) through their website.
  • BatchGeo will let you do an unknown amount of geocoding from a table for free through their website. 
  • CARTO offers address geocoding through the builder interface as well as their API.  They also have an open source CARTO Internal Geocoder for geocoding for administrative units and postal codes only. 
  • Mapbox says they allow up to 100,000 request per day agains their world geocoding data.
  • HERE.com will allow up to 250,000 requests per month against their own source data. 
  • Geocodio allows up to 2,500 geocodes a day (US and Canada only) through their website or API. 
  • OpenCage allows up to 2,500 geocodes a day through their API.  World coverage built through a variety of open data sources. 
  • LocationIQ API promises 10,000 geocodes a day against their own data.