6

私は現在、関数内のワードプレスWebサイトの1つで2点間の走行距離を計算しています。私はこれをグーグル距離行列を使って呼び出すことによって達成します

wp_remote_get(
    "http://maps.googleapis.com/maps/api/distancematrix/json?origins=".
    urlencode($origin).
    "&destinations=".
    urlencode($destination).
    "&sensor=false&units=imperial"
)

次に、ユーザーがフォームを介して入力した起点と終点をURLに挿入します。「カラスが飛ぶように」距離を計算するために同様のアプローチを使用することは可能ですか、それとも関数を作り直す必要がありますか?

4

1 に答える 1

7

2点間の距離:(lat1、lon1)から(lat2、lon2)

distance = acos(
     cos(lat1 * (PI()/180)) *
     cos(lon1 * (PI()/180)) *
     cos(lat2 * (PI()/180)) *
     cos(lon2 * (PI()/180))
     +
     cos(lat1 * (PI()/180)) *
     sin(lon1 * (PI()/180)) *
     cos(lat2 * (PI()/180)) *
     sin(lon2 * (PI()/180))
     +
     sin(lat1 * (PI()/180)) *
     sin(lat2 * (PI()/180))
    ) * 3959

3959は、マイル単位の地球半径です。同じ単位で結果を得るには、この値をKM(または他の単位)の半径に置き換えます。

この実例と比較することで、実装を検証できます。

于 2012-12-12T17:22:59.130 に答える