lab_weather/geocoder/mapquest_batch.py

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()