Sebbrunie1 Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 Bonjour, autant l'annoncer tout de suite "je suis nul", à quoi sert de le cacher, ca va se voir !!! j'essayer à partir de mapquest récuperer la distance d'un parcourt défini: l'adresse de l'api est: https://www.mapquestapi.com/directions/v2/route?key=pEKtQ21opd7YxXXXXXXXXX&from=48.8469154,2.4396014&to=48.84,2.4430214&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false j'ai mis dans mon VD: HC2 = Net.FHttp("www.mapquestapi.com",80); local response, status, errorCode = HC2:GET("/directions/v2/route?key=pEKtQ21opd7YxBQW&from=48.84691,2.439&to=48.8,2.443021499&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false") jsonTable = json.decode(response); fibaro:debug("distance : " .. jsonTable.distance .. " m - "); fibaro:debug(jsonTable.time .. " : min : " .. jsonTable.time); Distance = fibaro:getGlobalValue("jsonTable.distance").. " m" local Distance = (" distance : " ..jsonTable.distance .."m" ..jsonTable.distance); fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", Distance); fibaro:log(Distance) ca me remonte rien même j'ai comme message d'erreur: [ERROR] 10:42:58: line 7: attempt to concatenate field 'distance' (a nil value) Merci de votre aide Sébastien
pepite Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 Bonjour, Essaie juste cela : HC2 = Net.FHttp("www.mapquestapi.com",80); local response, status, errorCode = HC2:GET("/directions/v2/route?key=pEKtQ21opd7YxBQW&from=48.84691,2.439&to=48.8,2.443021499&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false") if tonumber(status) == 200 then local jsonTable = json.decode(response) fibaro:debug("distance : " .. jsonTable.distance .. " m - ") fibaro:debug(jsonTable.time .. " : min : " .. jsonTable.time) else fibaro:debug("Status:" .. status .. " err: " .. errorCode ) end Quelle est ta ligne 7 ? A mon avis tu confonds avec tes getGlobalValue et setglobal et tes declarations de variable
Sebbrunie1 Posté(e) le 9 mars 2017 Auteur Signaler Posté(e) le 9 mars 2017 Bonjour, merci. J'ai le même message d'erreur. Par contre quand je mets l'url sur internet j'ai come retour: et comme j'ai "distance" je pensais que c'était ca que je devait mettre pour récupérer cette variable {"route":{"hasTollRoad":false,"hasBridge":false,"computedWaypoints":[],"fuelUsed":0.01,"hasTunnel":false,"hasUnpaved":false,"hasHighway":false,"realTime":-1,"boundingBox":{"ul":{"lng":2.43998,"lat":48.847942},"lr":{"lng":2.444597,"lat":48.846908}},"distance":0.275,"time":46............ Ma ligne 7 est fibaro:debug("distance : " .. jsonTable.distance .. " m - ");
pepite Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 Teste juste le code qud je te propose sans rajouter le tien
Sebbrunie1 Posté(e) le 9 mars 2017 Auteur Signaler Posté(e) le 9 mars 2017 C'est ce que j'ai fait.... et j'ai [ERROR] 10:42:58: line 6: attempt to concatenate field 'distance' (a nil value) avec le code: HC2 = Net.FHttp("www.mapquestapi.com",80); local response, status, errorCode = HC2:GET("/directions/v2/route?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&from=48.846915499999994,2.4396014999999998&to=48.847921,2.4430214999999995&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false") if tonumber(status) == 200 then local jsonTable = json.decode(response) fibaro:debug("distance : " .. jsonTable.distance .. " m - ") fibaro:debug(jsonTable.time .. " : min : " .. jsonTable.time) else fibaro:debug("Status:" .. status .. " err: " .. errorCode ) end
pepite Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 ah ok, pardon. Mets en forme ton json pour etre sur en ajoutant dans ton navigateur un module type json viewer, ca rend "plus" lisible le json en le formatant. Donc tu te connectes bien à l'API, pas de souci de ce côté là. C'est peut-etre : jsonTable.route.distance
Sebbrunie1 Posté(e) le 9 mars 2017 Auteur Signaler Posté(e) le 9 mars 2017 Voila la mise en forme. Je n'ai pas tout mis..... { route: { hasTollRoad: false, hasBridge: false, computedWaypoints: [ ], fuelUsed: 0, hasTunnel: false, hasUnpaved: false, hasHighway: false, realTime: -1, boundingBox: { ul: { lng: 2.4396, lat: 48.847942 }, lr: { lng: 2.44302, lat: 48.846908 } }, distance: 0.221, LE "jsonTable.route.distance je le met ou sur mon url? Merci encore
pepite Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 T'as une distance de 0,2 m ? ,-) Essaie comme ceci, sans certitude ;-) HC2 = Net.FHttp("www.mapquestapi.com",80); local response, status, errorCode = HC2:GET("/directions/v2/route?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&from=48.846915499999994,2.4396014999999998&to=48.847921,2.4430214999999995&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false") if tonumber(status) == 200 then local jsonTable = json.decode(response) fibaro:debug("Connexion OK") fibaro:debug("Distance : " .. jsonTable.route.distance) else fibaro:debug("Status:" .. status .. " err: " .. errorCode ) end
Sebbrunie1 Posté(e) le 9 mars 2017 Auteur Signaler Posté(e) le 9 mars 2017 super, c'est ca..... j'ai un retour... Qu'as tu fait......? Il me reste plus qu'a avoir ma current location (sans passé par HC2 pour avoir un plan B.....) Merci beaucoup
pepite Posté(e) le 9 mars 2017 Signaler Posté(e) le 9 mars 2017 (modifié) Moi rien, c'est toi en mettant en forme le json ;-) tu peux voir : { -- debut du json route : -- 1ere entree du json (cest peut-etre pas le bon terme technique..) { -- debut des sous-entrees derriere "route" .... ... distance : time... Donc pour recuperer la valeur de distance : tu as ecris : local jsonTable = json.decode(response) pour descendre dans "l'arborescence" du json : jsonTable.route.distance jsonTable.route.time... Essaie cela alors HC2 = Net.FHttp("www.mapquestapi.com",80); local response, status, errorCode = HC2:GET("/directions/v2/route?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&from=48.846915499999994,2.4396014999999998&to=48.847921,2.4430214999999995&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false") if tonumber(status) == 200 then local jsonTable = json.decode(response) fibaro:debug("Connexion OK") fibaro:debug("Distance : " .. jsonTable.route.distance.. " m") fibaro:debug("Temps : " .. jsonTable.route.time.. " mins ") else fibaro:debug("Status:" .. status .. " err: " .. errorCode ) end Modifié le 9 mars 2017 par pepite
Sebbrunie1 Posté(e) le 9 mars 2017 Auteur Signaler Posté(e) le 9 mars 2017 C'est génial, merci beaucoup. Je cherche maintenant sur le net pour des solutions de récupérer ma current location. Très bonne fin de journée Seb 1
Sebbrunie1 Posté(e) le 17 mars 2017 Auteur Signaler Posté(e) le 17 mars 2017 Re bonjour, grrr je tombe sur un noeud.... je n'arrive pas à retrouver la street en json decode le json: { "info": { "statuscode": 0, "copyright": { "text": "© 2017 MapQuest, Inc.", "imageUrl": "http://api.mqcdn.com/res/mqlogo.gif", "imageAltText": "© 2017 MapQuest, Inc." }, "messages": [ ] }, "options": { "maxResults": 1, "thumbMaps": true, "ignoreLatLngInput": false }, "results": [ { "providedLocation": { "latLng": { "lat": 48.847633, "lng": 2.452675 } }, "locations": [ { "street": "Rue de l'Industrie", "adminArea6": "", "adminArea6Type": "Neighborhood", "adminArea5": "Vincennes", "adminArea5Type": "City", "adminArea4": "", et je mets fibaro:debug(jsonTable3.results.locations.street) et ca ne marche pas (message d'erreur [ERROR] 15:25:37: line 11: attempt to index field 'locations' (a nil value) Merci Sébastien
pepite Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 (modifié) Partage aussi ton code stp. Est ce que tu as qqch dans jsonTable3.results.providedLocation.latLng.lat Modifié le 17 mars 2017 par pepite
Sebbrunie1 Posté(e) le 17 mars 2017 Auteur Signaler Posté(e) le 17 mars 2017 Non je n'ai rien avec la ligne que tu me donne. Voici le code: HC2 = Net.FHttp("www.mapquestapi.com",80); local EmplacementDEPART = "48.847633,2.452675" local EmplacementARRIVEE = "48.8103843,2.343642100000011" local URL3 = "/geocoding/v1/reverse?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&location=" ..EmplacementDEPART.."&includeRoadMetadata=true&includeNearestIntersection=true" fibaro:debug(URL3); local response3, status3, errorCode3 = HC2:GET(URL3) if tonumber(status3) == 200 then local jsonTable3 = json.decode(response3) fibaro:debug("Connexion OK") fibaro:debug("Street Depart : " .. jsonTable3.results.providedLocation.latLng.lat) fibaro:debug("Ville Depart : " .. jsonTable3.results.locations.adminArea5) fibaro:debug("Pays Depart : " .. jsonTable3.results.locations.adminArea1) fibaro:debug("Departement Depart : " .. jsonTable3.results.locations.adminArea3) fibaro:debug("Code Postal Depart : " .. jsonTable3.results.locations.postalCode) else fibaro:debug("Status adresse:" .. status3 .. " err: " .. errorCode3 ) end
Sebbrunie1 Posté(e) le 17 mars 2017 Auteur Signaler Posté(e) le 17 mars 2017 et voici le log: [DEBUG] 16:45:35: /geocoding/v1/reverse?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&location=48.847633,2.452675&includeRoadMetadata=true&includeNearestIntersection=true [DEBUG] 16:45:35: Connexion OK [ERROR] 16:45:35: line 10: attempt to index field 'providedLocation' (a nil value)
pepite Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 Peut etre avec ke json complet ? Route a disparu ?
Sebbrunie1 Posté(e) le 17 mars 2017 Auteur Signaler Posté(e) le 17 mars 2017 c'est pas le même lien... L'a c'est pour décoder latitude et longitude en adresse.... le json complet: { "info": { "statuscode": 0, "copyright": { "text": "© 2017 MapQuest, Inc.", "imageUrl": "http://api.mqcdn.com/res/mqlogo.gif", "imageAltText": "© 2017 MapQuest, Inc." }, "messages": [ ] }, "options": { "maxResults": 1, "thumbMaps": true, "ignoreLatLngInput": false }, "results": [ { "providedLocation": { "latLng": { "lat": 48.847633, "lng": 2.452675 } }, "locations": [ { "street": "Rue de l'Industrie", "adminArea6": "", "adminArea6Type": "Neighborhood", "adminArea5": "Vincennes", "adminArea5Type": "City", "adminArea4": "", "adminArea4Type": "County", "adminArea3": "Île-de-France", "adminArea3Type": "State", "adminArea1": "FR", "adminArea1Type": "Country", "postalCode": "94300", "geocodeQualityCode": "B1AAA", "geocodeQuality": "STREET", "dragPoint": false, "sideOfStreet": "N", "linkId": "0", "unknownInput": "", "type": "s", "latLng": { "lat": 48.847634, "lng": 2.452638 }, "displayLatLng": { "lat": 48.847634, "lng": 2.452638 }, "mapUrl": "http://www.mapquestapi.com/staticmap/v4/getmap?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&type=map&size=225,160&pois=purple-1,48.847634,2.452638,0,0,|¢er=48.847634,2.452638&zoom=15&rand=-1830217784" } ] } ] }
pepite Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 je n'avais pas vu sur mon tel, mais ça vient des [crochets] après results ;-) et ben là, je ne sais pas encore comment faire pour passer la marche ;-) , je cherche
pepite Posté(e) le 17 mars 2017 Signaler Posté(e) le 17 mars 2017 Bonsoir @Sebbrunie1, J'ai reconnecté mes neurones ;-) Pour la syntaxe : - [] : tableau - {} : objets - " " : elements. En fait pour rentrer dans un tableau, il faut les crochets dans lequel on et le numéro du tableau A tester bien sur, mais c'est ok chez moi ;-) HC2 = Net.FHttp("www.mapquestapi.com",80); local EmplacementDEPART = "48.847633,2.452675" local EmplacementARRIVEE = "48.8103843,2.343642100000011" local URL3 = "/geocoding/v1/reverse?key=pEKtQ21opd7YxBQWCsTCMVCehFzJmo4N&location=" ..EmplacementDEPART.."&includeRoadMetadata=true&includeNearestIntersection=true" fibaro:debug(URL3); local response3, status3, errorCode3 = HC2:GET(URL3) if tonumber(status3) == 200 then local jsonTable3 = json.decode(response3) fibaro:debug("Connexion OK") fibaro:debug("Street Depart : " .. jsonTable3.results[1].locations[1].street) fibaro:debug("Ville Depart : " .. jsonTable3.results[1].locations[1].adminArea5) fibaro:debug("Pays Depart : " .. jsonTable3.results[1].locations[1].adminArea1) fibaro:debug("Departement Depart : " .. jsonTable3.results[1].locations[1].adminArea3) fibaro:debug("Code Postal Depart : " .. jsonTable3.results[1].locations[1].postalCode) else fibaro:debug("Status adresse:" .. status3 .. " err: " .. errorCode3 ) end
Sebbrunie1 Posté(e) le 20 mars 2017 Auteur Signaler Posté(e) le 20 mars 2017 Hello, impeccable ca marche. C'est super sympa de m'avoir aidé. Par contre je ne comprends pas pourquoi je n'ai eu besoin de le faire pour l'autre json? C'est parce que ce que le tableau était a une seule entrée? Merci en tout cas
pepite Posté(e) le 20 mars 2017 Signaler Posté(e) le 20 mars 2017 Super de rien. Oui si tu regardes bien le precedent json, il ne contenant pas de tableau [], mais bien que des objets {}
Sebbrunie1 Posté(e) le 20 mars 2017 Auteur Signaler Posté(e) le 20 mars 2017 en effet, bon et bien je monte en compétence merci et bonne soirée Seb
Messages recommandés