Heim  >  Artikel  >  Datenbank  >  Wie kann ich den Abstand zwischen zwei Punkten anhand des Breiten- und Längengrads berechnen?

Wie kann ich den Abstand zwischen zwei Punkten anhand des Breiten- und Längengrads berechnen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 01:51:02869Durchsuche

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

Berechnung des Abstands zwischen Punkten anhand von Breiten- und Längengrad

In zahlreichen Szenarios ist es notwendig, den Abstand zwischen zwei Punkten anhand ihrer jeweiligen Lage zu bestimmen Breiten- und Längenkoordinaten. Ein typisches Beispiel ist die Lokalisierung von Punkten innerhalb eines bestimmten Radius von einem bestimmten Standort aus.

Um dies zu erreichen, können Sie mathematische Formeln nutzen, um Entfernungen zu berechnen. Betrachten Sie die folgende veranschaulichende Funktion:

<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>

Alternativ können Sie SQL-Abfragen verwenden, um Entfernungen innerhalb eines Radius mithilfe einer Formel wie der folgenden zu berechnen:

<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>

Durch die Verwendung dieser Ansätze können Sie effektiv Suchen Sie nach Punkten innerhalb eines bestimmten Radius basierend auf ihren Breiten- und Längenkoordinaten.

Das obige ist der detaillierte Inhalt vonWie kann ich den Abstand zwischen zwei Punkten anhand des Breiten- und Längengrads berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn