[osflash] distance between two points of lat/long

Brian LeRoux brian at westcoastlogic.com
Wed Dec 13 20:35:38 EST 2006


Getting some slightly 'off' results...anyone w/ a little geodata
experience up for checking my math here? Really appreciate any
suggestions for improving the code here too!

Cheers,
Brian



function distance( lat1:Number, lon1:Number, lat2:Number, lon2:Number,
unit:String ):Number
	{
		var theta = lon1 - lon2;
		var dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.cos(deg2rad(theta))
	
		dist = Math.acos(dist)
		dist = rad2deg(dist)
	
		var theDistance = dist * 60 * 1.1515
	
		switch( unit )
		{
			case "K":
				theDistance = distance * 1.609344
			break;
			
			case "N":
				theDistance = distance * 0.8684
			break;
		}
		
		return theDistance
	}
	
	function deg2rad( n:Number ):Number
	{
		return( n * Math.PI / 180 )
	}

	function rad2deg( n:Number ):Number
	{
		return( n * 180 / Math.PI )
	}



More information about the osflash mailing list