Service Objects is pleased to announce a new service: DOTS Address Geocode – International. This service aggregates many datasets from all around the world to return the best latitude, longitude and address location details possible. Whether you want to map the location of a client, plot a collection of points of a large number of clients, get basic address information, or even obtain basic knowledge about the existence of a location, Address Geocode – International should be able to help.
Geocoding around the world
Service Objects has been geocoding US and Canadian addresses for many years, and this new service improves these as well, including the introduction of property/rooftop level matches for many cases. With new aggregated datasets, locations for rural addresses become even better. Let’s look at a few examples of how things look around the world. For privacy reasons, all of these examples are business locations.
Here is a community center outside a small rural town: 970 Monroe St, Bennet, NE 68317, USA
Here is a restaurant in downtown Toronto: 268 Howland Ave, Toronto, ON M5R 3B6, Canada
A tattoo parlor in Stockholm: Magnus Ladulåsgatan 27, 118 65 Stockholm, Sweden
A very rural farm in Australia: 402 Ravensdale Rd, Ravensdale, NSW 2259, Australia
How do you interact with the service?
In simplistic terms, Address Geocode – International takes as input any address from around the world, along with a few other details, and returns coordinates indicating where in the world the address is located. One of the real strengths of the service, however, is all of the ways users can interact with it to get results.
Many countries have postal systems, some have partial or inconsistent systems, and many really do not have much of a system at all. Regardless of whether the country has a postal system or not, there are many unique address formats around the world, making parsing and storing very challenging. We have several blogs on the challenges surrounding international address including this one: The Challenge of Storing International Addresses.
Because of this, Address Geocode – International needs to be flexible to allow users to interact with the service in many different ways. The entire address can be submitted in the field “SingleLine”. If the user already has a clean parsed out address, they can make use of the address fields, “Locality”, “AdministrativeArea”, “PostalCode” and “Country”. Finally if they have mixed or unknown fields, they can submit those via the “Address1” through “Address5” fields and the service will do its best to identify the right parts and find a good location. For best results, country is required. However, we allow country to be embedded within “SingleLine” or the address fields if the user does not have a clean input address.
There are a few other inputs as well. “SearchType” allows the user to control the results a bit more. The main option here is BestMatch, which has us choosing the best possible result. “All” allows a dump of possible locations if the address is vague or points to a few possibilities. The user can also opt to limit results to certain levels such as Street, Locality, PostalCode etc. These will return the best result up to the chosen level. “MaxResults” puts a limit on how many results are sent back. Finally, “Extras” offers potential add-ons to the service that may be things that many users do not require.
What does Address Geocode – International return?
The service returns a basic information section called “SearchInfo” that gives a status of the result, the number of locations returned, informational notes about the address and warnings as a result of trying to process the result.
See our Developer Guide for Additional Inputs and Outputs for a current list of these types of results.
The most important fields in the result are “PrecisionLevel” and of course the Latitude and Longitude. The coordinates are of course the goal of the service, telling us where this address is located. But the precision is important to tell our users how close we are to the desired location. There are currently 16 levels of precision. Highest is closest to the location (15 and 16’s should be right on the property, with 14’s not far behind). The service will cascade down returning the highest level precision it can find. If we can’t find a property level match, we might still be able to interpolate a match, or find a point nearby on the street and on down.
You can see a description of the 16 levels of precision in our Developer Guide.
Depending on what option was chosen for SearchType, one or more results may be returned. “BestMatch” returns the best result, although it may return multiple results if there is an ambiguity. Ambiguous is one of the options returned by “Status”. We may return a few clean results if we find potentially ambiguous results, or no results if the search dug up too much of a discrepancy in what it found. Each result found will have some basic parsed out address details such as: Premise number, thoroughfare, locality, administrative areas and country information. In the US, some additional census fields may be returned like: Tract, block, state FIPS, country FIPS etc. A few map links like a Google map URL will be provided for mapping purposes, or to quickly test that the result mapped properly.
DOTS Address Geocode – International uses a dynamic interface that allows us to safely add in new data fields as we continue to plug in new data sources. Existing fields will never be changed but occasionally new results may be added. Address Geocode – International supports REST, SOAP, GET and POST requests over HTTPS and outputting in JSON and XML formats.