Voglio usare questa formula con php. Ho un database con alcuni valori di latitudine e longitudine salvati.Formula Haversine con php
Voglio trovare, con un determinato valore di latitudine e longitudine in ingresso, tutte le distanze (in km) da questo punto con ogni punto nel database. Per fare questo, ho usato la formula su GoogleMaps api:
(6371 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat))))
Naturalmente usando che in php ho sostituito radianti con valori deg2rad
.Il 37, -122 sono miei valori di input e lat, lng sono miei valori il database.
Sotto c'è il mio codice. Il problema è che c'è qualcosa di sbagliato ma non capisco cosa. Il valore della distanza è ovviamente sbagliato.
//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))))));
}
Per i valori, ad esempio: $ lat = 41,9,133741 miliardi $ lng = 12,5203944000
ho l'uscita della distanza = "4826,9341,106926 millions"
Controllare le staffe –