# 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 # °
```