Guest User

Untitled

a guest
Jan 18th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. 123 Main Street, Chicago, IL 12345
  2. 3214 Overland Drive, Los Angeles, CA 49382
  3. 29 NE 9th Street, New York, NY 29384
  4.  
  5. import csv
  6. from geopy.geocoders import Nominatim
  7. from geopy.geocoders import GoogleV3
  8.  
  9. ADDRESS_FILE = "Addresses"
  10.  
  11. def read_csv(file):
  12. with open(file,'r') as f:
  13. reader = csv.reader(f)
  14. address_list = list(reader)
  15. return address_list
  16.  
  17.  
  18. def get_lat_lon(address):
  19. geolocator = Nominatim()
  20. try:
  21. location = geolocator.geocode(address)
  22. return location.latitude, location.longitude
  23. except Exception:
  24. return 0, 0
  25.  
  26.  
  27. def google_lat_lon(address):
  28. geolocator = GoogleV3(api_key="xxxxx")
  29. try:
  30. location = geolocator.geocode(address)
  31. return location.latitude, location.longitude
  32. except Exception:
  33. return 0, 0
  34.  
  35. def find_coordinates(address):
  36. google_found = ""
  37. lat, lon = get_lat_lon(address)
  38. lat, lon = google_lat_lon(address)
  39. if lat == 0 and lon == 0:
  40. lat, lon = google_lat_lon(address)
  41. google_found = "Note: used Google"
  42. return lat, lon, google_found
  43.  
  44. def write_file(info):
  45. with open(ADDRESS_FILE+" with GPS.csv","w", newline='') as csvfile:
  46. writer = csv.writer(csvfile, delimiter = ",")
  47. for line in info:
  48. writer.writerow(line)
  49.  
  50. def main():
  51. addresses = read_csv(ADDRESS_FILE+".csv")
  52. address_GPS = []
  53. for address in addresses:
  54. addr = address[0].replace(u'xa0', u' ')
  55. lat, lon, google_found = find_coordinates(addr)
  56. address_GPS.append((addr,lat,lon, google_found, '=HYPERLINK("https://www.google.com/maps/search/"&B1&","&C1,"Link")'))
  57.  
  58. for addr in address_GPS:
  59. print(addr[:len(addr)-1])
  60. write_file(address_GPS)
  61.  
  62.  
  63. if __name__ == '__main__':
  64. main()
Add Comment
Please, Sign In to add comment