Several years ago I wrote a navigation planner in J which included several formulas for distance, heading determination, fuel consumption, etc. and I used for years to travel. Let me know if it can be of any use. /D
--- On Sun, 3/29/09, Björn Helgason <[email protected]> wrote: From: Björn Helgason <[email protected]> Subject: Re: [Jprogramming] Finding GPS coordinates with J To: "Programming forum" <[email protected]> Date: Sunday, March 29, 2009, 9:36 AM I think I got the formula here so it is a question of translating it to J and then to get the ring is to do the calculation for i.360 degrees and x distance --------------------------------- Formula: α = d/R (angular distance) lat2 = lat1 + α.cos(θ) Δφ = ln(tan(lat2/2+π/4)/tan(lat1/2+π/4)) if E:W line q = cos(lat1) otherwise q = Δlat/Δφ Δlon = α.sin(θ)/q lon2 = (lon1+Δlon+π) % 2.π − π where ln is natural log and % is modulo, Δlon is taking shortest route (<180°), and R is the earth’s radius JavaScript: lat2 = lat1 + d*Math.cos(brng); var dPhi = Math.log(Math.tan(lat2/2+Math.PI/4)/Math.tan(lat1/2+Math.PI/4)); var q = (Math.abs(lat2-lat1) > 1e-10) ? (lat2-lat1)/dPhi : Math.cos(lat1); var dLon = d*Math.sin(brng)/q; // check for some daft bugger going past the pole, normalise latitude if so if (Math.abs(lat2) > Math.PI/2) lat2 = lat2>0 ? Math.PI-lat2 : -(Math.PI-lat2); lon2 = (lon1+dLon+Math.PI)%(2*Math.PI) - Math.PI; -------------------- Formula: lat2 = asin(sin(lat1)*cos(d/R) + cos(lat1)*sin(d/R)*cos(θ)) lon2 = lon1 + atan2(sin(θ)*sin(d/R)*cos(lat1), cos(d/R)−sin(lat1)*sin(lat2)) d/R is the angular distance (in radians), where d is the distance travelled and R is the earth’s radius JavaScript: var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) ); var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2)); Excel: lat2: =ASIN(SIN(lat1)*COS(d/ER) + COS(lat1)*SIN(d/ER)*COS(brng)) lon2: =lon1 + ATAN2(COS(d/ER)-SIN(lat1)*SIN(lat2), SIN(brng)*SIN(d/ER)*COS(lat1)) --------------------------- Trig functions take arguments in radians, so latitude, longitude, and bearings in degrees (either decimal or degrees/minutes/seconds) need to be converted to radians, rad = π.deg/180. When converting radians back to degrees (deg = 180.rad/π), West is negative if using signed decimal degrees. For bearings, values in the range -π to +π [-180° to +180°] need to be converted to 0 to +2π [0°–360°]; this can be done by (brng+2.π)%2.π [brng+360)%360] where % is the modulo operator. 2009/3/29 Björn Helgason <[email protected]> > Thx > I took a quick look at the links and it looks like there are good formulas > available. > I hope to get some time soon to translate them into J as I want. > > 2009/3/28 Brian Schott <[email protected]> > > Bjorn, >> >> This search provides some good leads, I believe. >> >> >> http://www.google.com/search?hl=en&client=safari&rls=en&q=distance%2Cbearing+sphere&btnG=Search >> >> >> >> -- >> (B=) <-----my sig >> Brian Schott >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > > > -- > Björn Helgason, Verkfræðingur > Fugl&Fiskur ehf, > Þerneyjarsundi 23, Hraunborgum > Po Box 127,801 Selfoss , > t-póst: [email protected] > gsm: +3546985532 > Landslags og skrúðgarðagerð, gröfuþjónusta > http://groups.google.com/group/J-Programming > > > Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans > > góður kennari getur stigið á tær án þess að glansinn fari af skónum > /|_ .-----------------------------------. > ,' .\ / | Með léttri lund verður | > ,--' _,' | Dagurinn í dag | > / / | Enn betri en gærdagurinn | > ( -. | `-----------------------------------' > | ) | (\_ _/) > (`-. '--.) (='.'=) ♖♘♗♕♔♙ > `. )----' (")_(") ☃☠ > -- Björn Helgason, Verkfræðingur Fugl&Fiskur ehf, Þerneyjarsundi 23, Hraunborgum Po Box 127,801 Selfoss , t-póst: [email protected] gsm: +3546985532 Landslags og skrúðgarðagerð, gröfuþjónusta http://groups.google.com/group/J-Programming Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans góður kennari getur stigið á tær án þess að glansinn fari af skónum /|_ .-----------------------------------. ,' .\ / | Með léttri lund verður | ,--' _,' | Dagurinn í dag | / / | Enn betri en gærdagurinn | ( -. | `-----------------------------------' | ) | (\_ _/) (`-. '--.) (='.'=) ♖♘♗♕♔♙ `. )----' (")_(") ☃☠ ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
