JSFiddle - React, Tailwind, and code Playground
by dpa99c
JavaScript
$(document).ready(function(){
var directionTolerace = 20; //meters
var directionPoint = new LatLon(50.369428019968815, -4.608574211597443);
var prevPosition = new LatLon(50.3686757, -4.6085711);
var currPosition = new LatLon(50.3686889, -4.6085762);
var distFromCurrToDir = currPosition.distanceTo(directionPoint)*1000;
var distFromPrevToCurr = prevPosition.distanceTo(currPosition)*1000;
var constrainedCrosstrack = directionPoint.constrainedCrossTrackDistance(prevPosition, currPosition)*1000;
$('body').append('<p>Distance from prev pos to current pos: '+distFromPrevToCurr+'m</p>');
$('body').append('<p>Distance from current pos to dir point: '+distFromCurrToDir+'m</p>');
$('body').append('<p>Direction visited by radius: '+(distFromCurrToDir<directionTolerace)+'</p>');
$('body').append('<p>Constrained crosstrack distance: '+constrainedCrosstrack+'m</p>');
$('body').append('<p>Direction visited by crosstrack: '+(constrainedCrosstrack<directionTolerace)+'</p>');
});
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* Latitude/longitude spherical geodesy formulae & scripts (c) Chris Veness 2002-2012 */
/* - www.movable-type.co.uk/scripts/latlong.html */
/* */
/* Sample usage: */
/* var p1 = new LatLon(51.5136, -0.0983); */
/* var p2 = new LatLon(51.4778, -0.0015); */
/* var dist = p1.distanceTo(p2); // in km */
/* var brng = p1.bearingTo(p2); // in degrees clockwise from north */
/* ... etc ...