Esempio n. 1
0
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']}
Esempio n. 2
0
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)