Heim >Datenbank >MySQL-Tutorial >Wie berechnet man den Abstand zwischen zwei Postleitzahlen in PHP?

Wie berechnet man den Abstand zwischen zwei Postleitzahlen in PHP?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 07:38:29849Durchsuche

How to Calculate Distance Between Two Zip Codes in PHP?

Bestimmen des Abstands zwischen Postleitzahlen in PHP

Die Anforderung eines Benutzers, den Abstand zwischen zwei Postleitzahlen zu berechnen, erfordert die Verwendung einer Datenbank mit Postleitzahlen und ihre entsprechenden Breiten- und Längengrade. Dieser Leitfaden bietet eine Lösung in PHP basierend auf den bereitgestellten Datenfeldern:

Lösung:

Um den Abstand zwischen zwei Postleitzahlen zu berechnen, können die folgenden Schritte unternommen werden:

  1. Verknüpfen Sie die Breiten- und Längengrade der beiden Postleitzahlen mithilfe der definierten Datenbankfelder (LATITUDE und LONGITUDE) für jede Postleitzahl.
  2. Berechnen Sie die Haversine-Entfernung mithilfe der folgenden Formel:
<code class="php">function calc_distance($point1, $point2)
{
    $radius      = 3958;      // Earth's radius (miles)
    $deg_per_rad = 57.29578;  // Number of degrees/radian (for conversion)

    $distance = ($radius * pi() * sqrt(
                ($point1['lat'] - $point2['lat'])
                * ($point1['lat'] - $point2['lat'])
                + cos($point1['lat'] / $deg_per_rad)  // Convert these to
                * cos($point2['lat'] / $deg_per_rad)  // radians for cos()
                * ($point1['long'] - $point2['long'])
                * ($point1['long'] - $point2['long'])
        ) / 180);

    return $distance;  // Returned using the units used for $radius.
}</code>

Dieser Code nutzt die Erdradiuskonstante (3958 Meilen) und wandelt die Breiten- und Längengrade zur genauen Entfernungsberechnung in Bogenmaß um.

Das obige ist der detaillierte Inhalt vonWie berechnet man den Abstand zwischen zwei Postleitzahlen in PHP?. 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