Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Wed 25 April 2012 16:03

Gamou22
Participant occasionnel
Date d'inscription: 25 Apr 2012
Messages: 12

Calcul de distances entres points

Voilà, mon problème est simple mais je n'ai pas d'idées pour le résoudre.

Pour un projet d'optimisation numérique (ici optimiser un trajet) j'ai besoin de calculer la distance entre une quarantaine de points (voir plus).

Il me faut la distance par exemple du point 1 au point 2, puis du point 1 au 3, etc et cela pour tous les points ( en gros avoir un tableau avec les distances entre chaque point)

Evidemment je peux le faire 1600 fois mais ça risque d'être long.

Alors si vous avez des idées, sauvez moi.

Les coordonnées de mes points sont en latitude et longitude (données obtenues grâce à google earth à partir d'adresses postales).

Merci d'avance pour vos réponses

Cordialement,

Gaëtan

Hors ligne

 

#2 Wed 25 April 2012 16:34

AlbanN
Membre
Lieu: Chessy
Date d'inscription: 23 Apr 2012
Messages: 92

Re: Calcul de distances entres points

Bienvenu.

Tu bosses sous quel logiciel STP ?

Dernière modification par AlbanN (Wed 25 April 2012 16:48)

Hors ligne

 

#3 Wed 25 April 2012 17:47

Gamou22
Participant occasionnel
Date d'inscription: 25 Apr 2012
Messages: 12

Re: Calcul de distances entres points

ça s'appelle ampl c'est un logiciel d'optimisation numérique et pas du tout quelque chose qui permette de calculer des distances entre des points.

En fait je fait un code dedans avec en paramètre des données sous cette forme :

http://imageshack.us/f/11/paramampl.jpg

Avec en 1,2 la distance qui sépare mes points 1 et 2, en 1,3, celle qui sépare mes points 1 et 3. Mes points sont placés sur google earth.

Je cherche un truc qui me permette de placer mes 40 points et qui me donne toutes les distances directement sans avoir à les mesurer une à une.

J'ai essayé avec plusieurs trucs, comme googlemap par exemple mais ça permet à chaque fois de trouver la distance à vol d'oiseau entre 2 points... et pas entre 40 points !


Merci pour la réponse en tout cas, j'espère avoir été clair sur mon problème je sais pas trop comment le formuler autrement.

Dernière modification par Gamou22 (Wed 25 April 2012 17:51)

Hors ligne

 

#4 Wed 25 April 2012 17:55

Renaud
Membre
Lieu: Ploemeur (56)
Date d'inscription: 9 Mar 2006
Messages: 2315

Re: Calcul de distances entres points

Bonjour,

Tu peux produire ton fichier avec un tableur (Excel, OOo, etc) :

1- En colonne 1 à 3 et à partir de la ligne 4, la liste de tes points avec leur X et leur Y
2- Copie cette plage, et colle la avec transposition en ligne 1 à 3 à partir de la colonne 4
(Tu obtiens ainsi ton tableau non rempli, avec les coordonnées en colonne 2-3 et ligne 2-3.)

3- pour la case C(i)L(j), l'équation est "Racine( (C(2)L(j)-C(i)L(2))² + (C(3)L(j)-C(i)L(3))² )"

4- Copie-colle les valeurs et supprime les lignes et colonnes inutiles


J'espère que mon explication est compréhensible.


Renaud Mouche

Hors ligne

 

#5 Wed 25 April 2012 18:00

Gamou22
Participant occasionnel
Date d'inscription: 25 Apr 2012
Messages: 12

Re: Calcul de distances entres points

J'y avais pensé ! mais le problème c'est que j'ai les points en latitude et longitude (avec google earth) et connais pas trop comment ça marche pour calculer la distance entre 2 points.

Je vais mieux y réfléchir en tout cas merci beaucoup pour cette réponse

Hors ligne

 

#6 Thu 26 April 2012 08:37

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

Re: Calcul de distances entres points

Sinon, php ou tout autre langage de programmation est capable de faire cela. En php, j'utilise la fonction suivante, qui prend en compte le Z (l'altitude). Une petite boucle, des données dans une base et le tour est joué. Pour récupérer le Z, il me semble qu'il y a des webservices qui peuvent faire cela (google de mémoire le propose).

En espérant que cette fonction vous soit utile :

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;
    }

Dernière modification par heretik25 (Thu 26 April 2012 08:47)


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

Hors ligne

 

Pied de page des forums

Powered by FluxBB