# Discussion Board

1. Hello all,
i have latitude and longitude values for two different points. i want to calculate the distance between them.

Note: i have the formula and the sample program that works on python installed on my machine. But the code is not running on S60

Can someone send me the entire code of how to calculate distance between two points that runs on S60?

2. Originally Posted by trymukesh
Hello all,
i have latitude and longitude values for two different points. i want to calculate the distance between them.

Note: i have the formula and the sample program that works on python installed on my machine. But the code is not running on S60

Can someone send me the entire code of how to calculate distance between two points that runs on S60?
Well this depends on what unit you want this measuring. You want in meters, kilometers or what?

BR,

Rafael.

3. Originally Posted by Rafael T.
Well this depends on what unit you want this measuring. You want in meters, kilometers or what?

BR,

Rafael.
Hi Rafael,

Yes, need the distance in either Kilometers or miles
Any help will be a life saver

warm regards,
Mukesh

4. As always, Wikipedia has a good article on the subject: Great-circle distance

From there you can see how to convert lat/long to radians:

Code:
```import math

def coordinate_to_radians(deg, min = 0.0, sec = 0.0):
'''Convert a geographical coordinate into radians.'''

if deg < 0.0:
sign = -1.0
deg = -deg
else:
sign = 1.0

return (sign * (deg + (min + sec / 60.0) / 60.0)) * math.pi / 180.0```
... and how to calculate the great-circle distance between two points on a sphere:

Code:
```def angular_distance(standpoint_lat, standpoint_long, forepoint_lat, forepoint_long):
'''Calculate the circular angular distance of two points on a sphere.'''

phi_s = standpoint_lat
phi_f = forepoint_lat
lambda_diff = standpoint_long - forepoint_long

cos = math.cos
sin = math.sin

num = (cos(phi_f) * sin(lambda_diff)) ** 2.0 + (cos(phi_s) * sin(phi_f) - sin(phi_s) * cos(phi_f) * cos(lambda_diff)) ** 2.0
denom = sin(phi_s) * sin(phi_f) + cos(phi_s) * cos(phi_f) * cos(lambda_diff)

return math.atan2(math.sqrt(num), denom)```
Then it's simply multiplication by Earths radius in whatever unit you wish:

Code:
```def distance_between_coordinates_km(lat1, long1, lat2, long2):
'''Calculate distance between two points on Earth in kilometers. lat and long are three-tuples (deg, min, sec).'''

You may use 0 for min or sec, if you have the coordinates in decimal format. Here's an example using the example values from the Wikipedia article:

• Nashville International Airport (BNA) in Nashville, TN, USA: N 36°7.2', W 86°40.2'
• Los Angeles International Airport (LAX) in Los Angeles, CA, USA: N 33°56.4', W 118°24.0'

Code:
```>>> distance_between_coordinates_km((36, 7.2, 0), (-86, 40.2, 0), (33, 56.4, 0), (-118, 24.0, 0))
2886.4489734366994
>>>```

5. Originally Posted by trymukesh
Hello all,
i have latitude and longitude values for two different points. i want to calculate the distance between them.

Note: i have the formula and the sample program that works on python installed on my machine. But the code is not running on S60

Can someone send me the entire code of how to calculate distance between two points that runs on S60?
Hello

Please have a search in google with the title haversine formula and try to port that in python.

Hope this helps you.
Enjoy pythoning
Gaba88

6. Originally Posted by jethro.fn
As always, Wikipedia has a good article on the subject: Great-circle distance

From there you can see how to convert lat/long to radians:

Code:
```import math

def coordinate_to_radians(deg, min = 0.0, sec = 0.0):
'''Convert a geographical coordinate into radians.'''

if deg < 0.0:
sign = -1.0
deg = -deg
else:
sign = 1.0

return (sign * (deg + (min + sec / 60.0) / 60.0)) * math.pi / 180.0```
... and how to calculate the great-circle distance between two points on a sphere:

Code:
```def angular_distance(standpoint_lat, standpoint_long, forepoint_lat, forepoint_long):
'''Calculate the circular angular distance of two points on a sphere.'''

phi_s = standpoint_lat
phi_f = forepoint_lat
lambda_diff = standpoint_long - forepoint_long

cos = math.cos
sin = math.sin

num = (cos(phi_f) * sin(lambda_diff)) ** 2.0 + (cos(phi_s) * sin(phi_f) - sin(phi_s) * cos(phi_f) * cos(lambda_diff)) ** 2.0
denom = sin(phi_s) * sin(phi_f) + cos(phi_s) * cos(phi_f) * cos(lambda_diff)

return math.atan2(math.sqrt(num), denom)```
Then it's simply multiplication by Earths radius in whatever unit you wish:

Code:
```def distance_between_coordinates_km(lat1, long1, lat2, long2):
'''Calculate distance between two points on Earth in kilometers. lat and long are three-tuples (deg, min, sec).'''

You may use 0 for min or sec, if you have the coordinates in decimal format. Here's an example using the example values from the Wikipedia article:

• Nashville International Airport (BNA) in Nashville, TN, USA: N 36°7.2', W 86°40.2'
• Los Angeles International Airport (LAX) in Los Angeles, CA, USA: N 33°56.4', W 118°24.0'

Code:
```>>> distance_between_coordinates_km((36, 7.2, 0), (-86, 40.2, 0), (33, 56.4, 0), (-118, 24.0, 0))
2886.4489734366994
>>>```
Hi Jethro,
You are a rare Gem.
Thank you, saved my day (can sleep peacefully now)
cheers,