# How to draw straight line between two coordinates using Cartopy

In our previous posts Minimal Geodetic example using Cartopy and How to increase Geodetic resolution / accuracy / smoothness in Cartopy we have shown how to create a geodetic line on a map. While a geodetic is defined to be the shortest line on the Earth’s surface, it is not a straight line on a map projection.

In order to plot a geodetic we use:

`plt.plot([lon1, lon2], [lat1, lat2], transform=ccrs.Geodetic())`

In order to plot a straight line, we need to use the same projection as we used to create the map instead of `transform=ccrs.Geodetic().`

For example, if we created the map using

`plt.axes(projection=ccrs.PlateCarree())`

we need to plot the line using `transform=ccrs.PlateCarree()`

`plt.plot([lon1, lon2], [lat1, lat2], transform=ccrs.PlateCarree())`

In order to avoid errors, I strongly recommend using just one instance of the projection and assigning it to a common variable, for example:

```proj = ccrs.PlateCarree()
ax = plt.axes(projection=proj)
plt.plot([-75, 77.23], [43, 28.61], transform=proj)```

Note that for reasons currently unknown to me at the moment, this only works for some projections at the moment. Using `ccrs.PlateCarree()` and `ccrs.Miller()` works, but using `ccrs.Mollweide()` does not work! ### Complete example

This code reproduces the image shown above:

```import cartopy.crs as ccrs
import cartopy.feature as cf
from matplotlib import pyplot as plt

proj = ccrs.PlateCarree()
ax = plt.axes(projection=proj)
ax.stock_img()