def geocode(q):
zipresult = zipsearch(q)
if zipresult[0] is not None:
return zipresult
if not settings.MAPZEN_SEARCH_APIKEY:
return fallback_geocode(q)
search_url = SEARCH_URL.format(apikey=settings.MAPZEN_SEARCH_APIKEY, q=q)
response = requests.get(search_url)
if response.status_code != 200:
return fallback_geocode(q)
results = response.json()
if len(results['features']) == 0:
return fallback_geocode(q)
first_feature = results['features'][0]
point = GEOSGeometry('POINT(%f %f)' % tuple(first_feature['geometry']['coordinates']), srid=4326)
return point, first_feature['properties']['label']
评论列表
文章目录