Most of the applications use Google Maps due to indicate places on Google Maps. We can use it to find the distance between two locations having coordinates latitude and longitude for those locations. But that gives by road distance. But in some scenarios, we only have to find a straight line distance between 2 latitudes and longitudes. In this article, we will discuss how you can calculate a straight line distance between two locations in Kotlin.

Find Distance using Kotlin
In Kotlin we don’t have any built-in framework to calculate distance directly. But we can do it by using mathematical formulas in the following way.
fun distanceInKm(lat1: Double, lon1: Double, lat2: Double, lon2: Double): Double {
val theta = lon1 - lon2
var dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta))
dist = Math.acos(dist)
dist = rad2deg(dist)
dist = dist * 60 * 1.1515
dist = dist * 1.609344
return dist
}
private fun deg2rad(deg: Double): Double {
return deg * Math.PI / 180.0
}
private fun rad2deg(rad: Double): Double {
return rad * 180.0 / Math.PI
}
This function takes 4 parameters which represent two coordinates, latitude, and longitude for both locations respectively. Makes mathematical calculations considering the circular earth. This function can be used in Android as well. Here you can find the last known location.
Limitations of the above method
You might have got the idea till now that the above method returns the perpendicular distance not the by road distance. Although this perpendicular and straight line distance is enough for most of the cases. But if you are looking for By road distance then you need to use Google Direction API.
That’s It. This is how to Find Distance between two locations in Kotlin.