11499 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous.

Je développe un petit script qui permet à un utilisateur de créer son itinéraire avec directionservice de google map. Il place deux point: un pour le départ, un pour l'arrivé et peut ensuite créer son propre itinéraire en déplacant la ligne de l'itinéraire en drag and drop.
(Une petite démo pour mieux comprendre https://developers.google.com/maps/documentation/javascript/examples/directions-draggable)

J'aimerai savoir comment il serait possible de stocker cette itinéraire dans ma BDD.
Si je me souviens bien, l'API retourne l'itinéraire sous forme d'un tableau d'étapes faisant chacune référence à une position géographique (latitude, longitude).

Tu peux très bien sauvegarder un itinéraire en conservant ces informations sous forme d'un tableau que tu serialize pour pouvoir le stocker en base de donnée. Lors de la récupération tu désérialize des données et tu peux alors reconstituer l'itinéraire.

D'après la doc c'est l'objet DirectionsRoute que tu vas devoir manipuler.
Merci ^^

J'arrive a récupérer un [object object] mais je n'arrive pas a avoir sa valeur...

Aurais tu une idée ?
Logique, c'est un objet. Si tu veux voir ce qu'il contient tu peux utiliser la méthode console.log() pour l'afficher dans la console de ton navigateur ou bien l'afficher sous forme de chaine json avec JSON.stringify().
Pas directement. Tu vas avoir un problème de typage car il n'est pas possible d'enregistrer un objet JavaScript directement dans une base de donnée.

De manière générale il faut pour cela convertir cet objet en chaine de caractère, c'est ce qu'on appelle "serializer".
En JavaScript tu peux le faire avec le format JSON et la méthode JSON.stringify().

En chemin inverse il faudra utiliser JSON.parse() pour reconverti les données en objet JavaScript. En revanche il s'agira d'un objet lambda et il faudra probablement que tu régénère l'objet Google Maps pour retrouver ces méthodes. Et là ça va peut-être pas être faisable avec l'API Google Maps...

Du coup à ta place je regarderai plutôt du côté de cette méthode de l'API Qui permet d'encoder des Polylines.
L'idée serait de récupérer le chemin polyline de ton itinéraire pour l'encoder via cette méthodes et d'enregistrer le résultat en BDD pour par la suite récupérer ce même chemin de manière à le récréer sur la carte.