generated from mwc/lab_weather
I was just checking that everything was submitted but I guess this wasn't.
This commit is contained in:
122
geocoder/geonames_details.py
Normal file
122
geocoder/geonames_details.py
Normal file
@@ -0,0 +1,122 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from geocoder.geonames import GeonamesQuery, GeonamesResult
|
||||
|
||||
|
||||
class GeonamesFullResult(GeonamesResult):
|
||||
""" Get more information for given geonames_id, e.g timzone and administrative hierarchy"""
|
||||
|
||||
@property
|
||||
def continent(self):
|
||||
return self.raw.get('continentCode', "")
|
||||
|
||||
@property
|
||||
def country_geonames_id(self):
|
||||
return self.raw.get('countryId', 0)
|
||||
|
||||
@property
|
||||
def state_geonames_id(self):
|
||||
return self.raw.get('adminId1', 0)
|
||||
|
||||
@property
|
||||
def admin2(self):
|
||||
return self.raw.get('adminName2', "")
|
||||
|
||||
@property
|
||||
def admin2_geonames_id(self):
|
||||
return self.raw.get('adminId2', "")
|
||||
|
||||
@property
|
||||
def admin3(self):
|
||||
return self.raw.get('adminName3', "")
|
||||
|
||||
@property
|
||||
def admin3_geonames_id(self):
|
||||
return self.raw.get('adminId3', "")
|
||||
|
||||
@property
|
||||
def admin4(self):
|
||||
return self.raw.get('adminName4', "")
|
||||
|
||||
@property
|
||||
def admin4_geonames_id(self):
|
||||
return self.raw.get('adminId4', "")
|
||||
|
||||
@property
|
||||
def admin5(self):
|
||||
return self.raw.get('adminName5', "")
|
||||
|
||||
@property
|
||||
def admin5_geonames_id(self):
|
||||
return self.raw.get('adminId5', "")
|
||||
|
||||
@property
|
||||
def srtm3(self):
|
||||
return self.raw.get('srtm3', 0)
|
||||
|
||||
@property
|
||||
def wikipedia(self):
|
||||
return self.raw.get('wikipediaURL', "")
|
||||
|
||||
@property
|
||||
def timeZoneId(self):
|
||||
timezone = self.raw.get('timezone')
|
||||
if timezone:
|
||||
return timezone.get('timeZoneId')
|
||||
|
||||
@property
|
||||
def timeZoneName(self):
|
||||
timezone = self.raw.get('timezone')
|
||||
if timezone:
|
||||
return timezone.get('timeZoneId')
|
||||
|
||||
@property
|
||||
def rawOffset(self):
|
||||
timezone = self.raw.get('timezone')
|
||||
if timezone:
|
||||
return timezone.get('gmtOffset')
|
||||
|
||||
@property
|
||||
def dstOffset(self):
|
||||
timezone = self.raw.get('timezone')
|
||||
if timezone:
|
||||
return timezone.get('dstOffset')
|
||||
|
||||
@property
|
||||
def bbox(self):
|
||||
bbox = self.raw.get('bbox', {})
|
||||
south = bbox.get('south')
|
||||
west = bbox.get('west')
|
||||
north = bbox.get('north')
|
||||
east = bbox.get('east')
|
||||
return self._get_bbox(south, west, north, east)
|
||||
|
||||
|
||||
class GeonamesDetails(GeonamesQuery):
|
||||
""" Details:
|
||||
http://api.geonames.org/getJSON?geonameId=6094817&style=full
|
||||
"""
|
||||
|
||||
provider = 'geonames'
|
||||
method = 'details'
|
||||
|
||||
_URL = 'http://api.geonames.org/getJSON'
|
||||
_RESULT_CLASS = GeonamesFullResult
|
||||
|
||||
def _build_params(self, location, provider_key, **kwargs):
|
||||
"""Will be overridden according to the targetted web service"""
|
||||
return {
|
||||
'geonameId': location,
|
||||
'username': provider_key,
|
||||
'style': 'full'
|
||||
}
|
||||
|
||||
def _adapt_results(self, json_response):
|
||||
# the returned JSON contains the object.
|
||||
# Need to wrap it into an array
|
||||
return [json_response]
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
c = GeonamesDetails(6094817)
|
||||
c.debug()
|
||||
Reference in New Issue
Block a user