Я не использовал gmaps, но это простая формула для вычисления расстояния.
Это всего лишь математика, поэтому я не буду здесь это объяснять.Просто знайте, что вам нужно 2 местоположения в формате (широта, долгота) в качестве аргументов и нам нужно импортировать математические данные
def distance(origin, destination):
lat1, lon1 = origin
lat2, lon2 = destination
radius = 3959 # mi
dlat = math.radians(lat2-lat1)
dlon = math.radians(lon2-lon1)
a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) \
* math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = radius * c
return d
Теперь нам нужно объединить 2 кадра данных Подробнее здесь
maindf = pd.merge(source, destination , left_index=True, right_index=True)
Далее необходимо применить это к каждой строке
maindf['Distance'] = maindf.apply(lambda row: distance((row.Latitude1,row.Longditude1),(row.Latitude2,row.Longditude2)), axis=1)
Применить циклы к фрейму данных и применить функцию.
В этом случае он применяет «расстояние» к каждой строкена основе 2 пар лат / длин в каждой строке.
Это добавляет новый столбец «Расстояние» с расстоянием в милях между двумя точками.
Я бы также добавил, если это ваш полный кодвы фактически не добавляете какие-либо данные в фреймы данных.