Cómo calcular la distancia entre dos puntos en la aplicación de Android

en mi aplicación, estoy tratando de calcular la distancia que una persona viaja de un lugar a otro. Para eso estoy usando la fórmula de Haversine,

R = earth’s radius (mean radius = 6,371km)
Δlat = lat2− lat1
Δlong = long2− long1
a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(√a, √(1−a))
d = R.c 

obteniendo la latitud y longitud del lugar de inicio y el lugar de llegada, estoy calculando la distancia en kms. Pero otros dicen que este cálculo de distancia funciona solo si se viaja por vía aérea y que varía si el usuario viaja por carretera.

Si es así, ¿cómo puedo obtener una distancia correcta mientras viajo por carreteras?

por favor ayúdame amigos