import sys
import pycurl, urllib
import simplejson as json
class GoogleLatLng:
"""
Send an address to Google Geocoder API and get JSON output back.
Parse to retrieve latitude and longitude.
There is a 24-hour usage limit, currently this is 2500 requests
but this could change in the future. Check Google's Terms of Use
before employing this technique.
"""
def __init__(self):
self.lat = ""
self.lng = ""
self.results = ""
def parseResults(self, buff):
self.results = json.loads(buff)
try:
self.lat = self.results['results'][0]['geometry']['location']['lat']
self.lng = self.results['results'][0]['geometry']['location']['lng']
except:
print >> sys.stderr, "An error occurred.\nQuery results: %s" % self.results
def requestLatLngJSON(self, location):
location = urllib.quote_plus(location)
c = pycurl.Curl()
c.setopt(c.URL, 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=%s' % location)
c.setopt(c.WRITEFUNCTION, self.parseResults)
c.perform()
c.close()
Comments