Ich möchte diese Formel mit PHP verwenden. Ich habe eine Datenbank mit einigen Werten von Längen- und Breitengrad gespeichert.Haversine Formel mit PHP
Ich möchte mit einem bestimmten Wert von Breite und Länge in der Eingabe alle Entfernungen (in km) von diesem Punkt mit jedem Punkt in der Datenbank finden. Dazu habe ich die Formel auf Googlemaps api:
(6371 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat))))
Natürlich mit, dass in PHP ich Radiant ersetzt mit deg2rad
.Der 37 Werte, -122 meine Werte eingegeben werden und lat, lng sind meine Werte in die Datenbank.
Unten ist mein Code. Das Problem ist, dass etwas nicht stimmt, aber ich verstehe nicht was. Der Wert der Entfernung ist natürlich falsch.
//values of latitude and longitute in input (Rome - eur, IT)
$center_lat = "41.8350";
$center_lng = "12.470";
//connection to database. it works
(..)
//to take each value in the database:
$query = "SELECT * FROM Dati";
$result = mysql_query($query);
while ($row = @mysql_fetch_assoc($result)){
$lat=$row['Lat']);
$lng=$row['Lng']);
$distance =(6371 * acos((cos(deg2rad($center_lat))) * (cos(deg2rad($lat))) * (cos(deg2rad($lng) - deg2rad($center_lng)))+ ((sin(deg2rad($center_lat))) * (sin(deg2rad($lat))))));
}
Für Werte zum Beispiel: $ lat = 41,9133741000 $ lng = 12,5203944000
Ich habe die Ausgabe von Abstand = "4826,9341106926"
folgen Ihre Klammern –