Haversine formula: Difference between revisions

Kotlin idiom
m (minor enhancements)
(Kotlin idiom)
Line 838:
<lang kotlin>import java.lang.Math.*
 
final val R = 6372.8 // in kilometers
internal object Haversine {
fun haversine(lat1: Double, lon1: Double, lat2: Double, lon2: Double) : Double
{
val λ1 = toRadians(lat1)
val λ2 = toRadians(lat2)
val Δλ = toRadians(λ2 - λ1)
val Δφ = toRadians(lon2 - lon1)
return 2 * R * asin(sqrt(pow(sin(Δλ / 2), 2.0) + pow(sin(Δφ / 2), 2.0) * cos(λ1) * cos(λ2)))
}
 
internal fun haversine(lat1: Double, lon1: Double, lat2: Double, lon2: Double) : Double {
final val R = 6372.8 // in kilometers
val λ1 = toRadians(lat1)
val λ2 = toRadians(lat2)
val Δλ = toRadians(λ2 - λ1)
val Δφ = toRadians(lon2 - lon1)
return 2 * R * asin(sqrt(pow(sin(Δλ / 2), 2.0) + pow(sin(Δφ / 2), 2.0) * cos(λ1) * cos(λ2)))
}
 
fun main(args : Array<String>) = println("result: " + Haversine.haversine(36.12, -86.67, 33.94, -118.40))</lang>
 
=={{header|JavaScript}}==
Anonymous user