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

PHP에서 위도와 경도를 사용하여 반경 내 거리를 계산하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 18:40:03534검색

How to Calculate Distances within a Radius Using Latitude and Longitude in PHP?

위도와 경도로부터 거리 계산

이 시나리오에서는 반경 15마일 내의 지점을 확인하려고 합니다. 사용자가 입력한 좌표. 이를 달성하려면 수학 공식을 활용하여 거리를 계산할 수 있습니다.

다음 PHP 함수를 고려하세요.

<code class="php">function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') { 

    // Calculate the angle difference
    $theta = $longitude1 - $longitude2; 

    // Calculate the distance
    $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + 
                (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * 
                cos(deg2rad($theta))); 

    // Convert to degrees
    $distance = acos($distance); 
    $distance = rad2deg($distance); 

    // Convert to miles or kilometers
    $distance = $distance * 60 * 1.1515; 

    // Round the distance
    return (round($distance,2));
}</code>

또는 데이터베이스 쿼리를 활용하여 이를 수행할 수도 있습니다.

<code class="sql">$query = "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에서 위도와 경도를 사용하여 반경 내 거리를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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