Frage

packte ich eine Datenbank der Postleitzahlen und ihre langitudes / Breiten, etc. von dieser Diese Seite . Es hat die folgenden Felder:

  

ZIP, Breite, Länge, Stadt, Staat, Landkreis ZIP_CLASS

Die Daten werden in einer Textdatei, aber ich es in eine MySQL-Tabelle eingefügt. Meine Frage ist nun, wie kann ich die Felder oben verwenden, um den Abstand zwischen zwei Postleitzahlen zu berechnen, die ein Benutzer auf der Website eingeben? Arbeits Code in PHP wird verstehen,

War es hilfreich?

Lösung

Sie können auch versuchen, einen Web-Service schlagen den Abstand ber. Lassen Sie jemand anderes schweres Heben tun.

https://www.zipcodeapi.com/API#distance

Andere Tipps

Es kann mit nur Mathe getan werden ...

function calc_distance($point1, $point2)
{
    $distance = (3958 * 3.1415926 * sqrt(
            ($point1['lat'] - $point2['lat'])
            * ($point1['lat'] - $point2['lat'])
            + cos($point1['lat'] / 57.29578)
            * cos($point2['lat'] / 57.29578)
            * ($point1['long'] - $point2['long'])
            * ($point1['long'] - $point2['long'])
        ) / 180);

    return $distance;
}

Überprüfen Sie die Haversine Formel für Großkreis Entfernungen zwischen zwei Punkten zu berechnen. Einige weitere Proben können hier werden

Haversine Formel:

  • R = Erdradius (mittlerer Radius = 6,371km)
  • Δlat = lat2- LAT1
  • Δlong = long2- Long1
  • a = sin² (Δlat / 2) + cos (LAT1) · cos (LAT2) .sin² (Δlong / 2)
  • C = 2.atan2 (√a, √ (1-a))
  • d = R. C

(Beachten Sie, dass Winkel in Radiant sein müssen passieren Funktionen trig).

In der ZIP-Tabelle müssen Sie die Koordinaten greifen (lat, long) für die beiden Punkte, für die Sie den Abstand bekommen.

Sie können dann entweder die Entfernung direkt in den SQL oder mit PHP berechnen. Beide Verfahren sind in diesem Beitrag beschrieben:

http : //dev.strategystar.net/2011/10/mysql-php-get-distance-between-two-coordinates-in-miles-kilometers/

Die Berechnung in dem Beispiel auf der Formel basiert bereits in diesem Thread diskutiert. Es bietet den Radius für die Erde in beiden Meilen und Kilometer so ermöglicht es Ihnen, den Abstand zwischen zwei Punkten in den beiden Einheiten zu erhalten.

Der Link oben ist groß, weil das Verfahren zur Berechnung beinhaltet keine magischen Zahlen, nur den Radius der Erde!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top