banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Fri 11 October 2013 11:03

wallaye
Juste Inscrit !
Date d'inscription: 27 Aug 2013
Messages: 4

calcul distance approxiomatif pythagore wgs84

hello

je veux un implementer un calcul de distance sommaire sur des coord wgs84

quand je fais ça avec pythagore :
dist= sqrt((mylat-lat)*(mylat-lat)+(mylon-lon)*(mylon-lon))
j'ai l'impression que j'ai une distance aprroximative (style 0.002 = 200m)

je crois que mon 0.002 n'aura pas la meme valeur selon que je sois à lille ou a perpignan, mais que l'amplitude est faible
si mon 0.002 = 150 dans un cas et 250 dans l'autre, ça me va, c'est juste pour lever une alerte style "tu es arrivé sur la zone"

je l'ai testé en tout cas et ça a l'air de marcher

Merci de me dire si je me trompe vraiment

Hors ligne

 

#2 Fri 11 October 2013 11:55

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1022
Site web

Re: calcul distance approxiomatif pythagore wgs84

Bonjour,

Voici la fonction php que j'utilise pour calculer une distance en 3D

Code:

    function distance($lat1, $lon1, $lat2, $lon2, $alt1, $alt2) 
    {
        //rayon de la terre
        $r = 6366;
        $lat1 = deg2rad($lat1);
        $lat2 = deg2rad($lat2);
        $lon1 = deg2rad($lon1);
        $lon2 = deg2rad($lon2);
        
        //recuperation altitude en km
        $alt1 = $alt1/1000;
        $alt2 = $alt2/1000;
        
        //calcul précis
        $dp= 2 * asin(sqrt(pow ( sin(($lat1-$lat2)/2) , 2) + cos($lat1)*cos($lat2)* pow( sin(($lon1-$lon2)/2) , 2)));
                    
        //sortie en km
        $d = $dp * $r;
        
        //Pythagore a dit que :
         $h = sqrt(pow($d,2)+pow($alt2-$alt1,2));
      
        return $h;
    }

Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#3 Fri 11 October 2013 15:36

mbounouar
Participant assidu
Date d'inscription: 2 Nov 2006
Messages: 246

Re: calcul distance approxiomatif pythagore wgs84

Salut Wallaye

Je crois quand vous travaillez en 2D et si la configuration du terrain est accidentéé (variation dans le Z) les projections sur un plan varient beaucoup , selon le terrain plat ou montagneux

Donc essaye la sqrt(delta X puissance 2 + deltaY puissance 2 + delta Z puissance 2)
J,espère que je suis claire

salutations

Dernière modification par mbounouar (Fri 11 October 2013 15:39)

Hors ligne

 

#4 Sat 12 October 2013 16:55

eGeoPos
Juste Inscrit !
Lieu: Pau
Date d'inscription: 6 Oct 2011
Messages: 4
Site web

Re: calcul distance approxiomatif pythagore wgs84

Pour un calcul approximatif et très simple (sans dénivelée bien sur)
dist= sqrt((mylat-lat)*(mylat-lat)+(mylon-lon)*(mylon-lon)*cos(lat)*cos(lat))

Hors ligne

 

#5 Sat 12 October 2013 17:05

eGeoPos
Juste Inscrit !
Lieu: Pau
Date d'inscription: 6 Oct 2011
Messages: 4
Site web

Re: calcul distance approxiomatif pythagore wgs84

Évidement il faut ensuite ramener la "distance" obtenue en degré vers une distance en mètres par un degré égale 10 000 000 / 90 mètres. Tout ça approximatif mais suffisant pour des petites distances. On peut calculer le rayon moyen sur ellipsoïde en fonction de ses dimensions et de la latitude, mais c'est une autre histoire.

Hors ligne

 

Pied de page des forums

Powered by FluxBB