Как получить информацию о Google Местах с помощью Rails 3? - PullRequest
1 голос
/ 17 сентября 2011

Итак, я знаю, что API мест Google предоставляет информацию о месте (имя, местоположение, веб-сайт, тип т. Д.) С помощью JSON, но мне было интересно, как получить данные из JSON?

По сути, у меня есть сайт, где пользователи могут использовать API Google Maps Ive, настроенный для поиска своих розничных магазинов, и я хотел бы хранить всю эту информацию в таблице, чтобы при переходе на страницу профиля пользователя вы можно увидеть информацию о Google-месте на интегрированной карте.

Может быть, есть более простой способ сделать это, но я не уверен, как.

Ответы [ 3 ]

7 голосов
/ 17 сентября 2011

Вы должны использовать API Google Места только от клиента.У Google довольно низкий предел скорости, и он основан на IP-адресе (по крайней мере, для API карт Google).Так что, если вы делаете слишком много запросов с вашего веб-сервера, внезапно Google отключит вас на целый день.Чтобы обойти это, просто сделайте все вызовы в javascript, так что он идет с IP-адреса пользователя.

Когда пользователь вводит свой адрес в вашу форму, используйте API мест Google, чтобы получить идентификатор места,или координаты широты / долготы, затем сохраните их вместе со всем остальным в вашей базе данных.Затем просто используйте эти данные, чтобы получить место json из API мест Google при просмотре профиля пользователя.

Обновление

Согласно документам Google Места, это на самом деле "reference токен", который вы хотите сохранить, а не id.

Поскольку вы хотите, чтобы пользователи могли искать свои магазины, вам нужно сделать 2 запроса:

  1. Во-первых, вам нужно иметь координаты широты / долготы, чтобы иметь возможность запрашивать API мест ( Google Места Api Docs . Это можно сделать, запросив Google Maps 'геокодирование api с, скажем, текущим местоположением пользователей или некоторым адресом, который они указали при регистрации. Ответ, среди прочих атрибутов, вернет координаты широты и долготы. Сохраните их в своей базе данных, привязанной к пользовательской модели.Я сделал это с Geocoder , но из-за ограничения скорости Google вы быстро столкнетесь с проблемами. Сохраните все аспекты геокодирования на стороне клиента, а затем сохраните результаты с помощью ajax или чего-либо еще.
  2. Затем наНа странице, где пользователь ищет свои розничные магазины, вы просто запрашиваете api мест с их координатами широты / долготы: пример запроса поиска api google place .Вы получите список результатов.Для каждого места, выбранного пользователем, вы сохраняете токен reference.
  3. Затем, когда вы хотите получить сведения об этом месте, вы делаете google place api 'данные о месте' используя опорный токен.
1 голос
/ 24 февраля 2013

Для использования Google Places API с Rails вы можете использовать Gem google_places :: https://github.com/marceldegraaf/google_places

Надеюсь, это поможет вам.

1 голос
/ 17 сентября 2011

Я думал сделать то же самое с Geocoder, думаю, стоит посмотреть. http://railscasts.com/episodes/273-geocoder?view=comments

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