def address_from_row(row):
geocoder = GoogleV3(settings.GOOGLE_MAPS_API_KEY)
addr_to_geocode = ""
if 'full_address' in row and len(row['full_address']) > 0:
addr_to_geocode = row['address']
elif 'zipcode' in row and len(row['zipcode']) > 0:
addr_to_geocode = row['zipcode']
elif 'city' in row and len(row['city']) > 0:
addr_to_geocode = row['city']
if addr_to_geocode is None:
logging.debug("Could not find suitable geocode field")
return None
if addr_to_geocode not in __addr_cache:
geocoded = None
try:
geocoded = geocoder.geocode(addr_to_geocode)
except:
pass
if geocoded:
ret = translate_google_result(geocoded.raw)
__addr_cache[addr_to_geocode] = ret
else:
__addr_cache[addr_to_geocode] = addr_to_geocode
logging.debug("%s -> %r", addr_to_geocode, __addr_cache[addr_to_geocode])
return __addr_cache[addr_to_geocode]
评论列表
文章目录