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
}
$distanzageo_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)); 
}
$distanza2geo_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!