# How to compute distance and bearing between two lat/lon points in Python

### Problem:

Let’s assume we have the following points represented by their latitude & longitude in Python:

``````a = (48.11617185, 11.743858785932662)
b = (48.116026149999996, 11.743938922310974)
``````

and we want to compute both distance and bearing between those points on the WGS84 or any other Geoid of your choosing.

### Solution:

We can use geographiclib to do that:

``````from geographiclib.geodesic import Geodesic

result = Geodesic.WGS84.Inverse(*a, *b)
distance = result["s12"] # in [m] (meters)
bearing = result["azi1"] # in [°] (degrees)
``````

`Geodesic.WGS84.Inverse(*a, *b)` is just a shorthand for `Geodesic.WGS84.Inverse(a[0], a[1], b[0], b[1])`, so don’t be too confused by the syntax.

Using our example coordinates from above `result` is

``````{'lat1': 48.11617185,
'lon1': 11.743858785932662,
'lat2': 48.116026149999996,
'lon2': 11.743938922310974,
'a12': 0.00015532346032069415,
's12': 17.26461706032189,
'azi1': 159.78110567187977,
'azi2': 159.7811653333465}
``````

Therefore,

``````distance = 17.26461706032189 # m
bearing = 159.78110567187977 # °
``````