import tkinter import math import ssl from urllib.request import urlopen, urlretrieve from urllib.parse import urlencode, quote_plus import json # Put your API key between the quotes in the string below GOOGLEAPIKEY = "YOUR-API-KEY-HERE" # Given a string representing a location, return 2-element tuple # (latitude, longitude) for that location # # See https://developers.google.com/maps/documentation/geocoding/ # for details about Google's geocoding API # def geocodeAddress(addressString): global geoURL global stringResultFromGoogle global jsonResult urlbase = "https://maps.googleapis.com/maps/api/geocode/json?address=" geoURL = urlbase + quote_plus(addressString) geoURL = geoURL + "&key=" + GOOGLEAPIKEY # required (non-secure) security stuff for use of urlopen ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE stringResultFromGoogle = urlopen(geoURL, context=ctx).read().decode('utf8') jsonResult = json.loads(stringResultFromGoogle) if (jsonResult['status'] != "OK"): print("Status returned from Google geocoder *not* OK: {}".format(jsonResult['status'])) result = (0.0, 0.0) # this prevents crash in retrieveMapFromGoogle - yields maps with lat/lon center at 0.0, 0.0 else: loc = jsonResult['results'][0]['geometry']['location'] result = (float(loc['lat']),float(loc['lng'])) return result