2010-04-22 7 views
8

J'utilise ces urls comme:Comment obtenir Google Maps Transport en commun Directions sur demande côté serveur HTTP

http://maps.google.com/?saddr=546%206th%20Avenue,%20New%20York,%20NY%2010011%20(Sixth%20Avenue,%20New%20York)&daddr=W%20103rd%20St,%20New%20York,%20NY%20&dirflg=r

Mais elle retourne pleine page html. Est-ce que quelqu'un sait comment obtenir de telles informations dans json ou xml ou n'importe quel format analysable?

J'ai besoin de transport en commun.

+0

Possible dupliquer de [Calculer les directions de conduite en utilisant PHP?] (Http://stackoverflow.com/questions/1800510/calculate-driving-directions-using-php) – miguev

Répondre

6

Vous venez d'ajouter &output=json à la fin de l'URL.

+0

Qu'en est-il de xml? quand je fais sortie = xml ou output = kml, le fichier sauvegardé est vide :( – c0d3Junk13

+0

xml/kml ne semble pas fonctionner Je suppose que seul json est disponible.Pas une option pour analyser json pour votre cas? –

+0

Ouais, je peut faire json aussi, merci :) – c0d3Junk13

4

Je voudrais étendre la réponse de Mathias un peu.

  1. Il n'y a pas d'API Google Transit officielle au momemnt. Les transits sont fournis par des agences, et la plupart des transits ne sont pas publics. Ainsi, Google n'est pas autorisé à les ouvrir en tant qu'API.

  2. Vous pouvez essayer de consommer les données "non officielles" en utilisant votre lien + "& output = json".

  3. Cependant, le résultat ne sera pas un JSON valide. Au lieu de cela, c'est quelque chose, qui peut être facilement converti en un objet JavaScript. (Les différences sont: il n'y a pas de guillemets autour des noms de propriétés, les chaînes ne sont pas correctement codées, etc.)

  4. Imaginez que vous ayez cet objet JavaScript. Cependant, il ne vous permettra pas d'obtenir facilement les détails de l'itinéraire structuré. Les propriétés de l'objet contiennent les coordonnées des points de route, mais pas de description. Le seul endroit où les descriptions peuvent être trouvées est la propriété 'panel', qui contient un morceau de texte HTML (vous pouvez trouver un lien vers l'exemple de HTML dans my blog post)

  5. Donc, vous devrez convertir ceci HTML en XML (X-HTML) et ensuite construire l'analyseur de ce XML pour obtenir les données essentielles d'un voyage.

Cela me semble un peu exagéré. En gardant à l'esprit que cette API "non officielle" peut changer à l'avenir, y compris de légères modifications dans la structure HTML "panel" qui tueront votre analyseur.

@MathiasLin, comment avez-vous surmonté cela?

+0

Répondant à votre question, même si un peu en retard: Nous avons utilisé cette approche avec output = xml (non json) et analysé le xml, qui a bien fonctionné. Si l'API 'nonofficielle' changeait dans le futur, nous devions simplement pousser une autre mise à jour de l'apk. –

+0

@MathiasLin, ai-je bien compris, que output = xml a l'habitude de fonctionner, mais ce n'est plus le cas? N'utilisez-vous plus Google API 'Transit'? – Mikhail

+0

N'a pas utilisé l'API de transit; le projet a été réalisé en 2010 mais il est discontinué, donc je ne sais pas si mon approche fonctionne encore, mais cela a fonctionné à l'époque en 2010. –

Questions connexes