Bonjour,
Je suis entrain de développer une petite application permettant de partager des itinéraires (vélo, marche à pieds, ...) que je vais afficher sur une carte avec des informations comme en autre les dénivelés positifs et négatifs.
Je vais récupérer les parcours grâce à des fichiers GPX.
Donc il me faut calculer à partir de ces fichiers les dénivelés.
Voici la fonction que j'ai développer pour cela :
Ma fonction m'a l'aire correct, pourtant pour un parcours (qui est en fait un circuit) qui fait normalement environ 600m de dénivelé positif, j'en trouve 6500m.
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 <?php public function altCumul() { // Tout les points du parcours $points = $this->road->getPolyline()->getPoints(); $less = 0; // dénivelés négatifs. $more = 0; // dénivelé positifs. for ($i = 0; $i < $points->count() - 1; ++$i) { // Altitude du point : n. $A = $points->get($i)->getElevation(); // Altitude du point : n + 1. $B = $points->get($i+1)->getElevation(); // Calcul du dénivelé entre les deux points. $drop = $B - $A; if ($drop >= 0) { // Dénivelé positif $more += $drop; } elseif ($drop < 0) { // Dénivelé négatif $less += $drop; } } return ['more' => $more, 'less' => $less]; } ?>
Est-ce que vous voyez une aberration dans cette fonction?
Ou est-ce que la méthode de calcul des dénivelés des GPS est différente ...?
Peut-être qu'ils ne prennent pas vraiment tout le points ...?
Voila les questions que je me pose, si vous pouvez m'éclairer?
Merci d'avance.
Partager