私は周りを見回して、2つの座標(lat1、lng1)と(lat2、lng2)の間の距離を決定するための半正矢関数の言及を見てきました。
私はこのコードを実装しました:
function haversineGreatCircleDistance(
$latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
{
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
return $angle * $earthRadius;
}
そして決定しようとしています:
1)これが返すユニットは何ですか?(目標はフィート単位)
2)この方程式は正しい方法で書かれていますか?
たとえば、これら2つのポイント間の距離はどのくらいにする必要がありますか?
(32.8940695525、-96.7926336453)および(33.0642604502、-96.8064332754)?
上記の式から18968.0903312を取得しています。
ありがとう!