MS SQL Server (私が見つけたばかりですが、あなたには関係ないかもしれません) には、(とりわけ) 緯度と経度によって定義される 2 点間の距離を計算できる空間データ型が含まれています。したがって、このコード:-
DECLARE @p1 geography = geography::Point(@lat1, @long1, 4326);
SELECT @distance=@p1.STDistance(geography::Point(@lat2, @long2, 4326))
@distance は、2 点間のメートル単位の距離をロードします。私が書いたインライン関数のスカラー値からコードを取り出しましたが、テーブルの列を直接ターゲットにすることもできます。4326 マジック ナンバーは、空間参照系識別子 (SRID) への参照であり、メートル単位で回答を提供します。この計算では、高度と地球の歪みは考慮されていません (これには他の関数/SRID を使用できます) が、おそらくほとんどの目的には十分な精度です。
残念ながら、postgresql に制限されている場合、この回答は役に立ちません (ただし、さらなる調査の方向性を示している可能性があります)。
Sql Server のリファレンスは、http ://technet.microsoft.com/en-us/library/bb933790.aspx にあります。