两个 Lat/Longs Autoit 之间的距离公式?

Distance formula between two Lat/Longs Autoit?

我正在尝试计算两个坐标之间的距离,但遇到了问题。我看过 JavaScript 的公式,但似乎无法将其正确转换为 Autoit。示例

$lat1 = 34.521630
$lon1 = -119.134680

$lat2 = 34.911463
$lon2 = -119.453130

;
;
;  $distance = Some code here that will calculate distance
;
;
;

不是AutoIt本身的问题,你需要正确的算法:

#include <Math.au3>

$lat1 = 34.521630
$lon1 = -119.134680

$lat2 = 34.911463
$lon2 = -119.453130

ConsoleWrite(_distanceInKm($lat1, $lon1, $lat2, $lon2) & @CRLF)

Func _distanceInKm($lat1, $lon1, $lat2, $lon2)
    Local $iRadius = 6371

    Local $iLat = _Radian($lat2 - $lat1)
    Local $iLon = _Radian($lon2- $lon1)

    Local $a = Sin($iLat / 2) * Sin($iLat / 2) + Cos(_Radian($lat1)) * Cos(_Radian($lat2)) * Sin($iLon / 2) * Sin($iLon / 2)
    Local $c = 2 * ATan2(Sqrt($a), Sqrt(1 - $a))
    Local $d = $iRadius * $c

    Return Abs($d)
EndFunc

Func ATan2($y, $x)
    Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y))))
EndFunc