MySQL ベースの大圏距離計算 (Haversine 公式)
地球の表面上の 2 つの地理的点間の大圏距離を計算するには、 Haversine 式を使用することができます。この式には、両方の点の経度と緯度が必要です。
この例では、この計算を MySQL 内で完全に実行し、PHP の必要性を排除することを目的としています。これを実現するには、Google Code FAQ からヒントを得た次の SQL ステートメントを検討してください。
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
このステートメントは、緯度 37、経度 -122 の開始点を想定し、半径 25 マイル以内で最も近い 20 の場所を取得します。 。 Haversine 公式を利用して、各点と開始点の間の距離を計算します。緯度と経度の値を適宜変更することで、クエリを特定の要件に合わせて調整できます。
以上がMySQL のハベルサイン公式を使用して大圏距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。