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

WinDev Discussion :

Tracer un itinéraire sur une carte depuis un fichier gpx [WD25]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut Tracer un itinéraire sur une carte depuis un fichier gpx
    Bonjour,

    existe t'il un moyen de tracer un itinéraire sur une carte avec windev sans passer par google maps (pas envie de payer pour une utilisation personnelles)
    si j'ai bien compris, le champ carte ne fonctionne qu'avec l'API google.
    J'ai cherché et trouver une amorce de réponse sur le site de dépôt de PC Soft avec une appli qui permets d'afficher des balises sur une carte, mais il y a peut être d'autres pistes...
    Merci à ceux qui voudront bien m'aider.
    Je précise que je ne suis pas programmeur mais autodidacte.

    François

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 230
    Par défaut
    hello,
    j'ai répondu dans le forum PCSOFT même comme ici on peut joindre des fichiers , je remets ma réponse :

    Il faut utiliser un moteur de routage pour tracer le chemin entre les points. OSM en fournit un par défaut (pas toujours très fiable).

    Voici un code qui trace l'itinéraire à partir d'un fichier gpx dans windev en utilisant un contrôle dotnet webBrowser :
    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
    // J.P Novembre 2020
    gsAffItn est une chaîne = fChargeTexte("F:\Temp\visuMap.html")
    // on charge le fichier gpx
    monTracé est un xmlDocument <description="pcsoft.gpx"> = XMLOuvre("f:\temp\pcsoft.gpx.xml",depuisFichier)
    point est un xmlNoeud
    FirstCoord est une chaîne
    Coordonnées est une chaîne
    // on récupère le premier point 
    FirstCoord = monTracé.gpx.wpt[1]:lat + "," + monTracé.gpx.wpt[1]:lon
    // on récupère tous les points
    POUR TOUT wpt DE monTracé.gpx
    Coordonnées  += "L.latLng(" + wpt:lat  + "," + wpt:lon + ")," + CRLF
    FIN
    Coordonnées = Gauche(Coordonnées,Taille(Coordonnées) - 3)
    gsAffItn =  ChaîneConstruit(gsAffItn,FirstCoord,Coordonnées)
     
    WebBrowser1.DocumentText="0";
    WebBrowser1.Document.OpenNew(True)
    WebBrowser1.Document.Write(gsAffItn)
    WebBrowser1.Refresh()
    Le fichier gpx ( en pièce jointe pcsoft.gpx.xml ) est importé en description xml dans mon projet windev.

    Le fichier html est en pièce jointe (visuMap.html).

    voici le résultat :

    Nom : wd_gpx.jpg
Affichages : 1496
Taille : 236,7 Ko


    Ami calmant, J.P
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Super, merci encore pour ton aide,
    avec les pièces jointes je vais pouvoir tester ça.
    Je te tiens au courant de l'avancement de mon travail dès que possible...

    Bonne journée

    François

  4. #4
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Salut,

    je suis en train de continuer avec mon problème d'affichage de carte, et je me heurte à des erreurs de script en utilisant le code ci dessous (adapté de celui de JP pour mon appli)
    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
    //Code donnée par J.P sur le forum Developpez.com Novembre 2020
    gsAffItn	est une chaîne = fChargeTexte(ComplèteRep(gsCheminTemp) + "visuMap.html")
    // on charge le fichier gpx
    monTracé	est un xmlDocument = XMLOuvre(ComplèteRep(gsCheminTemp) + "CarteXml.xml",depuisFichier)
    point		est un xmlNoeud
    FirstCoord	est une chaîne
    Coordonnées	est une chaîne
    // on récupère le premier point 
    FirstCoord = monTracé.localisation.wpt[1]:lat + "," + monTracé.localisation.wpt[1]:lon
    // on récupère tous les points
    POUR TOUT wpt DE monTracé.gpx
    	Coordonnées  += "L.latLng(" + wpt:lat  + "," + wpt:lon + ")," + CRLF
    FIN
    Coordonnées = Gauche(Coordonnées,Taille(Coordonnées) - 3)
    gsAffItn = ChaîneConstruit(gsAffItn,FirstCoord,Coordonnées)
     
    FEN_Accueil.DOTNET_Carte.DocumentText="0";
    FEN_Accueil.DOTNET_Carte.Document.OpenNew(True)
    FEN_Accueil.DOTNET_Carte.Document.Write(gsAffItn)
    FEN_Accueil.DOTNET_Carte.Refresh()
    Pour l'affichage de la carte j'ai crée un champ .Net avec dans la description les paramètres ci-dessous
    Nom : CaptureDotNet.JPG
