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

PHP & Base de données Discussion :

calcul de dénivelé [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut calcul de dénivelé
    bonjour,
    voilà le problème ... qui me prend la tête depuis un moment .
    J'ai une table avec les champs suivants: altitude|date|time que je récupère après parsage d'un fichier gpx issu de mon gps. Grâce au champ time, j'arrive a extraire l'heure de départ et d'arrivée pour calculer la durée du parcours .Ce que j'aimerai c'est obtenir grâce au champ altitude, le dénivelé positif et négatif du parcours. Quelles requêtes faire sur le champ ? et quel code php pour afficher le résultat après traitement de (des) la requête(s). Ce qui me bloque c'est que le parcours en général monte et descend sans cesse on ne peut donc pas faire max(altitude)- min(altitude) ... ça c'était de mon niveau .
    cordialement jacques

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    tu veux quoi le dénivelé entre chaque point le long du parcours?

    et si tu mettais un exemple de ta table...

    en php, y a des bibliothèque qui permettent de faire des graphiques.

    sinon, tu utilises simplement gd et tu crées ton graph sous forme d'image...

    si c'est l'écart point à point, tu as plus tôt fait de le faire en php... une simple boucle en se décalant pour faire les soustraction avec l'élément de la ligne précédente...
    coté sql, ça donnerait un truc lourd avec une jointure et un group by... beaucoup de traitements, qui s'alourdiront avec le nombre de points, la où une seule boucle le fais très bien
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut quelques explications supplémentaires
    voilà le début de ma table
    ID altitude date time
    1 761.982178 2011-08-27 08:48:30
    2 761.020752 2011-08-27 08:50:12
    3 761.501465 2011-08-27 08:50:34
    4 762.462646 2011-08-27 08:50:50
    5 763.424072 2011-08-27 08:51:06
    6 763.904541 2011-08-27 08:51:17
    7 764.866211 2011-08-27 08:51:26
    8 765.827637 2011-08-27 08:51:36
    9 766.788818 2011-08-27 08:51:45
    10 767.269531 2011-08-27 08:51:54
    11 767.750000 2011-08-27 08:52:03
    12 769.672852 2011-08-27 08:52:13
    chaque ID correspond à un point d'enregistrement du parcours ... et pour chaque parcours il y a au moins 500 points . Si je veux le dénivelé positif il faut ajouter l'écart d' altidude positif entre chaque points consécutifs d'une manière croissante et pour le dénivelé négatif l'écart d'altitude négatif entre chaque points consécutifs d'une manière décroissante.
    ... j'espère avoir été clair !!!

    cordialement jacques

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    alors je te montre un exemple d'horreur que tu dois faire (en une seule requête) pour faire le calcul de dénivelé entre chaque point:
    Code sql : 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
    drop table if exists altitude;
    create table altitude(
    	id		smallint not null auto_increment,
    	alt	mediumint,
    	primary key(id)
    )engine=myisam;
    insert into altitude(alt)values
    (10),(25),(40),(35),(55),(25);
     
    select a.alt,b.alt,b.id,b.alt-a.alt
    from altitude a
    left join(
    	select id,alt
    	from altitude
    ) b on a.id<b.id
    group by a.alt having b.id=min(b.id);
    en php, si on suppose que $data est le tableau contenant les données voulues (tes 500 points) sous forme de tableau associatif pour les colonnes... il suffit un simple:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $deniveles=array();
    for($i=1;$i<(sizeof($data)-1);$i++)
      $deniveles[]=$data[$i]['altitude']-$data[$i-1]['altitude'];
    plus efficace dans ce genre d'opération particulière...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Citation Envoyé par ericd69 Voir le message
    alors je te montre un exemple d'horreur que tu dois faire (en une seule requête) pour faire le calcul de dénivelé entre chaque point:
    Code sql : 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
    drop table if exists altitude;
    create table altitude(
    	id		smallint not null auto_increment,
    	alt	mediumint,
    	primary key(id)
    )engine=myisam;
    insert into altitude(alt)values
    (10),(25),(40),(35),(55),(25);
     
    select a.alt,b.alt,b.id,b.alt-a.alt
    from altitude a
    left join(
    	select id,alt
    	from altitude
    ) b on a.id<b.id
    group by a.alt having b.id=min(b.id);
    Je dois partir donc je n'ai pas pris le temps de bien comprendre ta requête, mais pourquoi n'est-il pas possible de faire un truc tout simple comme ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select 
     SUM(CASE WHEN a1.alt-a2.alt < 0  THEN a1.alt-a2.alt ELSE 0 END) AS negatif,
     SUM(CASE WHEN a1.alt-a2.alt > 0  THEN a1.alt-a2.alt ELSE 0 END) AS positif
     from altitude a1 join altitude a2 ON a1.id=a2.id+1

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    rien ne te garanti que des lignes ne seront pas supprimées... donc que tu n'auras pas des trous...



    si tu en es sur (cas ultra particulier) alors oui ta requête est la plus adaptée mais si on reste dans le cas général oubliera des lignes...



    après je ne suis pas sur de ce qu'il veut vraiment... le tableau des dénivelés c'est facile de faire divers traitements avec (courbe d'altitude relative, ou ce qu'il veut et que tu proposes dans ta requête)...

    par contre je ne suis pas sur que ça ai un sens de sommer les dénivelés positifs et négatifs pour en faire un graph... après à lui de voir...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    bonsoir,
    merci à tous les 2 de vous occuper de mon problème... en fait ce que je veux extraire de mon champ "altitude" c'est 2 nombres: un pour le denivelé positif du parcours et un pour le dénivelé négatif du parcours... exemple:
    denivelé positif: 1256m
    dénivelé négatif: 1278m
    et tout ça à partir ses 500 points et quelque du champ "altitude" ...

    cordialement jacques (j'espère avoir éclairci ma demande )

  8. #8
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    donc SI TU ES SUR que tu n'as pas de trous dans les id alors ce genre de code devrais faire le boulot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select sum(if((@a:=b.altitude-a.altitude)>0,@a,0)) as `positif`,sum(if(@a<0,@a,0)) as `négatif`
    from altitude a
    left join altitude b on b.id=a.id+1;
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  9. #9
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    bonjour,
    reste plus qu'à essayer ... mais je ne sais pas vraiment comment incorporer tes 3 lignes. Voilà mon code qui permet d'afficher ce que j'extrais de la base:
    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
    <?php 
    /*connexion base de données  ma_base*/
        $con = mysql_connect("host","name","pass");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
         mysql_select_db('ma_base') OR die('Erreur de sélection de la base');  
    /* choix des valeurs extraites des tables */
         $requete1 = mysql_query('SELECT max(altitude) FROM ma_table') OR die('Erreur de la requête MySQL');  
    	 $requete2 = mysql_query('SELECT min(altitude) FROM ma_table') OR die('Erreur de la requête MySQL');
    	 $requete3 = mysql_query('SELECT min(time) FROM ma_table') OR die('Erreur de la requête MySQL');  
    	 $requete4 = mysql_query('SELECT max(time) FROM ma_table') OR die('Erreur de la requête MySQL');    
         $requete5 = mysql_query('SELECT latitude FROM ma_table where ID=1') OR die('Erreur de la requête MySQL'); 
         $requete6 = mysql_query('SELECT longitude FROM ma_table where ID=1') OR die('Erreur de la requête MySQL');     
         mysql_close();  
     
         /* 
         * récupération des données 
          
         */  
     
         while($resultat1 = mysql_fetch_assoc($requete1))  
         {  
    	 $altmax= round($resultat1['max(altitude)'],0); /*sans les décimales)*/
         }  
     
    	 while($resultat2 = mysql_fetch_assoc($requete2))  
         {  
    	 $altmin= round($resultat2['min(altitude)'],0);	/*sans les décimales)*/
         } 
     
    	 while($resultat3 = mysql_fetch_assoc($requete3))  
         {  
    	 $heuredep= $resultat3['min(time)'];
         }   
     
    	 while($resultat4 = mysql_fetch_assoc($requete4))  
         {  
    	  $heurearriv= $resultat4['max(time)'];
    	  }
     
    	  while($resultat5 = mysql_fetch_assoc($requete5))  
         {  
    	  $latdep= $resultat5['latitude'];
         } 
    	 while($resultat6 = mysql_fetch_assoc($requete6))  
         {  
    	  $longdep= $resultat6['longitude'];
         }
    /* calcul durée en fonction dep/arrivée*/
    	 $d1 = new DateTime($heuredep); 
    $d2 = new DateTime($heurearriv); 
    $diff = $d1->diff($d2); 
    $diffa = $d1->diff($d2); 
    $diffm = $d1->diff($d2); 
    $diffh = $d1->diff($d2); 
    $diffi= $d1->diff($d2); 
    $diffs = $d1->diff($d2); 
    	/*affichage des données choisies */
    	 echo '<p>altitude maxi :'.$altmax.' m</p>';  
    	 echo '<p>altitude mini : '.$altmin.' m</p>';  
    	 echo '<p>heure départ : '.$heuredep.' h</p>';  
    	 echo '<p>heure arrivée : '.$heurearriv.' h</p>';
    	 echo"durée:";
         echo $nb_heur = $diffh->h." h "; 
         echo $nb_min = $diffi->i." min ... +/- 30min "; 
    	 echo '<p>lat depart :'.$latdep.'</p>';
    	 echo '<p>lng depart :'.$longdep.'</p>';
     
     
     
    ?>
    comment incorporer tes 3 lignes dans une requête7 ? et comment afficher les résultats avec un while( $resultat7= .....(ou apparaitrait $denivmoins et $denivplus que je pourrai afficher ensuite)
    cordialement jacques

  10. #10
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    déjà faudrait voir quel colonne te sert à déterminer parcours, la date?

    ensuite mettre des where qui limite sur ce critère (je l'appele condition_parcours que tu devras remplacer par l'expression qui va bien) dans tes requêtes.

    alors déjà tu peux faire tout en 2 requêtes:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select sum(if((@a:=b.altitude-a.altitude)>0,@a,0)) as `positif`,sum(if(@a<0,@a,0)) as `negatif`,
      max(a.altitude) as `maxi`,min(a.altitude) as `mini`,
      max(a.time) as `arrivee`,min(a.time) as `depart`
    from ma_table a
    left join ma_table b on b.id=a.id+1
    where condition_parcours
    qui te rapatrie toutes les infos générales et que tu récupères comme ça
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if($requete1)
    {
      $res=mysql_fetch_assoc($requete1);
      $altmax=$res['maxi'];
      $altmin=$res['mini'];
      $heuredep=$res['depart'];
      $heurearriv=$res['arrivee'];
      $devpos=$res['positif'];
      $devneg=$res['negatif'];
    }
    la 2eme qui te rapatrie le 1er point du parcours:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT latitude,longitude
    FROM ma_table
    where id=
      (select min(id)
      FROM ma_table
      where condition_parcours)
    que tu récupères avec:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($requete2)
    {
      $res=mysql_fetch_assoc($requete2);
      $latdep=$res['latitude'];
      $longdep=$res['longitude'];
    }
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  11. #11
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    étranger par ra rapport au sujet ; pour le calcule du dénivelé y a une formule non!! donc partant de la formule et c'est paramètres simulé le calcule non!!!
    donc le calcul entre plusieurs points ne passe pas pas par le max et le min mais entre le dernier points et l'avant dernier si j'ai bien compris.

  12. #12
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut bravo
    bonjour,
    merci ericd69 ... je viens d'essayer ton code , pour le denivelé positif et négatif, la latitude et longitude de départ ainsi que pour le temps du parcours c'est super ça marche nickel (et en plus ton code est bien plus court que le mien ). Petit bémol, l'altitude maximum et l'altitude minimun extraites sont fausses . Et je n'arrive pas à voir où ça coince ...
    et pour répondre a ta question ce qui me sert a récupérer le nom du parcours c'est le directement nom de la table j'ai donc juste supprimé le WHERE dans les requêtes
    cordialement jacques

  13. #13
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    fausse comment?

    rajoute un count(id) sur la première requête et regarde le nombre de points qu'il prends en compte en le récupérant dans une variable et en l'affichant

    ça a peut-être sauté des points...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  14. #14
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    re ...
    les valeurs extraites sont quasi égales pour le mini et le maxi et après avoir testé sur plusieurs parcours il n'y a pas de logique c'est soit presque égal au mini ou presque égal à la moyenne entre mini et maxi ...
    je vais essayer de compter les id
    cdlt

  15. #15
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    oui c'est ce que je disais y a un différentiel de lignes

    count(id) va te dire combien tu en lis
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  16. #16
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    re
    après avoir compté les lignes ... il s’avère qu'elles sont toutes prises en compte, il n'en manque pas une seule . Apparement ça ne vient pas de là???
    cdlt

  17. #17
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    regarde par toi même quelle est vraiment l'altitude minimum et/ou pour le parcours vu qu'avant tu avais pas de condition de restriction, ça prenait peut-être en compte d'autres lignes
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  18. #18
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    re
    j'ai fait des tests avec plusieurs parcours, il arrive que les altitudes mini et maxi soient bonnes ... je pense que les fichiers gpx originaux (direct de mon gps) doivent être en cause ... je vais creuser cette piste . Autre question et aprés j'en aurai fini, que faudrait il ajouter dans la requête2 pour qu'avec les latitudes et longitudes des points du parcours on obtienne la distance totale du parcours ... en kms ?
    merci encore pour la simplification des requêtes et l'ajout des dénivelés, je n'y serai jamais arrivé .
    cdlt

  19. #19
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    faut que tu fasse une requête à part qui liste toutes les coordonnées du parcours...

    après tu fais un if pour tester que ta requête n'as pas renvoyé false comme j'ai fait pour les autres...
    tu charges un tableau avec les 2 coordonnées(lat,lon) puis tu devras faire une boucle de calcul qui sommera l'application de la formule aux points 2 à 2 dans ta variable distance

    tu peux te baser sur ça pour la formule
    ça ne te calcul que la distance à vol d'oiseau (sans prendre en compte la différence d'altitude) ou ça avec l'altitude...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  20. #20
    Nouveau membre du Club Avatar de jac83
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    bonsoir,
    j'ai vu les liens que tu as mis, j'ai même trouvé des exemples sur le forum ... je devrais m'en sortir. Merci pour tout ericd69 tu as été super sympa et surtout très réactif . J'ai une autre question mais je vais créer une autre discussion ... et cliquer sur [resolu] pour celle là
    cdlt jacques

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

Discussions similaires

  1. [ANDROID] Comment calculer le dénivelé parcouru ?
    Par DenveRDev dans le forum Android
    Réponses: 7
    Dernier message: 31/05/2015, 04h25
  2. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  3. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45

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