Any geographic object (or location) has a description. Such a description can be presented differently for different objects. For example, the description almost necessarily includes the address for buildings. To describe geographic objects such as lakes and mountains, their names from the geographic names directory will be enough. Geographic coordinates are also part of the description of the object.
The process of transforming the description of an object into its footprint on the earth’s surface is called geocoding. The result of the geocoding is an object or a group of map objects with attributes. These attributes necessarily include geographic coordinates. Often, but not always, the attributes contain a name of an object, address, information about administrative division, etc.
The reverse process – extraction of descriptive information from the map object – is called reverse geocoding. Typically, the result of such a process is text information in a predefined format.
The range of geocoding use is quite wide. However, it is often assumed that geocoding involves finding geographic coordinates for a given address or place name. In reverse geocoding, we also mean the transformation of geographic coordinates into an address. In this article, geocoding we will consider geocoding in this narrower context.
As mentioned earlier, different objects may have a set of various descriptive characteristics. The objects themselves can be part of a data set. To understand the process of geocoding we will model finding a specific address.
Objective: find a building with a given address.
Shishkivska Street, 17, Shishkivka, Kharkiv, 61070, Ukraine
If there is an accurate map of the streets and houses of a city’s area, there is no particular difficulty in finding the right address.
If there is a detailed atlas of the city in question, then you will have to go to the list of streets to find a pointer to the desired page, and then find the street and the house number on it.
In the event that only the political map of the world is available, to determine the location more precisely than the location of the specified city will not work.
Let’s suppose that we have all the necessary maps and atlases to search for any address in the world. Each map and atlas has its own application. For example, I will not be able to find a given address, having only a map of Alaska on my hands.
To begin, you have to decompose the address into smallest components.
Let us turn to the political map of the world – this map covers the entire surface of the Earth, so the address we seek is guaranteed to fall into the scope of this map. In the list of countries, we will find a match by the word Ukraine.
Now the search area can be narrowed down to a specific country. Next, from the address, you can exclude the name of the country and search for other components. The search area will gradually narrow: the city of Kharkiv, then the Shishkivka district will be found first, then the street and the house will be found. If we knew in advance where the zip code was located in the given address line, one could turn to the zip code list and immediately narrow the search area to the specific region where the street and house would be also found.
In other words, once the search area has been narrowed to the minimum size, we can say that the search is complete. If you can not find the house, the search result will end up at street level. If you could not find the street – the city or a city district will be the endpoint. The search will return the smallest successful match.
The algorithm that performs these actions is called a geocoder.
The geocoder receives a request from the user and returns the result. Geographical coordinates, address, name, or any other information may be provided as a request. Depending on the request, the answer will be the object of the map (direct geocoding) or a text description of this object (reverse).
Usually, in the process of geocoding databases are used to match geographic coordinates and descriptions of terrain. This approach provides convenient data storage and quick access to the geocoder. For small areas, it is possible to store data in separate files.
There are many geocoding services. Among them, there are local ones operating in the territory of a particular country, or even within a particular area or a separate building. The most popular geocoding services around the world are:
- OpenStreetMaps
- Google Maps
- Yandex Maps
General guidelines for using these services are:
If you want to do geocoding in a big city (capital, regional or district center), you should look in the direction of the geocoders from the big companies like Google or Yandex. For Central and Western Europe, Google Maps often offers the most accurate results. Yandex Maps covers all countries of Eastern Europe and CIS fairly well. In most cases, geocoding will be successful even in the smallest villages. The smaller the populated area – the less likely it will be well covered by services. In the event that there is no other coverage – it’s worth turning to OSM.