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 `__.