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

Site PHP et JSON

Discussion dans 'Webdev' créé par sergeb, Mai 30, 2019.

  1. sergeb

    sergeb Active Member

    Inscrit:
    Mar 11, 2019
    Messages:
    122
    J'aime reçus:
    26
    Bonjour,

    je souhaiterai récupérer les coordonnées GPS d'une adresse.
    Pour cela, j'ai l'intention d'utiliser le site nominatim qui permet de retourner au forat JSON la longitude et latitude d'une adresse données.
    Par exemple, pour récupérer les coordonnées de la rue de lorrain à nantes, il suffit de lancer la requête :

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


    En retour, le site nous renvoie au format JSON les coordonnées GPS de cette manière :
    [{"place_id":90674120,"licence":"Data © OpenStreetMap contributors, ODbL 1.0.

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

    ","osm_type":"way","osm_id":59398075,"boundingbox":["48.6315967","48.6323841","7.7467901","7.7477887"],"lat":"48.6315967","lon":"7.7476568","display_name":"Rue de Lorraine, Souffelweyersheim, Strasbourg, Bas-Rhin, Grand Est, France métropolitaine, 67460, France","class":"highway","type":"residential","importance":0.4}]

    Sous windev ou windev mobile, je sais comment récupérer ces informations mais j'utilise webdev avec un site en PHP dynamique et lors de l'utilisation de l'ordre JSONVersVariant webdev m'indique "La fonction JSONVersVariant n'est pas disponible en PHP.

    Donc je suis bloqué. J'ai tenté d'utiliser httpRequête => même pb.

    Quelqu'un pourrait-il m'aider afin que de pouvoir récupérer des coordonnées GPS ?

    Merci de votre aide car je suis bloqué depuis plusieurs jours sur ce point je ne vois pas d'issue.
     
    Tags:
  2. PhantomX

    PhantomX Member

    Inscrit:
    Juil 11, 2018
    Messages:
    78
    J'aime reçus:
    61
    Il y a surement d'autre méthode, mais du JSON n'est qu'une chaine structurer.
    Avec des ExtraitChaine() tu devrais pouvoir te débrouiller facilement
     
  3. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    Salut

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

    , dans l'aide de http requête il est écrit :
    pour PHP La fonction HTTPRequête peut être utilisée uniquement si l'utilisation des sockets est autorisée sur le serveur PHP. Dans le cas d'une URL en HTTPS, OpenSSL doit être compilé avec le moteur PHP utilisé pour générer les pages.

    Donc si c'est ton serveur vérifie ta configuration apache et php

    voici un exemple de script pour vérifier que les sockets sont autorisés

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

     
  4. sergeb

    sergeb Active Member

    Inscrit:
    Mar 11, 2019
    Messages:
    122
    J'aime reçus:
    26

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

    : merci mais le pb n'est pas côté de mon hébergement mais côté webdev sous l'éditeur de code ou celui-ci m'indique que JSONVersVariant n'est pas disponible en PHP.

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

    : effectivement, en utilisant ExtraitChaine() je récupère bien les informations désirées. En revanche il y a un truc de bizzare :
    Sous le navigateur, si je tape directement l'URL

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

    j'ai le retour en moins d'1 seconde.
    En revanche dans le code webdev, j'ai le retour au bout de 27secondes ??????

    Voilà le code utilisé :

    sMyRequest est une chaîne
    MyResult est un Variant
    vMyData est un Variant
    sMyRequest=ChaîneVersUTF8("

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

    ")
    HTTPRequête(sMyRequest)
    MyResult=HTTPDonneRésultat()
    //vMyData=JSONVersVariant(MyResult)
    // on récupère la latitude
    toto est une chaîne
    toto=ExtraitChaîne(MyResult,7,[",", ",", ",", ",", ",", ",", ",", ","])
    // on récupère la longitude
    sTiti est une chaîne
    sTiti =ExtraitChaîne(MyResult,8,[",", ",", ",", ",", ",", ",", ",", ","])
    ZTR_test=toto+RC+sTiti
     
  5. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532

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

    , pour le temps de réponse je ne sais pas.
    par contre ton API accepte XML

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


    pourquoi ne pas l'utiliser ?
     
  6. sergeb

    sergeb Active Member

    Inscrit:
    Mar 11, 2019
    Messages:
    122
    J'aime reçus:
    26
    popoy, tu penses qu'utiliser XML ira plus vite ?
    Sinon j'ai testé un autre serveur :

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



    mais le résultat est iso, moins d'1 seconde via le navigateur et 27 secondes sous webdev.
    Donc cela ne semble pas venir du serveur distant mais plutôt de l'ordre HTTPREQUETE de webdev non ?
     
  7. sergeb

    sergeb Active Member

    Inscrit:
    Mar 11, 2019
    Messages:
    122
    J'aime reçus:
    26
    Popoy,
    je viens de tester en XML. Résultat iso : moins d'1 seconde via le navigateur mais 27 secondes sous webdev en utilisant le code indiqué plus haut.
    Il y aurait un autre moyen qu'utiliser HTTPREQUETE ?
     
  8. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532

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

    , je t'ai dis que je ne sais pas pour le temps de réponse.
    Cependant lance tu cette commande en code navigateur ou en serveur?
    Peut être qu'il y a une différence de temps de réponse entre ces 2 possibilité.
    Modif : oups , je vient de voir que httprequete n'existe pas en navigateur.
    Désolé.
     
    #8 popoy, Mai 31, 2019
    Dernière édition: Mai 31, 2019
  9. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,882
    J'aime reçus:
    1,532
    Sur cette page tu trouvera un équivalent de httprequete en socket

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


    A tester pour vérifier si cela améliore le temps de réponse.
     
  10. sergeb

    sergeb Active Member

    Inscrit:
    Mar 11, 2019
    Messages:
    122
    J'aime reçus:
    26
    @ Popoy, j'ai testé avec soket mais même problèm de lenteur.
    Du coup, je me suis dit que c'était peut-être un pb sur ma machine de développement. J'ai tout réinstallé (windows & webdev) et maintenant c'est nickel cela fonctionne parfaitement. Je ne sais pas ce qui bloquait et c'est frustrant.

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

    , merci pour cette info, je ne connaissait pas.

    Merci les gars. A charge de revanche.
    A+
     
  11. Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    572
    J'aime reçus:
    863

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



    As-tu essayer de créer une structure ( à l'image de ton JSON ) afin de recevoir ton JSON via la commande désérialise ?

    Bien cordialement
     

Partager cette page

Chargement...