>  기사  >  데이터 베이스  >  위도와 경도를 사용하여 두 점 사이의 거리를 어떻게 계산할 수 있나요?

위도와 경도를 사용하여 두 점 사이의 거리를 어떻게 계산할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 01:51:02869검색

How Can I Calculate the Distance Between Two Points Using Latitude and Longitude?

위도와 경도를 사용하여 점 사이의 거리 계산

많은 시나리오에서 두 점 사이의 거리를 결정하는 것이 필요합니다. 위도와 경도 좌표. 일반적인 예로는 주어진 위치에서 특정 반경 내의 지점을 찾는 것이 포함됩니다.

이를 달성하려면 수학 공식을 활용하여 거리를 계산할 수 있습니다. 다음 설명 함수를 고려하십시오.

<code class="php">function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') {
    $theta = $longitude1 - $longitude2;
    $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) +
                (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) *
                cos(deg2rad($theta)));
    $distance = acos($distance);
    $distance = rad2deg($distance);
    $distance = $distance * 60 * 1.1515;
    switch($unit) {
        case 'Mi':
            break;
        case 'Km':
            $distance = $distance * 1.609344;
    }
    return (round($distance, 2));
}</code>

또는 SQL 쿼리를 사용하여 다음과 같은 공식을 사용하여 반경 내의 거리를 계산할 수 있습니다.

<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으로 문의하세요.