>데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 주어진 거리 내에서 가장 가까운 위도와 경도를 찾는 방법은 무엇입니까?

SQL을 사용하여 주어진 거리 내에서 가장 가까운 위도와 경도를 찾는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-18 16:17:08436검색

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])와 테이블의 각 레코드 사이의 거리를 계산합니다. 계산된 거리가 지정된 임계값(이 예에서는 25km)보다 작으면 해당 기록이 결과에 포함됩니다. 쿼리는 또한 거리에 따라 오름차순으로 결과를 정렬하여 가장 가까운 레코드가 먼저 반환되도록 합니다.

위 내용은 SQL을 사용하여 주어진 거리 내에서 가장 가까운 위도와 경도를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.