SQL クエリを使用して最も近い緯度と経度を見つけます
データベースからデータを取得する場合、多くの場合、特定の地点に最も近い緯度と経度のレコードを検索する必要があります。これは、近くのビジネス、観光名所、その他の興味のある場所を見つけるようなシナリオで特に役立ちます。
クエリポイント
このタスクを実行するには、緯度と経度に基づいて 2 点間の距離を計算できる SQL クエリが必要です。これには、地球の曲率を考慮したハバーシンの公式の使用が含まれます。さらに、レコードを取得するために許容される最大距離を指定する必要があります。
SQL クエリ構造
次の 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 < [max_distance] ORDER BY distance;</code>
[startlat]
と [startlng]
は始点の緯度経度を表します。 [max_distance]
レコードを取得する最大距離を指定します。 説明:
このクエリは、Haversine 式を使用して、各レコードの緯度および経度と、指定された開始点の間の距離を計算します。 「距離」列には、結果として得られた距離が格納されます。指定された最大距離よりも距離が短いレコードが選択され、開始点からの距離によって並べ替えられます。
このクエリを使用すると、距離の制約を考慮して、指定された地点に最も近い緯度と経度のレコードを効率的に見つけることができます。
以上がSQL を使用してデータベース内の最も近い緯度と経度を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。