0

私は周りを見回して、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を取得しています。

ありがとう!

4

1 に答える 1

3

1)これが返すユニットは何ですか?(目標はフィート単位)

地球の半径を指定する単位は何でも。

2)この方程式は正しい方法で書かれていますか?

試して。結果を、このような既存のHaversine式の実装と比較できます。

于 2013-02-28T16:28:30.283 に答える