ホームページ > データベース > mysql チュートリアル > SQL を使用して、指定された距離内で最も近い緯度と経度を見つけるにはどうすればよいですか?

SQL を使用して、指定された距離内で最も近い緯度と経度を見つけるにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-18 16:17:08
オリジナル
432 人が閲覧しました

How to Find the Nearest Latitude and Longitude within a Given Distance Using SQL?

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: キロメートル単位の最大許容距離しきい値。

手順:

このクエリは、大圏距離公式を使用して、参照座標 ([startlat]、[startlng]) とテーブル内の各レコードの間の距離を計算します。計算された距離が指定されたしきい値 (この例では 25 キロメートル) より小さい場合、レコードは結果に含まれます。また、クエリは結果を距離に基づいて昇順に並べ替え、最も近いレコードが最初に返されるようにします。

以上がSQL を使用して、指定された距離内で最も近い緯度と経度を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート