def cari_posisi(*param): query = ', '.join(param + ('Indonesia',)) args = {'q': query, 'output': 'json', 'sensor': False, 'key': settings.GMAPS_API_KEY} args = urllib.urlencode(args) url = "http://maps.google.com/maps/geo?%s" % args res = urllib2.urlopen(url).read() data = json.loads(res) status = data['Status']['code'] if status != 200: return False, status alamat = gmaps_ambil_alamat(data) lng, lat = alamat['Point']['coordinates'][0:2] return True, {'lat': lat, 'lng': lng, 'alamat': alamat['address']}
def _ambil_lokasi(data): negara = None provinsi = None provinsi_nama = None kota = None alamat = None lat = None lng = None west = None east = None north = None south = None try: data = gmaps_ambil_alamat(data) print data lng, lat = data["Point"]["coordinates"][0:2] box = data["ExtendedData"]["LatLonBox"] north = box["north"] south = box["south"] east = box["east"] west = box["west"] area = None akurasi = data["AddressDetails"]["Accuracy"] if akurasi >= 1: negara = data["AddressDetails"]["Country"]["CountryName"] area = data["AddressDetails"]["Country"].get("AdministrativeArea", None) if akurasi >= 2: provinsi_nama = area["AdministrativeAreaName"] provinsi = prov.get_kode(provinsi_nama) if akurasi >= 4: kota = area["Locality"]["LocalityName"] if akurasi >= 6: alamat = area["Locality"]["DependentLocality"]["Thoroughfare"]["ThoroughfareName"] except (ValueError, IndexError, KeyError): pass data = { "lokasi": { "negara": negara, "provinsi": provinsi, "provinsi_nama": provinsi_nama, "kota": kota, "alamat": alamat, "lat": lat, "lng": lng, "north": north, "south": south, "east": east, "west": west, } } return respon_json_ok(data)