Ziehen von Routendaten aus Google Maps

8

Ich arbeite an einem Projekt und bin an einem Punkt, an dem ich nicht weiter gehen kann und ernsthafte Unterstützung brauche. Lass mich dir einen Hintergrund geben.

Ich arbeite an einem Service, der es den Benutzern erlauben wird, mit dem Fahrrad zu fahren Das gleiche Ziel von mehreren Startpunkten koordiniert ihre Fahrten.  Ein Teil des von uns entworfenen Workflows besteht darin, dass Benutzer Karten mithilfe von Google Maps-Dienst; Sie geben ein Startziel ein, das Google erstellt Eine Route, von der sie denkt, dass sie funktioniert, und dann können die Benutzer diese Route anpassen Ziehen von Punkten, um ihre speziellen Bedürfnisse zu erfüllen. Wir haben das Schnittstelle entwickelt und funktioniert gut bei:

Zypern

Wo ich eine unpassierbare Wand getroffen habe, ist, wie man den Benutzer bearbeitet Route aus Google Maps und gespeichert in der Datenbank für die Zukunft Referenz. Es scheint so, als hätten wir eine Methode, dies in unserer Javascript, in dieser Datei (Zeilen 344-352):

Zypern

%Vor%

Wir können die Routendaten als JSON-Datei ausgeben, sie stringieren und senden über AJAX zu einer PHP-Datei, wo wir sie verarbeiten und speichern wollen in MySQL. Das von Google Maps zurückgegebene JSON wird jedoch angezeigt missgebildet sein; PHP flippt aus, wenn es versucht, es zu entschlüsseln, und ich lief es durch einen Validator online, der seine Missgestalt bestätigt. Es ist An diesem Punkt sind wir völlig verwirrt und haben keine Ahnung wie vorwärts bewegen.

Gibt es eine Chance, dass irgendjemand dabei helfen könnte? Ich bin kurz davor, meinen Kopf gegen eine Wand zu schlagen. Jede Antwort wird sehr geschätzt. Danke für deine Zeit!

    
mcleodm3 01.03.2011, 20:45
quelle

3 Antworten

2

Ich habe eine ähnliche Sache gemacht und fand das wirklich schwierig, aber nach mehreren Stunden harter Arbeit habe ich es geschafft, alle Wegpunkte von der User-Dragged Route zu bekommen und sie in der Datenbank zu speichern.

Also, ich habe ein Feld, in dem alle Wegpunkte durch ";" getrennt sind.

Sie müssen das haben:

%Vor%

in Ihrer Initialisierungsfunktion

das ist Teil meines JS:

%Vor%

Ich habe das schnell von meinem JS genommen, also wenn es keinen Sinn ergibt, werde ich alle meine JS veröffentlichen und es Stück für Stück erklären.

Danke

    
code ninja 18.03.2011, 23:47
quelle
1

Was Sie stattdessen tun sollten, ist ein neues JSON in Ihrem JS zu erstellen, das nicht missgebildet ist, und dieses dann über AJAX an PHP zu übergeben. Das wird das Problem von missgebildetem JSON lösen

    
koool 28.04.2011 09:21
quelle
0

Ich stieß auf das gleiche Problem und habe es gerade gelöst.

Das Speichern der gesamten DirectionsResponse ist völlig unnötig. Die DirectionsService.route gibt eine Route basierend auf einem Hash zurück, der an sie übergeben wird. Also sollte der Hash gespeichert werden, um die Route zu speichern.
Zu der Zeit könnte dies nur eine andere Route werden, wenn ein besserer / schnellerer Weg verfügbar ist.

Sehen wir uns den Request-Hash an:

%Vor%

Wie bereits in Crag erwähnt, sind die Daten, die zurückgegeben werden, JSON-ähnlich und nicht JSON. Wenn wir diese Daten speichern, müssen wir den JSON-String erneut in einen JSON-ähnlichen Hash konvertieren. Die Wegpunkte, die mit JSON.stringify () in der Datenbank gespeichert werden, sehen folgendermaßen aus:

%Vor%

Wann immer Sie diese Daten an DirectionsService.route übergeben möchten, können Sie einfach eine Funktion aufrufen, die jeden Standort mit einem LatLng-Objekt überschreibt:

%Vor%     
Flov 26.06.2011 17:11
quelle

Tags und Links