>데이터 베이스 >MySQL 튜토리얼 >위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?

위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 01:56:02313검색

How to Calculate Distance Between Two Points Using Latitude and Longitude?

두 점을 기준으로 거리 계산: 위도와 경도

위도와 경도를 사용하여 점 사이의 거리를 결정하는 것은 일반적인 GIS 작업입니다. 지정된 반경 내의 점을 찾으려면 수학 공식과 SQL 쿼리를 활용할 수 있습니다.

거리 계산 공식

한 가지 접근 방식은 Haversine 공식을 사용하는 것입니다. 구 위의 두 점 사이의 거리:

<code class="python">def get_distance(lat1, lon1, lat2, lon2, unit='Mi'):
    theta = lon1 - lon2
    distance = (math.sin(math.radians(lat1)) * math.sin(math.radians(lat2))) + \
              (math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * \
              math.cos(math.radians(theta)))
    distance = math.acos(distance)
    distance = math.degrees(distance)
    distance = distance * 60 * 1.1515
    if unit == 'Km':
        distance = distance * 1.609344
    return round(distance, 2)</code>

반경 검색을 위한 SQL 쿼리

또 다른 옵션은 거리 공식과 함께 MySQL 쿼리를 사용하는 것입니다.

<code class="sql">SELECT *,
(((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* pi()/180))))*180/pi())*60*1.1515) as distance
FROM `MyTable` HAVING distance >= ".$distance.";</code>

이러한 방법을 적용하면 점 사이의 거리를 효율적으로 계산하고, 주어진 위치에서 원하는 반경 내에 있는 점을 찾을 수 있습니다.

위 내용은 위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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