Geocoding
=========
Overview of Geocoders
---------------------
Geocoding, i.e. converting addresses into coordinates or vice versa, is
a really common GIS task. Luckily, in Python there are nice libraries
that makes the geocoding really easy. One of the libraries that can do
the geocoding for us is
`geopy `__ that makes it easy to
locate the coordinates of addresses, cities, countries, and landmarks
across the globe using third-party geocoders and other data sources.
As said, **Geopy** uses third-party geocoders - i.e. services that does
the geocoding - to locate the addresses and it works with multiple
different service providers such as:
- `ESRI
ArcGIS `__
- `Baidu
Maps `__
- `Bing `__
- `geocoder.us `__
- `GeocodeFarm `__
- `GeoNames `__
- `Google Geocoding API
(V3) `__
- `IGN
France `__
- `Mapquest `__
- `Mapzen Search `__
- `NaviData `__
- `OpenCage `__
- `OpenMapQuest `__
- `Open Street Map Nominatim `__
- `SmartyStreets `__
- `What3words `__
- `Yandex `__
Thus, there are plenty of geocoders where to choose from! However, for most of these services you might need to
request so called API access-keys from the service provider to be able to use the service.
Luckily, Nominatim, which is a geocoder based on OpenStreetMap data does not require a API key to use their service
if it is used for small scale geocoding jobs as the service is rate-limited to 1 request per second (3600 / hour).
As we are only making a small set of queries, we can do the geocoding by using Nominatim.
.. note::
- **Note 1:** If you need to do larger scale geocoding jobs, use and request an API key to some of the geocoders listed above.
- **Note 2:** There are also other Python modules in addition to geopy that can do geocoding such as `Geocoder `__.
.. hint::
You can get your access keys to e.g. Google Geocoding API from `Google APIs console `__ by creating a Project
and enabling a that API from `Library `__. Read a
short introduction about using Google API Console from `here `__.