import pyproj def distance(lat1, lng1, lat2, lng2, ellps = 'WGS84'): g = pyproj.Geod(ellps = ellps) return g.inv(lng1, lat1, lng2, lat2)[2] def distance_between(p1, p2): return distance(p1[0], p1[1], p2[0], p2[1]) def nearest_mile(distance_in_metres): return int(0.621371*distance_in_metres/1000) def total_distance(points): return sum(map(distance_between, points[:-1], points[1:])) p1 = (52.9548, -1.1581) # Nottingham, England p2 = (38.253284, -85.758786) # Louisville, KY print "Distance (to the nearest mile): " + str(nearest_mile(distance_between(p1, p2))) data_dir_path = '/home/matthew/workspace/resources/G/Geographical Information Science/' van_activity_csv_filename = 'van_activity.csv' van_activity_csv_filename = 'gps-activity.csv' van_activity_csv_path = data_dir_path + van_activity_csv_filename labels = ['id','van_id','timestamp','latitude','longitude','type','address','speed','heading','created'] import csv csv_file = open(van_activity_csv_path, 'rb') van_activity_reader = csv.DictReader(csv_file, labels, delimiter=',', quotechar='\"') van_activity_reader.next() points = [] for van_activity in van_activity_reader: points.append((van_activity['latitude'], van_activity['longitude'])) len(points) print "Distance (to the nearest mile): " + str(nearest_mile(total_distance(points)))