generated from mwc/lab_weather
56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
#!/usr/bin/python
|
|
# coding: utf8
|
|
from __future__ import absolute_import
|
|
|
|
import logging
|
|
|
|
from geocoder.location import Location
|
|
from geocoder.geocodefarm import GeocodeFarmQuery
|
|
|
|
|
|
class GeocodeFarmReverse(GeocodeFarmQuery):
|
|
"""
|
|
Geocode.Farm
|
|
=======================
|
|
Geocode.Farm is one of the few providers that provide this highly
|
|
specialized service for free. We also have affordable paid plans, of
|
|
course, but our free services are of the same quality and provide the same
|
|
results. The major difference between our affordable paid plans and our
|
|
free API service is the limitations. On one of our affordable paid plans
|
|
your limit is set based on the plan you signed up for, starting at 25,000
|
|
query requests per day (API calls). On our free API offering, you are
|
|
limited to 250 query requests per day (API calls).
|
|
|
|
Params
|
|
------
|
|
:param lat: The numerical latitude value for which you wish to obtain the closest, human-readable address.
|
|
:param lon: The numerical longitude value for which you wish to obtain the closest, human-readable address.
|
|
:param key: (optional) API Key. Only Required for Paid Users.
|
|
:param lang: (optional) 2 digit lanuage code to return results in. Currently only "en"(English) or "de"(German) supported.
|
|
:param country: (optional) The country to return results in. Used for biasing purposes and may not fully filter results to this specific country.
|
|
|
|
API Reference
|
|
-------------
|
|
https://geocode.farm/geocoding/free-api-documentation/
|
|
"""
|
|
provider = 'geocodefarm'
|
|
method = 'reverse'
|
|
|
|
_URL = 'https://www.geocode.farm/v3/json/reverse/'
|
|
|
|
def _build_params(self, location, provider_key, **kwargs):
|
|
location = Location(location)
|
|
return {
|
|
'lat': location.latitude,
|
|
'lon': location.longitude,
|
|
'key': provider_key,
|
|
'lang': kwargs.get('lang', ''),
|
|
'country': kwargs.get('country', ''),
|
|
}
|
|
|
|
|
|
if __name__ == '__main__':
|
|
logging.basicConfig(level=logging.INFO)
|
|
g = GeocodeFarmReverse([45.3, -75.4])
|
|
g.debug()
|