緯度・経度から2地点間の距離を求める方法(PHP・MySQL)

解決

最近、緯度・経度から2地点間の距離を求める必要があったので、その際に調べた内容を記録しておきます。

緯度・経度の数値から距離を求めるには「ヒュベニの公式」という計算式を使うそうです。
(地球は球体なので、単純に緯度経度を平面に置き換えて距離を求めようとすると、湾曲している分の誤差が発生します。)

詳しい解説は他のサイトをご覧いただくとして、「ヒュベニの公式」は次のような計算式になります。

ヒュベニの公式

上記のうち、定数:a(長半径)・b(短半径)は使用する「測地系」によって異なりますが、例えばGoogleマップなどでは「世界測地系(WGS84)」が使われているので、「a= 6,378,137.000(m)」「b= 6,356,752.314 245(m)」になります。

これらをもとに、次のようなコード(PHP)で緯度・経度から2地点間の距離を求めることができます。

また、緯度・経度のデータが格納されたMySQLデータベースがあり、ある地点(緯度・経度)から近い順に並び替えて取得するには、次のようなSQLを使います。