Разбор ответа JSON со страницы Google Maps - PullRequest
1 голос
/ 18 мая 2009

Я пытаюсь найти лучший способ парсинга ответа со "нормальной" (т.е. не использующей API) страницы Карт Google в моем коде java.

Причина: я хочу отправить строку запроса, запрашивающую список (будь то отели, рестораны и т. Д.), А затем проанализировать возвращаемый файл JSON. Я рассмотрел использование API Карт Google, но, похоже, он не охватывает то, что я хочу сделать, так как этот тип URL:

http://maps.google.de/maps/geo?q=address&output=xml&oe=utf8&sensor=false&key=...

в порядке, но это не так:

http://maps.google.de/maps/geo?q=address+hotels&output=xml&oe=utf8&sensor=false&key=...

(в связи с термином "+ hotels"). Поэтому я думаю, что единственный вариант - использовать ответ от Google Maps, например,

http://maps.google.de/maps?q=address+hotels

и проанализируйте информацию JSON, которая включена в конце. У кого-нибудь есть намеки на то, как лучше всего это сделать?

Ответы [ 2 ]

2 голосов
/ 22 мая 2009

Re. Google Api Docs: кажется, действительно то, что вы пытаетесь сделать, идет вразрез с намерением Google сделать свой продукт (= карту) доступным для вас, разработчика, для вашего пользовательского улучшения (путем добавление информации о торговой точке или что-то еще). На сайте API карт Google есть много вещей, описывающих это. Но анализ их данных (поступающих из их базы данных) и отображение их независимо от их продукта, по-видимому, несколько отличаются: раздел 10.12 терминов прямо охватывает это:

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

Однако есть приложения (например, приложение «Вокруг меня» для iPhone), которые, похоже, делают именно это: между Google и Apple может быть специальная договоренность в этом отношении.

РЕДАКТИРОВАТЬ: в качестве альтернативы вы можете посмотреть на эту проблему по-другому и использовать фид Google Base API, поскольку это позволяет создавать строки запросов с указанием ресурса, расстояния, местоположения и т. Д., Т. Е. Он возвращает требуемые данные без использования Карт. API (который вам в любом случае не нужен, учитывая ваше описание).

2 голосов
/ 22 мая 2009

Сначала убедитесь, что API не поддерживает то, что вам нужно. Проверка документов и, возможно, даже поиск настоящего Гуглера могут окупиться. Мне кажется странным, что их API не поддерживает такую ​​простую вещь, как добавление другого термина.

Если вы вынуждены сделать это «трудным путем», есть два основных шага:

1) Найдите и изучите библиотеку анализа JSON для Java. Я могу порекомендовать Джексона - быстро, крепко, и только что выпустил версию 1.0.0.

2) Научите свой код понимать спецификацию, которую Google использует в своем ответе. Это, безусловно, самая сложная часть. Мои извинения, но я ничего не знаю о спецификациях Google в этой области. Если вы можете найти официальные документы, это лучше. Или найдите неофициальные документы, опубликованные кем-то еще, кто должен был сделать подобную работу. В противном случае вам, возможно, придется «перепроектировать».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...