2017-05-11 5 views
0

Ich versuche, Abstand zwischen zwei Standorten zu bekommen.Wie erreiche ich die Entfernung zwischen Punkten mit Längen- und Breitengrad mit PHP?

Hier ist ein Ort Benutzereingabe und ein anderer Ort ist meine Filiale. Ich möchte die Entfernung zwischen dort Eingabestelle zu meiner Filiale zeigen.

Um den Standort des Benutzers zu erhalten, verwenden wir das Formular, wo der Benutzer dort die Postleitzahl teilt und wir diesen Reißverschluss in Längen- und Breitengrad konvertieren. Und in meiner Datenbank habe ich den Standort und die jeweilige geografische Länge und Breite gespeichert.

Hier in diesem Fall kann mir jemand helfen, Abstand zu bekommen.

Dank

+0

Haben Sie googeln? Was hast du aus dem gefunden, was du gefunden hast? – user919426

Antwort

2

GeoDataSource Team eine sehr nützliche Funktion entwickeln, dies zu erreichen:

function distance($lat1, $lon1, $lat2, $lon2, $unit) { 

    $theta = $lon1 - $lon2; 
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); 
    $dist = acos($dist); 
    $dist = rad2deg($dist); 
    $miles = $dist * 60 * 1.1515; 
    $unit = strtoupper($unit); 

    if ($unit == "K") { 
    return ($miles * 1.609344); 
    } else if ($unit == "N") { 
     return ($miles * 0.8684); 
    } else { 
     return $miles; 
     } 
} 

echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>"; 
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>"; 
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>"; 

Reference

+0

danke, wie können wir um figure value? – omkar

+0

Verwenden Sie dafür die '' round() 'Funktion –

Verwandte Themen