13 lines
347 B
Plaintext
13 lines
347 B
Plaintext
import math.*
|
|
|
|
def haversin( theta ) = (1 - cos( theta ))/2
|
|
|
|
def radians( deg ) = deg Pi/180
|
|
|
|
def haversine( (lat1, lon1), (lat2, lon2) ) =
|
|
R = 6372.8
|
|
h = haversin( radians(lat2 - lat1) ) + cos( radians(lat1) ) cos( radians(lat2) ) haversin( radians(lon2 - lon1) )
|
|
2R asin( sqrt(h) )
|
|
|
|
println( haversine((36.12, -86.67), (33.94, -118.40)) )
|