Code covered by the BSD License

### Highlights from LatLon distance

4.625
4.6 | 8 ratings Rate this file 109 Downloads (last 30 days) File Size: 1.64 KB File ID: #38812 Version: 1.0

# LatLon distance

### M Sohrabinia (view profile)

Find distance between two points based on latlon coordinates

File Information
Description

This functions finds distance (in km) between two points on Earth using latitude-longitude coordinates of the two points. Distance is calculated using two distance funstions: Haversine and Pythagoran. The first output is based on Haversine function, which is more accurate especially for longer distances.

--Inputs:
latlon1: latlon of origin point [lat lon]
latlon2: latlon of destination point [lat lon]

--Outputs:
d1km: distance calculated by Haversine formula
d2km: distance calculated based on Pythagoran theorem

--Example 1, short distance:
latlon1=[-43 172];
latlon2=[-44 171];
[d1km d2km]=distance(latlon1,latlon2)
d1km =
137.365669065197 (km)
d2km =
137.368179013869 (km)
%d1km approximately equal to d2km

--Example 2, longer distance:
latlon1=[-43 172];
latlon2=[20 -108];
[d1km d2km]=distance(latlon1,latlon2)
d1km =
10734.8931427602 (km)
d2km =
31303.4535270825 (km)
d1km is significantly different from d2km (d2km is not able to work for longer distances).

Acknowledgements

This file inspired Pathdist.

MATLAB release MATLAB 7.7 (R2008b)
01 Jun 2016 Aticha Boousuwan

### Aticha Boousuwan (view profile)

18 Apr 2016 Rafael D

### Rafael D (view profile)

05 Mar 2016 sandeep manjanna

### sandeep manjanna (view profile)

30 Nov 2015 Seb Biass

### Seb Biass (view profile)

Hello,

Just a question, are inputs in deg min sec or decimal degrees?

Thanks!

09 Nov 2015 DHRUPAL SHAH

### DHRUPAL SHAH (view profile)

Straight forward. Handy function for GPS users

17 Apr 2015 Justin Winokur

### Justin Winokur (view profile)

This code does what it says it should but there are two 2-minute changes to make it much better:

1) make all operations vectorized so you can put a list of lat,lon coordinates. Basically, add a "." before everything. Super easy and much better

2) Add a check for NaN's. If two points are too close, you get NaN when it should be zero. Very easy to do:

>> d1km(isnan(d1km)) = 0;

I hope this helps

17 Mar 2014 Tianyang Li

### Tianyang Li (view profile)

13 May 2013 Ian Shapiro

### Ian Shapiro (view profile)

Simple but effective. Does just what it needs to do.