def lokasi(request): posisi = request.GET.get("ll", None) alamat = request.GET.get("alamat", None) kota = request.GET.get("kota", None) provinsi = request.GET.get("provinsi", None) if posisi is not None: if not _validasi_posisi(posisi): raise Http404() q = posisi else: provinsi = prov.get_nama(provinsi) q = ", ".join( filter( lambda x: x != "", map(lambda x: x.strip(), filter(lambda x: x is not None, [alamat, kota, provinsi, "Indonesia"])), ) ) param = {"q": q, "output": "json", "sensor": "false", "key": settings.GMAPS_API_KEY} url = "http://maps.google.com/maps/geo?%s" % urllib.urlencode(param) try: txt = urllib2.urlopen(url).read() data = json.loads(txt) except (ValueError, urllib2.URLError): return HttpResponse(status=502) # Bad Gateway if data["Status"]["code"] == 200: return _ambil_lokasi(data) else: return respon_json_error(data["Status"])
def index(request): toko = Toko.objects.filter(aktif=True) daftar = {} for t in toko: p = t.provinsi d = daftar.get(p, {"nama": prov.get_nama(p), "toko": []}) d["toko"].append(t) daftar[p] = d hasil = [] for k, v in prov.daftar_provinsi: p = daftar.get(k, None) if p is not None: hasil.append(p) return render_to_response("toko/index.html", {"daftar": hasil}, context_instance=RequestContext(request))
def cari(request): ctx = {} if request.method == "POST": form = CariForm(request.POST) if form.is_valid(): alamat = form.cleaned_data["alamat"] kota = form.cleaned_data["kota"] provinsi = prov.get_nama(form.cleaned_data["provinsi"]) posisi = _cari_posisi(alamat, kota, provinsi) dekat = utils.cari_terdekat(posisi["lat"], posisi["lng"]) ctx["posisi"] = posisi ctx["dekat"] = dekat else: form = CariForm() ctx["key"] = settings.GMAPS_API_KEY ctx["form"] = form return render_to_response("toko/cari.html", ctx, context_instance=RequestContext(request))
def nama_provinsi(self): return prov.get_nama(self.provinsi)