Все готово!

Прежде чем приступить к разработке, ознакомьтесь с документацией для разработчиков.

Активация Google Places API for Android

Чтобы помочь вам освоиться, мы покажем, как выполнить некоторые необходимые действия в консоли разработчика Google:

  1. Создание или выбор проекта
  2. Активация Google Places API for Android
  3. Создание соответствующих ключей

Текущее место

С помощью Google Places API for Android можно определить текущее местоположение устройства. Это место, где устройство находится в текущий момент времени. Примерами таких мест могут служить местные компании, достопримечательности и географические объекты.

Разрешения

Если в вашем приложении используется метод PlaceDetectionApi.getCurrentPlace(), вам необходимо запросить разрешение ACCESS_FINE_LOCATION.

Новая модель разрешений в Android 6.0 Marshmallow

В Android 6.0 (Marshmallow) представлена новая модель работы с разрешениями, которая оптимизирует процесс установки и обновления приложений пользователями. Если вы используете Google Play 8.1 или более поздней, вы можете настроить приложение для использования SDK Android Marshmallow и новой модели разрешений.

Если приложение поддерживает новую модель разрешений, пользователю не нужно предоставлять какие-либо разрешения при установке приложения или его обновлении. Вместо этого приложение запрашивает разрешения, когда в них возникает необходимость. В таких случаях система отображает для пользователя диалоговое окно с просьбой предоставить соответствующее разрешение.

Для получения дополнительной информации см. документацию для Android 6.0 Marshmallow; в ней также содержатся сведения о необходимых изменениях приложения для работы с новой моделью разрешений.

Ограничения на использование

Существуют уровни ограничений на количество обращений к методу PlaceDetectionApi.getCurrentPlace(). Дополнительную информацию см. в документации по ограничениям на использование.

Получение данных о текущем местоположении

Чтобы найти компании или другие места поблизости от текущего местоположения устройства, вызовите метод PlaceDetectionApi.getCurrentPlace().

Также можно дополнительно указать фильтр PlaceFilter, чтобы ограничить результаты одним или несколькими идентификаторами мест (не более 10 идентификаторов), а также выбрать заведения либо организации, которые открыты в данный момент времени. Если фильтр не указан, выдаются все результаты.

API возвращает буфер PlaceLikelihoodBuffer в запросе PendingResult. В буфере PlaceLikelihoodBuffer содержится список объектов PlaceLikelihood, представляющих собой возможные места. Для каждого места в результатах указывается, с какой вероятностью это место является именно тем, которое требуется. Если нет известных мест, удовлетворяющих критериям отбора, буфер может оказаться пустым.

Можно вызвать метод PlaceLikelihood.getPlace() для получения объекта Place и метод PlaceLikelihood.getLikelihood() для получения рейтинга вероятности совпадения искомого места. Чем больше значение, тем выше вероятность того, что данное место является наиболее подходящим.

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

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    for (PlaceLikelihood placeLikelihood : likelyPlaces) {
      Log.i(TAG, String.format("Place '%s' has likelihood: %g",
          placeLikelihood.getPlace().getName(),
          placeLikelihood.getLikelihood()));
    }
    likelyPlaces.release();
  }
});

Примечания, касающиеся значений вероятности.

  • Значение вероятности отражает относительную возможность того, что место является наиболее подходящим из списка возвращенных результатов одного запроса. Сравнить значения вероятности для разных запросов невозможно.
  • Значение вероятности представляет собой число от 0 до 1,0.
  • Сумма значений вероятности в заданном объекте PlaceLikelihoodBuffer всегда меньше или равна 1,0. Обратите внимание на то, что сумма не обязательно должна быть равной 1,0.

Например, для обозначения 55%-ной вероятности того, что место А является именно тем, которое требуется, и обозначения 35%-ной вероятности того, что таким местом является место Б, в PlaceLikelihoodBuffer имеется два члена: место А со значением вероятности 0,55 и место Б со значением вероятности 0,35.

Указание авторства в приложении

Если в приложении отображается информация, полученная путем вызова метода PlaceDetectionApi.getCurrentPlace(), в нем также должны отображаться сведения об авторстве. Дополнительную информацию см. в документации по указанию авторства.

Оставить отзыв о...

Текущей странице
location_on
Google Places API for Android