grazie ancora, ho provato tutte le formule che mi hai dato + quelle che avevo io, ottengo con tutte + o meno lo stesso risultato.
l'unica che non mi va è l'ultima ed ho provato così:
Codice PHP:
$latitude1 = '41.756192';
$longitude1 = '87.967360';
$altitude1= '192';
$latitude2 = '41.758701';
$longitude2 = '87.973307';
$altitude2= '198';
function geo_dist($latitude1,$longitude1,$latitude2,$longitude2){
$params = func_get_args();
list($latitude1,$longitude1,$latitude2,$longitude2) = array_map("deg2rad",$params);
return acos(sin($latitude1)*sin($latitude2) + cos($latitude1)*cos($latitude2)*cos($longitude2-$longitude1))*6378.137;
}
$distanza= geo_dist($latitude1,$longitude1,$latitude2,$longitude2);
//passo distanza alla funzione che mi considera anche le altezze:
function geo_dist_alt($distanza,$altitude1,$altitude2){
$central_angle = deg2rad((180*$distanza)/(M_PI*6378.137)); //dedotto dalla formula arco= (angolo / 180 gradi) * pi * r
//e' una formula per calcolare l'arco in una circonferenza, ma il margine di errore viene abbassato se si usa il raggio calcolato in base alla latitudine
$chord = 2*6378.137*sin($central_angle/2);//teorema dei coseni
return hypot($chord,abs($altitude1-$altitude2));
}
$distanza2= geo_dist_alt($distanza,$altitude1,$altitude2);
echo $distanza2;
Le altre tornano tutte intorno ai 266 metri.
Le differenze grandi le ho solo usando quelle che mi calcolano anche le altezze (se le modifico) ed è giusto!
adesso mi chiedo però perchè se uplodo il mio tracciato su trailguru.com mi dice che il mio tracciato è lungo 3,49 km quando con le formule mie ottengo da 3,7 a 3,8 a seconda se calcolo anche l'altezza o meno, e la cosa che + mi fa rabbia è che il mio gps è d'accordo con trailguru!