mdelatorre

Autoit GPS distance calculation

Dec 7th, 2024 (edited)
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 1.59 KB | Source Code | 0 0
  1. Global $fLocation1[2], $fLocation2[2]
  2.  
  3. ;~      Location 1
  4. $fLocation1[0] = 52.918862
  5. $fLocation1[1] = -1.474920
  6.  
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8.  
  9. ;~      Location 2
  10. $fLocation2[0] = 53.519629
  11. $fLocation2[1] = -1.129435
  12.  
  13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14.  
  15.  
  16. $fDistance = Distance($fLocation1[0], $fLocation1[1], $fLocation2[0], $fLocation2[1])
  17.  
  18. MsgBox(0,0, $fDistance)
  19.  
  20.  
  21. Func Distance($_Lat1, $_Lon1, $_Lat2, $_Lon2) ; I translated this from a javascript recommendation.
  22.     Local $RadiusOfEarth = 6371.008 ;6371 is the volumetric mean average radius of earth.
  23.  
  24.     Local $_dLat = Deg2Rad($_Lat2 - $_Lat1) ; No clue...
  25.     Local $_dLon = Deg2Rad($_Lon2 - $_Lon1) ; No clue...
  26.  
  27.     Local $_a = (Sin($_dLat / 2) * Sin($_dLat / 2)) + (Cos(Deg2Rad($_Lat1)) * Cos(Deg2Rad($_Lat2))) * _ ; No clue...
  28.             (Sin($_dLon / 2) * Sin($_dLon / 2)) ; No clue...
  29.  
  30.     Local $_C = 2 * ATan2(Sqrt($_a), Sqrt(1 - $_a)) ; No clue...
  31.  
  32.     Local $_d = $RadiusOfEarth * $_C ; No clue...
  33.  
  34.     Return Round(($_d * 1000) * 0.000621371192237, 3) ; I added this to convert meters to miles and returns this figure to the caller, rounded to 3 decimal places.
  35. EndFunc   ;==>Distance
  36.  
  37. Func Deg2Rad($_input) ; I translated this from a javascript recommendation (There was no such function in AutoIt, so I had to search for one)
  38.     Local $Pi = 3.1415926535897932384626433832795
  39.     Return $_input * $Pi / 180
  40. EndFunc   ;==>Deg2Rad
  41.  
  42.  
  43. Func ATan2($y, $x) ; Taken from the AutoIt forum, where someone else needed the ATan2 function. This was the best, fastest option of the two provided.
  44.     Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y))))
  45. EndFunc   ;==>ATan2
Tags: macro AutoIT
Add Comment
Please, Sign In to add comment