SQL を使用して最も近い緯度と経度を検索するクエリ
この記事では、SQL を使用して、データベースから指定された参照座標の特定の範囲内で最も近い経度と緯度を取得する方法を説明します。
問題の説明:
緯度と経度の値がわかっているので、その緯度と経度に最も一致するデータベース内のレコードを抽出したいと考えています。ただし、距離のしきい値があります。計算された距離がこのしきい値を超える場合、データは取得されません。
テーブル構造:
列名 | 数据类型 |
---|---|
id | 整数 |
纬度 | 十进制 |
经度 | 十进制 |
地名 | 字符串 |
城市 | 字符串 |
国家 | 字符串 |
州 | 字符串 |
邮编 | 整数 |
海拔 | 整数 |
クエリステートメント:
このタスクを実行するには、次の SQL クエリを使用します:
<code class="language-sql">SELECT 纬度, 经度, SQRT( POW(69.1 * (纬度 - [startlat]), 2) + POW(69.1 * ([startlng] - 经度) * COS(纬度 / 57.3), 2)) AS distance FROM 表名称 HAVING distance < 25 ORDER BY distance ASC;</code>
手順:
このクエリは、大圏距離公式を使用して、参照座標 ([startlat]、[startlng]) とテーブル内の各レコードの間の距離を計算します。計算された距離が指定されたしきい値 (この例では 25 キロメートル) より小さい場合、レコードは結果に含まれます。また、クエリは結果を距離に基づいて昇順に並べ替え、最も近いレコードが最初に返されるようにします。
以上がSQL を使用して、指定された距離内で最も近い緯度と経度を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。