def get_closest_geo_id(lat, lng): from geopy import distance as geopy_distance from models import GeoID geo_ids = GeoID.all().fetch(1000) distances = [] for geo_id in geo_ids: distances.append( {'distance': int(geopy_distance.distance( geo_id.coords(), (lat, lng)).miles), 'geo_id': geo_id.geo_id, 'place': geo_id.key().name() }) distances = sort_by_key(distances, 'distance', reverse=False) return distances[0]['geo_id']
def get(self): from models import GeoID response = urlfetch.fetch(FWIX_GEOS_URL) from django.utils import simplejson response_dict = simplejson.loads(response.content) entities = [] for result in response_dict['result']: entity = GeoID.get_by_key_name(result['pretty']) if entity: continue entity = GeoID(key_name = result['pretty'], geo_id = int(result['id']), lat = float(result['lat']), lon = float(result['lon'])) entities.append(entity) db.put(entities)