generated from mwc/lab_weather
60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
#!/usr/bin/python
|
|
# coding: utf8
|
|
|
|
from __future__ import absolute_import
|
|
from geocoder.base import MultipleResultsQuery
|
|
from geocoder.mapquest import MapquestResult
|
|
from geocoder.keys import mapquest_key
|
|
|
|
|
|
class MapQuestBatchResult(MapquestResult):
|
|
|
|
@property
|
|
def ok(self):
|
|
return bool(self.quality)
|
|
|
|
|
|
class MapquestBatch(MultipleResultsQuery):
|
|
"""
|
|
MapQuest
|
|
========
|
|
The geocoding service enables you to take an address and get the
|
|
associated latitude and longitude. You can also use any latitude
|
|
and longitude pair and get the associated address. Three types of
|
|
geocoding are offered: address, reverse, and batch.
|
|
|
|
API Reference
|
|
-------------
|
|
http://www.mapquestapi.com/geocoding/
|
|
|
|
"""
|
|
provider = 'mapquest'
|
|
method = 'batch'
|
|
|
|
_RESULT_CLASS = MapQuestBatchResult
|
|
_URL = 'http://www.mapquestapi.com/geocoding/v1/batch'
|
|
_TIMEOUT = 30
|
|
_KEY = mapquest_key
|
|
|
|
def _build_params(self, location, provider_key, **kwargs):
|
|
self._TIMEOUT = kwargs.get('timeout', 30)
|
|
|
|
return {
|
|
'key': provider_key,
|
|
'location': location,
|
|
'maxResults': 1,
|
|
'outFormat': 'json',
|
|
}
|
|
|
|
def _adapt_results(self, json_response):
|
|
results = json_response.get('results', [])
|
|
if results:
|
|
return [result['locations'][0] for result in results]
|
|
|
|
return []
|
|
|
|
|
|
if __name__ == '__main__':
|
|
g = MapquestBatch(['Denver,CO', 'Boulder,CO'])
|
|
g.debug()
|