Chcę użyć tej formuły z php. Mam bazę danych z pewnymi wartościami latitów i długości geograficznej.Formuła Haversine z php
Chcę znaleźć, z określoną wartością szerokości i długości geograficznej na wejściu, wszystkie odległości (w km) od tego punktu z każdym punktem w bazie danych. Aby to zrobić, użyłem wzoru na GoogleMaps API:
(6371 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat))))
Oczywiście używając że w php Wymieniłem radiany z wartościami deg2rad
.Powierzchnia 37 -122 są moje wartości wejściowych i szer LNG są moje wartości w baza danych.
Poniżej znajduje się mój kod. Problem polega na tym, że coś jest nie tak, ale nie rozumiem co. Wartość odległości jest oczywiście błędna.
//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))))));
}
Dla wartości na przykład: $ ac = +41,9133741000 $ LNG = 12,5203944000
mam wyjście odległości = "+4826,9341106926"
Sprawdzanie wsporniki –