緯度と経度データベース内の距離を決定します
緯度と経度の座標が与えられた場合、そのタスクは、距離が指定されたしきい値内に収まるようにしながら、最も一致する緯度と経度を持つレコードをデータベースから取得することです。距離が指定された制限を超える場合、レコードは返されません。
提供されるテーブル構造には、経度、緯度、その他の位置関連情報の列が含まれています。これを行うには、次の SQL クエリを使用します:
<code class="language-sql">SELECT latitude, longitude, SQRT( POW(69.1 * (latitude - [startlat]), 2) + POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance FROM TableName HAVING distance < [radius]</code>
このクエリでは、[startlat]
と [startlng]
は測定距離の開始座標を表します。距離の計算は、球 (この場合は地球) 上の 2 点間の距離を正確に決定するハーバーサインの公式を使用して実行されます。 POW()
関数は開始座標とターゲット座標の差を二乗し、COS()
関数は地球の曲率を考慮します。最終的な結果はマイル単位の距離です。
HAVING 句に「距離 < [半径]」という条件を含めることで、指定した半径 [半径] よりも距離が小さいレコードのみが返されるようになります。
以上が緯度と経度を使用して、指定された半径内で最も近い地理的記録を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。