PHP : conversion d’un GPX avec distance, dénivelé, d+ et d-

Comment convertir un tracé GPX en PHP en calculant la distance et les dénivelés afin de l’importer dans une base de données?

Cette question m’a été posée à plusieurs reprises ces derniers mois suite à un article que j’avais publié il y a quelques années  (utilisant du javascript). Je vous livre donc une réponse sous la forme d’une fonction PHP que vous pourrez trouver sur Github.

La fonction prend comme paramètre le GPX (en chaîne de caractère) et retourne un objet contenant la géométrie en WKT, la distance du tracé, le dénivelé ainsi que le dénivelé positif et négatif.

3 pensées sur “PHP : conversion d’un GPX avec distance, dénivelé, d+ et d-

  • 2 avril 2018 à 17 h 55 min
    Permalink

    bonsoir
    merci pour ces scripts … je les ai essayé tout fonctionne. Cependant il manque (pour mon utilisation bien sur) l’altitude maxi, l’altitude mini ainsi que le temps total et le temps de déplacement (je suppose que l’on pourrait même rajouter le temps de montée, le temps de descente et le temps sur plat) … Je suppose que c’est juste une histoire de fonctions à créer, mais mon niveau ne me le permet pas. Pourriez vous me mettre sur la piste …
    Merci
    Martin

    Répondre
    • 24 mai 2018 à 17 h 56 min
      Permalink

      Bonjour,
      Je réponds avec un peu de retard…
      J’ai ajouter le z_min et z_max
      https://github.com/DoFabien/GPX-track-to-wkt/commit/2f2fedbdcc8960a41a9214a90cd152727b9c024f

      En ce qui concerne les temps, je n’ai pas à ma disposition un GPX avec l’horodatage des points, si vous êtes intéressé, vous pouvez m’en envoyer un pour que je regarde.
      Le temps total ne sera pas un problème ( t du dernier point – t du premier)
      Pour le temps de déplacement, il faudra définir un seuil de vitesse affin de déterminer si la personne est à l’arrêt où non (en prenant en compte l’imprécision des GPS).
      Enfin, pour les temps par rapport aux montées et décentes, il faudra également définir un seuil de pente.

      Répondre
  • 3 avril 2018 à 19 h 13 min
    Permalink

    Merci pour ces infos, je vais voir comment transformer ce script en ruby, mais ça me semble une bonne base de départ.
    Par contre d’après ce que je comprends, il n’y a pas de lissage des données ( pas de phénomène d’escalier ?)

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *