# [Tutor] return integer from function

David Craig dcdavemail at gmail.com
Wed Feb 22 11:57:56 CET 2012

```Hi,
I have a function that calculates the distance between two points on a
sphere. It works but I cant get it to return a float for use in another
script. Anyone know how I do that??

The function is below,
Thanks,
D

import math
def distance_on_unit_sphere(lat1, long1, lat2, long2):

# Convert latitude and longitude to

# phi = 90 - latitude

# theta = longitude

# Compute spherical distance from spherical coordinates.

# For two locations in spherical coordinates
# (1, theta, phi) and (1, theta, phi)
# cosine( arc length ) =
#    sin phi sin phi' cos(theta-theta') + cos phi cos phi'
# distance = rho * arc length

cos = (math.sin(phi1)*math.sin(phi2)*math.cos(theta1 - theta2) +
math.cos(phi1)*math.cos(phi2))
arc = math.acos( cos )
type(arc)
arc = arc*6378.1
#print str(arc*6378.1)+' km'
# Remember to multiply arc by the radius of the earth
# in your favorite set of units to get length.
return arc
```