1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Google Map: Itineraire / Durée / Distance

Discussion dans 'Windev' créé par PoloLeFou, Mar 14, 2018.

  1. PoloLeFou

    PoloLeFou Member

    Inscrit:
    Fev 6, 2018
    Messages:
    17
    J'aime reçus:
    27
    Voici le code que j'utilise pour gérer la tournée commerciale :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Code (Windev):
    PROCEDURE DistanceDuree(sAddresseDest est une chaîne)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (-25)

    sAdresseDepart est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Mettre ici votre adresse de depart")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps","origin", sAdresseDepart)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps","destination",sAddresseDest)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps","language", "fr-FR")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps","units", "metric")

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps","key","AIzaSyBidfv2gaEAxSETUmRPnZdKL8amsma_8Oo")

    cMyRequest is httpRequest
    cMyRequest..URL = "[URL]https://maps.googleapis.com/maps/api/directions/xml[/URL]"
    cMyRequest..Method = httpGet
    cMyResponse is httpResponse =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("GoogleMaps", cMyRequest)

    IF cMyResponse..StatusCode <> 200 THEN // Se não funcionou
        RESULT(Null)
    END

    //
    xmlGoogle is xmlDocument =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (cMyResponse..Content, fromString)
    IF NOT xmlGoogle.DirectionsResponse.status..Text ~= "OK" THEN
        RESULT(Null)
    END

    //Lendo nos unicos
    sGloVoceEnderecoLongo est une chaîne = xmlGoogle.DirectionsResponse.route.leg.start_address
    sGloDestinoEnderecoLongo est une chaîne = xmlGoogle.DirectionsResponse.route.leg.end_address
    rGloTempoCarro est une réel= xmlGoogle.DirectionsResponse.route.leg.duration.value
    sGloTempoDestino  est une chaîne = xmlGoogle.DirectionsResponse.route.leg.duration.text
    rGloDistanciaCarro  est une réel= xmlGoogle.DirectionsResponse.route.leg.distance.value
    sGloDistanciaDestino  est une chaîne= xmlGoogle.DirectionsResponse.route.leg.distance.text
    sGloPoligonalGoogle  est une chaîne= xmlGoogle.DirectionsResponse.route.overview_polyline.points
    rGloNortelatitude est une réel= xmlGoogle.DirectionsResponse.route.bounds.northeast.lat
    rGloNorteLongitute est une réel = xmlGoogle.DirectionsResponse.route.bounds.northeast.lng
    rGloSullatitude est une réel = xmlGoogle.DirectionsResponse.route.bounds.southwest.lat
    rGloSulLongitute est une réel= xmlGoogle.DirectionsResponse.route.bounds.southwest.lng

    //Loop nos nós do xml
    nContador is int = 1

    FOR EACH legNode OF xmlGoogle.DirectionsResponse.route.leg
        IF legNode..Name = "duration" THEN
            monTemps est un entier =legNode.value
            monTemps=monTemps/60
            TANTQUE Vrai
                SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (monTemps,1) = "0" ALORS
                    monTemps =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (monTemps,

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (monTemps)-1 )
                SINON
                    SORTIR
                FIN
            FIN
            SAI_Duree=monTemps
    //        LIB_TempsH=EntierVersHeure(monTemps)+" min.
         
        END
        IF legNode..Name = "distance" THEN
            maDistance est un entier =legNode.value
            maDistance=maDistance/1000
            SAI_Distance=maDistance
        END
    END

    J'utilise ensuite une autre procédure pour afficher le tout sur une carte

    Code (Windev):
    // Affiche un marqueur : lors du clic sur ce marqueur, une procédure est exécutée
    MaPosition est une géoPosition
    MaPosition..Latitude = SAI_Latitude
    MaPosition..Longitude = SAI_Longitude

    MonMarqueur est un Marqueur
    MonMarqueur..

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    = MaPosition
    MonMarqueur..Description= SAI_NomEntreprise

    //Gestion des marqueurs (carte Entreprise)
    MonMarqueur..Image="POI_"+COMBO_EXPRESS_statutbusiness[COMBO_EXPRESS_statutbusiness]+"_"+TABLE_REQ_ListeProspectParEntreprise.COL_EtatRelation+".png"
    CARTE_Entreprise..Zoom=18

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (CARTE_Entreprise, MonMarqueur)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (CARTE_Entreprise,MaPosition)

    //Gestion de l'itineraire (carte itineraire)
    sAddresseDest est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (SAI_Adresse+" "+SAI_Adresse2+" "+SAI_CodePostal+" "+SAI_Ville)
    sAdresseDepart est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ("Saisir ici votre adresse de dpart")
    sIdEXPRESS est une chaîne =

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (CARTE_initnéraire,[sAdresseDepart,sAddresseDest],itinéraireAutomobile)


    ONG_Emplacement..Visible=Vrai
    SAI_Distance..Visible=Vrai
    SAI_Duree..Visible=Vrai
     

    Fichiers attachés:

    #1 PoloLeFou, Mar 14, 2018
    Dernière édition par un modérateur: Fev 9, 2019
  2. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    707
    pas mal du tout ce code
    cela calcul l’itinéraire pour plusieurs adresses ?
     
    PoloLeFou apprécie ceci.
  3. PoloLeFou

    PoloLeFou Member

    Inscrit:
    Fev 6, 2018
    Messages:
    17
    J'aime reçus:
    27
    Pour organiser les tournée j'execute la procedure pour chaque itinéraire que j ajoute ensuite.
    Je l'ai couplé avec l agenda google. Du coup mes commerciaux savent quand ils doivent partir pour le prochain rdv.
     
    Gemini1961 apprécie ceci.
  4. PoloLeFou

    PoloLeFou Member

    Inscrit:
    Fev 6, 2018
    Messages:
    17
    J'aime reçus:
    27

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pas mal du tout ce code
    cela calcul l’itinéraire pour plusieurs adresses ?[/QUOTE
    Cliquez pour agrandir...
    Oui exactement!
     
    #4 PoloLeFou, Oct 2, 2018
    Dernière édition par un modérateur: Oct 2, 2018

Partager cette page

Chargement...