Affichages : 1369
Taille : 38,8 Ko
    merci de m'orienter vers la solution

    François

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 230
    Par défaut
    hello,
    Citation Envoyé par Frantzkell Voir le message
    je suis en train de continuer avec mon problème d'affichage de carte, et je me heurte à des erreurs de script en utilisant le code ci dessous (adapté de celui de JP pour mon appli)
    Quelles erreurs de scripts ? où ? dans le contrôle webbrowser ?
    Je ne vois pas dans ton nouveau code de trace de l'import de description xml.
    Ton fichier gpx est-il correct ?
    As-tu vérifié ce que valent FirstCoord et Coordonnées avant le ChaîneConstruit

    Ami calmant, J.P

  6. #6
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Hello J P merci de m'aider.

    Citation Envoyé par jurassic pork Voir le message
    hello,
    Je ne vois pas dans ton nouveau code de trace de l'import de description xml.
    Mais encore ? Dans l'explorateur du projet, dans les descriptions externes j'ai importé le fichier xml que j'utilise
    Ton fichier gpx est-il correct ?
    a priori oui (je le mets en pièce jointe), j'ai essayé avec le tien et c'est pareil
    As-tu vérifié ce que valent FirstCoord et Coordonnées avant le ChaîneConstruit
    FirstCoord = "48.67401103489,7.320105889812"
    Coordonnées = <EOT> (je pense que ça vient de là en partie)
    les erreurs apparaissent après le ChaîneConstruit:
    -Erreur dans le script de cette page Ligne 11 - caractère 1- erreur caractère incorrect - code 0
    -Erreur dans le script de cette page Ligne 417 - caractère 79 - Erreur Identificateur attendu - code 0
    -Erreur dans le script de cette page Ligne 0 - caractère 0 - Erreur Script error - code 0 - url https://unpkg.com/leaflet-routine-ma...ing-machine.js
    -Erreur dans le script de cette page Ligne 23 - caractère 1 - Erreur Carectère incorrect - code 0 - URL about:blank

    si ça peut donner des infos sur ce qui se passe...
    Merci d'avance

    François
    Fichiers attachés Fichiers attachés

  7. #7
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Bon j'avance, j'arrive à afficher la carte centrée sur la région du gpx, mais sans le tracé
    J'ai compris le problème du chargement de la description dans le code et trouvé l'erreur qui posait problème pour coordonnées . tes remarques m'ont bien orienté merci J P

    par contre j'ai toujours des erreurs différentes de tout à l'heure:
    --Erreur dans le script de cette page - Ligne: 2- caractère: 1- erreur: "L" est indéfini - code: 0
    --Erreur dans le script de cette page - Ligne: 417- caractère: 79- erreur: Identificateur attendu - code: 0
    --Erreur dans le script de cette page - Ligne: 0 - caractère: 0 - Erreur: Script error - code: 0 - url: https://unpkg.com/leaflet-routine-ma...ing-machine.js
    --Erreur dans le script de cette page - Ligne: 21- caractère: 1- erreur: Impossible d'obtenir la propriété "control" d'une référence null ou non définie - code: 0 URL: about:blank

    François

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 230
    Par défaut
    hello,
    chez moi avec ton fichier gpx cela fonctionne, l'erreur de script que tu as est une erreur de javascript. Cela me fait penser au problème de la version d'Internet Explorer utilisée dans le contrôle webBrowser abordé ici. Une version ancienne de IE ne saura pas forcément interpréter tous les nouveaux scripts javascript.
    Pour tester la version d'IE utilisée par son contrôle WebBrowser charger le fichier en pièce jointe dans le contrôle webBrowser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    testVersIE est une chaîne = fChargeTexte("F:\Temp\testVersionIE.html")
    WebBrowser1.DocumentText="0";
    WebBrowser1.Document.OpenNew(True)
    WebBrowser1.Document.Write(testVersIE)
    Si tu obtiens quelque chose comme :
    Navigateur : Netscape
    Version : 5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.9200
    Mode : 11
    c'est IE version 11 qui est utilisé (Mode : 11)
    Par contre si tu obtiens quelque chose comme :
    Navigateur : Microsoft Internet Explorer
    Version :4.0(compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0;
    Mode :5
    c'est IE version 7 qui est utilisé (MSIE 7.0)

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés

  9. #9
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Salut,

    Merci pour ta réponse, je regarde ça dès que possible et te tiens au courant.

    Bonne journée
    François

  10. #10
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Ok alors en mettant dans l'initialisation du projet le code trouvé ici http://unblogdetrop.com/blog/billet/...ersion-ie.html
    j'arrive à afficher les points de mon tracé, mais ils ne sont pas reliés (peut être parce que ce ne sont pas des routes mais des sentiers en foret ?
    Il ne me reste plus qu'a trouver comment relier ces points et remplacer les balises par des points (sauf pour la 1ere et la dernière)...
    J'avance, merci JP

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 230
    Par défaut
    hello,
    Citation Envoyé par Frantzkell Voir le message
    j'arrive à afficher les points de mon tracé, mais ils ne sont pas reliés (peut être parce que ce ne sont pas des routes mais des sentiers en foret ?
    Il ne me reste plus qu'a trouver comment relier ces points et remplacer les balises par des points (sauf pour la 1ere et la dernière)...
    ce n'est plus un calcul d'itinéraire qu'il te faut mais un tracé de poly-lignes, en ajoutant un marqueur pour le premier et le dernier point.
    En pièce jointe le fichier html qui prend en compte ces modifications.
    Voici le code windev pour utiliser ce nouveau fichier html :
    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
    // J.P Novembre 2020
    gsAffItn est une chaîne = fChargeTexte("F:\Temp\visuTrajet.html")
    // on charge le fichier gpx
    monTracé est un xmlDocument <description="CarteXml"> = XMLOuvre("f:\temp\CarteXml.xml",depuisFichier)
    point est un xmlNoeud
    FirstCoord,LastCoord sont des chaînes
    Coordonnées est une chaîne
    // on récupère tous les points
    x est un entier = 0
    POUR TOUT wpt DE monTracé.localisation
    // Coordonnées  += "L.latLng(" + wpt:lat  + "," + wpt:lon + ")," + CRLF
    Coordonnées  += "[" + wpt:lat  + "," + wpt:lon + "]," 
    x = x+1
    FIN
    // on récupère le premier point et le dernier point
    FirstCoord = monTracé.localisation.wpt[1]:lat + "," + monTracé.localisation.wpt[1]:lon
    LastCoord = monTracé.localisation.wpt[x]:lat + "," + monTracé.localisation.wpt[x]:lon
    Coordonnées = Gauche(Coordonnées,Taille(Coordonnées) - 1)
    gsAffItn =  ChaîneConstruit(gsAffItn,FirstCoord,Coordonnées,LastCoord)
    WebBrowser1.DocumentText="0";
    WebBrowser1.Document.OpenNew(True)
    WebBrowser1.Document.Write(gsAffItn)
    WebBrowser1.Refresh()
    et voici le résultat :

    Nom : WD_TrajetGPX.PNG
Affichages : 1329
Taille : 353,7 Ko

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés

  12. #12
    Membre averti Avatar de Frantzkell
    Homme Profil pro
    Tailleur de Pierre
    Inscrit en
    Septembre 2019
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Tailleur de Pierre

    Informations forums :
    Inscription : Septembre 2019
    Messages : 54
    Par défaut
    Salut JP,

    alors là, merci, merci, merci!!!!!
    tu me sauve de pas mal d'heures de recherches et de tests pour essayer de comprendre comment marche tout ça .

    Je vais pouvoir continuer sur la partie plus simple pour mois de gestion de la base de donnée de mes randonnées...

    Merci beaucoup d'avoir pris le temps de m'aider.

    François

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

Discussions similaires

  1. [Google Maps] Tracer un cercle sur une carte
    Par sp2308 dans le forum APIs Google
    Réponses: 1
    Dernier message: 12/09/2014, 16h28
  2. Réponses: 1
    Dernier message: 08/10/2012, 17h37
  3. Calcul est affichage d' itinéraire dans une carte google Maps sur Android
    Par developpCathy dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 09/05/2012, 00h27
  4. Dessiner un itinéraire sur une carte
    Par noussa_nouha dans le forum Android
    Réponses: 7
    Dernier message: 19/04/2012, 00h54
  5. tracer un itinéraire sur une MapView
    Par tkoprowski dans le forum Android
    Réponses: 2
    Dernier message: 21/09/2011, 09h31

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