GoLang package to compute the distance between two geographic latitude, longitude coordinates
Vincenty
is more accurate thanHaversine
because is considers the Earth's ellipticity when performing the calculation, but takes a longer time to compute.- Wikipedia: Haversine
- Wikipedia: Vincenty
- Is the Haversine Formula or the Vincenty's Formula better for calculating distance?
var newYork = geodist.Coord{Lat: 40.7128, Lon: 74.0060}
var sanDiego = geodist.Coord{Lat: 32.7157, Lon: 117.1611}
miles, km, ok := geodist.VincentyDistance(newYork, sanDiego)
if !ok {
fmt.Println("Unable to compute Vincenty Distance.")
return
}
fmt.Printf(" [Vincenty] New York to San Diego: %.3f m, %.3f km\n", miles, km)
var elPaso = geodist.Coord{Lat: 31.7619, Lon: 106.4850}
var stLouis = geodist.Coord{Lat: 38.6270, Lon: 90.1994}
miles, km = geodist.HaversineDistance(elPaso, stLouis)
fmt.Printf("[Haversine] El Paso to St. Louis: %.3f m, %.3f km\n", miles, km)
- Great Circle: NOAA: Latitude/Longitude Distance Calculator
- Haversine: Moveable Type: Calculate distance, bearing and more between Latitude/Longitude points
- Vincenty: CQSRG: WGS-84 World Geodetic System Distance Calculator
- Haversine Algorithm in
GoLang
- Vincenty Algorithm in
JavaScript