2009-05-18 7 views
1

J'essaie de trouver la meilleure façon d'analyser la réponse d'une page Google Maps "normale" (c'est-à-dire n'utilisant pas l'API) dans mon code java.Réponse de Parse JSON de Google Maps page

Motif: Je souhaite soumettre une chaîne de requête demandant une liste (qu'il s'agisse d'hôtels, de restaurants, etc.), puis analyser le JSON qui revient. Je l'avais regardé en utilisant l'API Google Maps, mais il ne semble pas couvrir ce que je veux faire, comme ce type d'URL:

http://maps.google.de/maps/géo q = adresse & sortie = xml & oe = UTF8 & capteur = false & key = ...

est OK, mais ce n'est pas?

http://maps.google.de/maps/géo q = adresse + hôtels & output = xml & oe = UTF8 & capteur = false & key = ...

(en raison du terme "+ hôtel"). Donc, je pense que la seule option est d'utiliser une réponse google maps par exemple.

http://maps.google.de/maps?q=adresse + hôtels

et d'analyser les informations JSON qui est inclus à la fin. Quelqu'un at-il des conseils sur la meilleure façon d'accomplir cela?

+0

Attention, vous ne respectez pas les Conditions d'utilisation de Google Maps à ce sujet. Cela peut interdire ce que vous essayez de faire ... – ceejayoz

Répondre

2

Vous devez d'abord vous assurer que l'API ne prend pas en charge ce dont vous avez besoin. Vérification des docs et peut-être même atteindre un vrai Googler pourrait porter ses fruits. Cela me semble étrange que leur API ne supporte pas quelque chose d'aussi simple que d'ajouter un autre terme.

Si vous êtes obligé de le faire la « dure », il y a deux étapes principales:

1) Trouver et apprendre une bibliothèque Java pour l'analyse syntaxique JSON. Je peux recommander Jackson - rapide, robuste, et vient de sortir une version 1.0.0.

2) Apprenez votre code pour comprendre les spécifications que Google utilise dans sa réponse. C'est de loin la partie la plus difficile. Toutes mes excuses, mais je ne connais rien aux spécifications de Google dans ce domaine. Si vous pouvez trouver des documents officiels, c'est mieux. Ou trouver des documents non officiels publiés par quelqu'un d'autre qui a dû faire un travail similaire. Sinon, vous devrez peut-être «faire de l'ingénierie inverse».

2

Re. le google api docs: il semble-t-il que ce que vous essayez de faire va à l'encontre de l'intention de Google de rendre leur produit (= une carte) à votre disposition, le développeur, pour votre amélioration personnalisée ou peu importe). Il y a plein de choses sur le site de l'API de Google Maps décrivant cela. Mais analyser leurs données (en sortant de leur base de données) et les afficher indépendamment de leur produit semblerait être assez différent: la section 10.12 des termes couvre explicitement ceci:

... code.google.com/intl /de/apis/maps/terms.html

Cependant, il existe des applications (l'application iPhone "Around Me", par exemple) qui semblent faire exactement cela: il pourrait y avoir un arrangement spécial entre Google et Apple. à cet égard.EDIT: vous pouvez également envisager ce problème autrement et utiliser le flux de l'API Google Base, car il vous permet de créer des chaînes de requête spécifiant la ressource, la distance, l'emplacement, etc., c'est-à-dire qu'il renvoie les données dont vous avez besoin sans utiliser le Maps API (dont vous n'avez pas besoin de toute façon, compte tenu de votre description).