Trong Django, tôi đã cố gắng tìm trường địa lý để định vị địa điểm và nhổ ra một danh sách từ db của tôi được sắp xếp theo khoảng cách. Cho đến nay mọi thứ đều hoạt động trừ khi tôi tìm kiếm một vị trí mà Google trả về nhiều biểu mẫu kết quả như "ann arbor, MI". Tôi nhận được ValueError "Không tìm thấy chính xác một vị trí! (Tìm thấy 2)" Đây là views.py tôiGiá trị địa lýError "Không tìm thấy chính xác một kết quả" khi mã hóa địa lý
from django.shortcuts import render_to_response
from models import CampSite
from geopy import geocoders
from django.contrib.gis.geos import *
from django.contrib.gis.measure import D
from campsites.forms import SearchForm
from django.http import HttpResponseRedirect
def results(request):
query = request.GET['q']
g = geocoders.Google(resource='maps')
location, (lat, lon) = g.geocode(query)
pnt = fromstr("POINT(%s %s)" % (lon, lat))
distance_from_point = {'mi':'2000'}
results = CampSite.objects.filter(lonlat__distance_lte=(pnt,D(**distance_from_point))).distance(pnt).order_by('distance')
return render_to_response('results.html',{'location': location, 'lat': lat, 'lon': lon, 'results':results})
Các giải pháp chung tôi tìm thấy trực tuyến đã thay đổi
location, (lat, lon) = g.geocode(query)
để
location, (lat, lon) = g.geocode(query, exactly_one=False)
Tuy nhiên, điều này đã tạo ra ValueError mới "Chuỗi hoặc đầu vào unicode không được công nhận là WKT EWKT và HEXEWKB".
Đây là dự án django đầu tiên của tôi, tôi đang làm bên ngoài hướng dẫn, vì vậy xin cảm ơn vì đã dịu dàng.