私は一度同様のことを行い(最大半径のポイントを囲むすべての緯度/経度オブジェクトを検索)、次の式を使用しました:
http ://www.movable-type.co.uk/scripts/latlong.html
ただし、それはかなり時間がかかりました。だから私はオブジェクトの拳を「箱詰め」した。上記の計算に基づいて(もちろん元に戻しました)、正確に最大距離を持つ北、西、南、東の座標の緯度と経度を計算しました。ホースの最大値と最小値(latとlonの場合)を使用して、問題のすべてのオブジェクトを照会しました。そして、それらについてのみ、正確な距離を計算し、結果のリストに含めるか、除外しました。
ただし、これまでのところ、それはあなたの問題と完全には一致していません。しかし、私は計算をさらに高速化しようとしました。そのため、私は自分自身に、検索されたオブジェクトから私のものまでの正確な距離は必要ないが、それがボックスの座標の1つよりも近いかどうかを知るのは難しいと言いました。そして、その部分はあなたの質問によく対応する部分です:
あなたのケースははるかに簡単かもしれません。問題の場所(最短の場所)が、割り当てようとしている1つの場所に近いと仮定すると、この複雑な計算のすべてが役割を果たさない可能性があります。正確な距離は必要ありません。必要なのは最も快適なものです。そのために、私は地球が平らであり、経度(または緯度)間の距離が線形であると仮定します。もちろんそれは真実ではありませんが、どれが最も近いかを理解するのに十分なはずです。そこから行くと、ピタゴラスを使うことができます。
Distance = sqrt(sqr(difference-in-lat) + sqr(difference-in-lon));
距離を比較して最短距離を見つけるという単なる目的のために、時間のかかる正方形のルートをはるかに高速な正方形の操作に置き換えることもできます。
Square-Of-Distance = sqr(difference-in-lat) + sqr(difference-in-lon).
次に、距離ではなく、さまざまな距離の二乗を比較します。結果は同じですが、はるかに高速になります。
ところで、それはPHPプロジェクトでした。そのため、サンプルコードを提供することはできず、アルゴリムについて説明するだけです。