IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Matrice distance java


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut Matrice distance java
    Bonjour a tous

    voila j'ai une fonction qui me calcule une distance entre deux point (longitude , latitude)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       LatLng from = new LatLng(Latitude1,Longitude1);
            LatLng to = new LatLng(toLatitude,toLongitude);
     
     
            int distance = (int)SphericalUtil.computeDistanceBetween(from, to);
    a l'aide d'une matrice je veux calculer la distance entre un point lambda et plusieurs points et a la fin extraire la distance la plus courte
    (pas forcement avec une matrice , c'était mon idée )

    Quelqu’un peux m'aider ?
    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Si c'est la manière d'obtenir la distance la plus courte parmi une "liste" de distances, tu as, parmi les solutions possibles :

    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int distance = Integer.MAX_INTEGER; // tu initialises la distance au maximum possible de ton type
    boucle sur tous les points to (autre que lambda)
     
         int distanceLambda = (int)SphericalUtil.computeDistanceBetween(lambda, to);
     
         if ( distanceLambda < distance ) { // cette distance est donc plus petite que la plus petite distance déjà trouvée
              distance = distanceLambda
         }
     
     
    fin boucle
    // ici  distance est la plus petite des distance

    On peut remplacer le test et l'affectation par un appel à Math.min( ) :
    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int distance = Integer.MAX_INTEGER; // tu initialises la distance au maximum possible de ton type
    boucle sur tous les points to (autre que lambda)
     
         distance = Math.min( distance, (int)SphericalUtil.computeDistanceBetween(lambda, to));
     
    fin boucle
    // ici  distance est la plus petite des distance

    On peut également stocker les différentes distances calculées dans une liste, trier la liste par ordre croissant et prendre le premier de la liste.

    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    List<Integer> distances = new ArrayList<>();
     
    boucle sur tous les points to (autre que lambda)
     
         distances.add( (int)SphericalUtil.computeDistanceBetween(lambda, to));
     
    fin boucle
    Collections.sort( distances );
    if ( !distances.isEmpty() ) {
         int distance = distances.get(0);
    }

    Avec les streams Java 8, on aura encore plus concis (ou listeDesPoints est une collection de tes points, autre que lambda) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int distance=listeDesPoints.stream()
           .map( to->  (int)SphericalUtil.computeDistanceBetween(lambda, to))
           .min(Comparator.naturalOrder())
           .findFirst()
           .orElse( une valeur par défaut quand il n'y a aucun point );
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    Salut merci déjà pour ta réponse

    ce que je veux faire c'est de calculer la distance la plus proche et revenir au cordonnée de cette distance "longitude et latitude"

    autre chose , je fais comment pour calculer plusieurs distance ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par abbescr7 Voir le message
    ce que je veux faire c'est de calculer la distance la plus proche et revenir au cordonnée de cette distance "longitude et latitude"
    Donc, c'est bien la plus petite.

    Citation Envoyé par abbescr7 Voir le message
    autre chose , je fais comment pour calculer plusieurs distance ?
    Bah, comme j'ai indiqué. Si (int)SphericalUtil.computeDistanceBetween(from, to); calcule la distance entre from et to, il suffit de l'appeler plusieurs fois avec des from et to différents.
    Tes différents points sont sous quelle forme ? Un tableau, une List, autre ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    mes 10 point sont sous forme d'un tableau de deux colonnes Longitude et Latitude , donc 10 lignes

    plus un tableau de deux colonnes Longitude et Latitude et une seule linge indiquant ma position (from)

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Donc, tu boucles sur ton tableau de points :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     LatLng from = new LatLng(lambda[0],lambda[1]); // si ton tableau avec ta position s'appelle lambda
     
    for(double[] point : tableauDePoints) { // si ton tableau de point c'est double[][] tableauDePoint
            LatLng to = new LatLng(point[0],point[1]);
     
     
            int distanceLambdaTo = (int)SphericalUtil.computeDistanceBetween(from, to);
     
            /*...*/
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    voila ce que j'ai mis , sa me retourne rien !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     public void drawPath() {
     
            double [][] StationTram = new double [25][2];
     
            //Station Le Rocher
            StationTram [0][0] = 35.2236078 ;
            StationTram [0][1] = -0.6092131;
            //Station Quatres Horloges
            StationTram [1][0] =35.1907590 ;
            StationTram [1][1] =-0.6340827 ;
            //Station Petit Vichy
            StationTram [2][0] = 35.1914282;
            StationTram [2][1] = -0.6292730;
            //Station Cascade
            StationTram [3][0] = 35.2102234 ;
            StationTram [3][1] = -0.6292730 ;
            //Station Gare Routière Est
            StationTram [4][0] =35.2128532 ;
            StationTram [4][1] =-0.6139107 ;
            //Station Cité Aadl Ben Hamouda
            StationTram [5][0] = 35.2201147;
            StationTram [5][1] = -0.6239696;
            //Station Benhamouda
            StationTram [6][0] =35.2174852;
            StationTram [6][1] = -0.6230255;
            //Station Gare Routière Nord
            StationTram [7][0] = 35.2231999 ;
            StationTram [7][1] = -0.6296344;
            //Station Gare Ferroviaire
            StationTram [8][0] = 35.2246723;
            StationTram [8][1] =-0.6305786;
            //Station Campus
            StationTram [9][0] = 35.2206756;
            StationTram [9][1] =-0.6423803;
            //Station Faculté de Droit
            StationTram [10][0] = 35.2163282;
            StationTram [10][1] =-0.6330677;
            //Station Sidi Djilali
            StationTram [11][0] = 35.2161752;
            StationTram [11][1] =-0.6243836;
            //Station Wiaam
            StationTram [12][0] = 35.2102847;
            StationTram [12][1] =-0.6272590;
            //Station Azzouz
            StationTram [13][0] = 35.2031314;
            StationTram [13][1] =-0.6254565;
            //Station H.Boumedienne
            StationTram [14][0] = 35.2011677;
            StationTram [14][1] =-0.6191050;
            //Station Sbyka
            StationTram [15][0] = 35.1946448;
            StationTram [15][1] =-0.6125390;
            //Station Matérnité
            StationTram [16][0] = 35.1927510;
            StationTram [16][1] =-0.6149852;
            //Station Sidi Yacine
            StationTram [17][0] = 35.1926107;
            StationTram [17][1] =-0.6187617;
            //Station Jardin
            StationTram [18][0] = 35.1904012;
            StationTram [18][1] =-0.6422793;
            //Station Gare Routière Sud
            StationTram [19][0] = 35.1859469;
            StationTram [19][1] =-0.6495749;
            //Station Rectorat
            StationTram [20][0] = 35.1788616;
            StationTram [20][1] =-0.6600892;
            //Station Institut Science Médicale
            StationTram [21][0] = 35.1798438;
            StationTram [21][1] =-0.6449401;
            //Station BD.Amara
            StationTram [22][0] =35.1802647;
            StationTram [22][1] =-0.6352412;
            //Station Cité 20 AOUT
            StationTram [23][0] = 35.1816327;
            StationTram [23][1] = -0.6267440;
            ////Station Mexique
            StationTram [24][0] = 35.2172748 ;
            StationTram [24][1] = -0.6394620;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
     
            LatLng from = new LatLng(Latitude1,Longitude1);
            int distance = 999999999;
     
            for(double[] point : StationTram) {
                LatLng to = new LatLng(toLatitude,toLongitude);
     
                int distanceLambda = (int)SphericalUtil.computeDistanceBetween(from, to);
     
            if ( distanceLambda < distance ) { 
                distance = distanceLambda ;
            }
     
     
     
            }
     
     
     
            Toast.makeText(this,String.valueOf(distance+" Meters"),Toast.LENGTH_LONG).show();
     
     
        }

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for(double[] point : StationTram) {
                LatLng to = new LatLng(toLatitude,toLongitude);
    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for(double[] point : StationTram) {
                LatLng to = new LatLng(point[0],point[1]);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    c'est bon ça marche

    derniere chose svp , je fais comment pour extraire les cordonnées de distance la plus courte (Longitude , Latitude) ?

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut
    c'est bon j'ai trouvé merci beaucoup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      if ( distanceLambda < distance ) { // cette distance est donc plus petite que la plus petite distance déjà trouvée
                distance = distanceLambda ;
                Latitude1 = point[0];
                Longitude1 = point[1];
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Matrice distance et kmeans
    Par dz_robotix dans le forum R
    Réponses: 11
    Dernier message: 07/06/2010, 14h43
  2. remplir une matrice avec java ?
    Par safèsaf dans le forum Général Java
    Réponses: 7
    Dernier message: 09/12/2009, 16h06
  3. les matrices en java
    Par aroua dans le forum Général Java
    Réponses: 4
    Dernier message: 20/04/2008, 11h40
  4. matrice en java
    Par aroua dans le forum Général Java
    Réponses: 1
    Dernier message: 08/04/2008, 11h21
  5. [DEBUTANT] Matrice en java
    Par Mehdi_82 dans le forum Langage
    Réponses: 1
    Dernier message: 26/08/2006, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo