Geo Distance

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="rajarcsp")
from geopy import distance
l_spadina = geolocator.geocode("28 Spadina Road")
l_spadina_latlong = l_spadina.latitude, l_spadina.longitude
l_spadina_latlong
(43.6966329769175, -79.7940236288173)
l_north_york = geolocator.geocode("5000 Yonge Street")
l_north_york_latlong = l_north_york.latitude, l_north_york.longitude
l_north_york_latlong
(43.6490951, -79.3778661)
c_distance = distance.distance(l_spadina_latlong, l_north_york_latlong)
c_distance
Distance(33.974290494387375)
c_distance.km
33.974290494387375
# The above information is wrong. It can't be 31 KM between 20 and 286 Spadina Road

# Let's do in another way
geolocator = Nominatim(user_agent="rajarcsp", format_string="%s, Toronto ON")
from geopy import distance
l_spadina = geolocator.geocode("28 Spadina Road")
l_spadina_latlong = l_spadina.latitude, l_spadina.longitude
l_north_york = geolocator.geocode("225 Davenport Rd")
l_north_york_latlong = l_north_york.latitude, l_north_york.longitude
c_distance = distance.distance(l_spadina_latlong, l_north_york_latlong).km
c_distance
0.8538498245022255
# Though it is little bit close, it is not exactly right
# Let's try between Cities
geolocator = Nominatim(user_agent="rajarcsp")
to = geolocator.geocode("Toronto")
wl = geolocator.geocode("Waterloo")
to_latlong = to.latitude, to.longitude
wl_latlong = wl.latitude, wl.longitude
c_distance = distance.distance(to_latlong, wl_latlong).km
c_distance
94.22021710762372
# It google maps, it says 113KM which is 20 km longer than our distance