public/javascripts/vendor/javascripts/geolib.js
function(originLL, destLL) {

			var keys = geolib.getKeys(originLL);
			var latitude = keys.latitude;
			var longitude = keys.longitude;

			destLL[latitude] = geolib.useDecimal(destLL[latitude]);
			destLL[longitude] = geolib.useDecimal(destLL[longitude]);
			originLL[latitude] = geolib.useDecimal(originLL[latitude]);
			originLL[longitude] = geolib.useDecimal(originLL[longitude]);

			var bearing = (
				(
					Math.atan2(
						Math.sin(
							destLL[longitude].toRad() - 
							originLL[longitude].toRad()
						) * 
						Math.cos(
							destLL[latitude].toRad()
						), 
						Math.cos(
							originLL[latitude].toRad()
						) * 
						Math.sin(
							destLL[latitude].toRad()
						) - 
						Math.sin(
							originLL[latitude].toRad()
						) * 
						Math.cos(
							destLL[latitude].toRad()
						) * 
						Math.cos(
							destLL[longitude].toRad() - originLL[longitude].toRad()
						)
					)
				).toDeg() + 360
			) % 360;

			return bearing;

		}
function(originLL, destLL) {

			var keys = geolib.getKeys(originLL);
			var latitude = keys.latitude;
			var longitude = keys.longitude;

			destLL[latitude] = geolib.useDecimal(destLL[latitude]);
			destLL[longitude] = geolib.useDecimal(destLL[longitude]);
			originLL[latitude] = geolib.useDecimal(originLL[latitude]);
			originLL[longitude] = geolib.useDecimal(originLL[longitude]);

			var bearing = (
				(
					Math.atan2(
						Math.sin(
							destLL[longitude].toRad() - 
							originLL[longitude].toRad()
						) * 
						Math.cos(
							destLL[latitude].toRad()
						), 
						Math.cos(
							originLL[latitude].toRad()
						) * 
						Math.sin(
							destLL[latitude].toRad()
						) - 
						Math.sin(
							originLL[latitude].toRad()
						) * 
						Math.cos(
							destLL[latitude].toRad()
						) * 
						Math.cos(
							destLL[longitude].toRad() - originLL[longitude].toRad()
						)
					)
				).toDeg() + 360
			) % 360;

			return bearing;

		}
function ( originLL , destLL ) { var keys = geolib . getKeys ( originLL ) ; var latitude = keys . latitude ; var longitude = keys . longitude ; destLL [ latitude ] = geolib . useDecimal ( destLL [ latitude ] ) ; destLL [ longitude ] = geolib . useDecimal ( destLL [ longitude ] ) ; originLL [ latitude ] = geolib . useDecimal ( originLL [ latitude ] ) ; originLL [ longitude ] = geolib . useDecimal ( originLL [ longitude ] ) ; var bearing = ( ( Math . atan2 ( Math . sin ( destLL [ longitude ] . toRad ( ) - originLL [ longitude ] . toRad ( ) ) * Math . cos ( destLL [ latitude ] . toRad ( ) ) , Math . cos ( originLL [ latitude ] . toRad ( ) ) * Math . sin ( destLL [ latitude ] . toRad ( ) ) - Math . sin ( originLL [ latitude ] . toRad ( ) ) * Math . cos ( destLL [ latitude ] . toRad ( ) ) * Math . cos ( destLL [ longitude ] . toRad ( ) - originLL [ longitude ] . toRad ( ) ) ) ) . toDeg ( ) + 360 ) % 360 ; return bearing ; }
Gets great circle bearing of two points. See description of getRhumbLineBearing for more information

@param		object		origin coordinate (e.g. {latitude: 51.5023, longitude: 7.3815})
@param		object		destination coordinate
@return		integer		calculated bearing
Gets great circle bearing of two points . See description of getRhumbLineBearing for more information