I have two points as below. I need to get the distance between them in meters.

POINT (80.99456 7.86795) POINT (80.97454 7.872174) 

How can this be done via GeoPandas?

1 Answer

Your points are in a lon, lat coordinate system (EPSG:4326 or WGS 84). To calculate a distance in meters, you would need to either use the Great-circle distance or project them in a local coordinate system to approximate the distance with a good precision.

For Sri Lanka, you can use EPSG:5234 and in GeoPandas, you can use the distance function between two GeoDataFrames.

from shapely.geometry import Point import geopandas as gpd pnt1 = Point(80.99456, 7.86795) pnt2 = Point(80.97454, 7.872174) points_df = gpd.GeoDataFrame({'geometry': [pnt1, pnt2]}, crs='EPSG:4326') points_df = points_df.to_crs('EPSG:5234') points_df2 = points_df.shift() #We shift the dataframe by 1 to align pnt1 with pnt2 points_df.distance(points_df2) 

The result should be 2261.92843 m

3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.