Home » Extra libraries, Code snippets, applications etc. » Applications created with U++ » Distance - geodesic - Vincenty - very accurate
Re: Distance - geodesic - Vincenty - very accurate [message #25951 is a reply to message #25947] |
Sun, 21 March 2010 18:11 |
|
koldo
Messages: 3357 Registered: August 2008
|
Senior Veteran |
|
|
Hello nlnelson
Here there is the Chris Veness Vicentry direct formula
http://www.movable-type.co.uk/scripts/latlong-vincenty-direc t.html
The LGPL javascript code is this:
function destVincenty(lat1, lon1, brng, dist) {
var a = 6378137, b = 6356752.3142, f = 1/298.257223563; // WGS-84 ellipsiod
var s = dist;
var alpha1 = brng.toRad();
var sinAlpha1 = Math.sin(alpha1);
var cosAlpha1 = Math.cos(alpha1);
var tanU1 = (1-f) * Math.tan(lat1.toRad());
var cosU1 = 1 / Math.sqrt((1 + tanU1*tanU1)), sinU1 = tanU1*cosU1;
var sigma1 = Math.atan2(tanU1, cosAlpha1);
var sinAlpha = cosU1 * sinAlpha1;
var cosSqAlpha = 1 - sinAlpha*sinAlpha;
var uSq = cosSqAlpha * (a*a - b*b) / (b*b);
var A = 1 + uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));
var B = uSq/1024 * (256+uSq*(-128+uSq*(74-47*uSq)));
var sigma = s / (b*A), sigmaP = 2*Math.PI;
while (Math.abs(sigma-sigmaP) > 1e-12) {
var cos2SigmaM = Math.cos(2*sigma1 + sigma);
var sinSigma = Math.sin(sigma);
var cosSigma = Math.cos(sigma);
var deltaSigma = B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-
B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));
sigmaP = sigma;
sigma = s / (b*A) + deltaSigma;
}
var tmp = sinU1*sinSigma - cosU1*cosSigma*cosAlpha1;
var lat2 = Math.atan2(sinU1*cosSigma + cosU1*sinSigma*cosAlpha1,
(1-f)*Math.sqrt(sinAlpha*sinAlpha + tmp*tmp));
var lambda = Math.atan2(sinSigma*sinAlpha1, cosU1*cosSigma - sinU1*sinSigma*cosAlpha1);
var C = f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));
var L = lambda - (1-C) * f * sinAlpha *
(sigma + C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));
var revAz = Math.atan2(sinAlpha, -tmp); // final bearing
return new LatLon(lat2.toDeg(), lon1+L.toDeg());
}
Like the inverse, it seems easy to convert to C and LGPL license is pretty open.
Best regards
IƱaki
|
|
|
|
|
Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Sat, 20 March 2010 08:23
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Sat, 20 March 2010 21:31
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: Didier on Sat, 20 March 2010 22:29
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Sun, 21 March 2010 07:57
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Sun, 21 March 2010 18:11
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Mon, 22 March 2010 22:24
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Mon, 22 March 2010 23:11
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Tue, 23 March 2010 11:57
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Fri, 26 March 2010 12:30
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
By: koldo on Fri, 26 March 2010 20:07
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
|
|
Re: Distance - geodesic - Vincenty - very accurate
|
Goto Forum:
Current Time: Sat Apr 27 09:20:03 CEST 2024
Total time taken to generate the page: 0.03583 seconds
|