首頁  >  文章  >  資料庫  >  如何使用緯度和經度計算兩點之間的距離?

如何使用緯度和經度計算兩點之間的距離?

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