Все готово!

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

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

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

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

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

При отображении данных из Google Places API for Android, таких как результаты подсказки мест или название места и его адрес, следует соблюдать определенные требования к указанию авторства и отображения логотипа Google.

  1. Обзор
  2. Отображение карты
  3. Указание авторства "Powered by Google"
  4. Указание авторства для стороннего контента

Обзор

Требования к указанию авторства и отображению логотипа можно разделить на три категории:

  • отображение карты Google, если отображается карта;
  • указание авторства "Powered by Google";
  • указание авторства в отношении контента, предоставленного третьими сторонами.

Эти требования применяются к виджету выбора мест, а также к программным вызовам API. Если приложение извлекает сведения о месте с помощью средства выбора мест, а затем отображает эти данные на экране без карты, то на таком экране должны показываться данные об авторстве.

Отображение карты

Показывать карту не обязательно. Если приложение отображает на карте данные, полученные с помощью Places API, то это должна быть карта Google, содержащая логотип Google. В приложениях, в которых данные Places API отображаются на том же экране, что и карта Google, дополнительно указывать авторство Google не требуется.

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

Указание авторства "Powered by Google"

Если пользователь видит данные из Places API без карты Google, они должны сопровождаться логотипом "Powered by Google". Например, если на одном экране приложения отображается список мест, полученных с помощью API, а на другом – карта Google с отметками этих мест, то на первом экране также должен быть показан логотип "Powered by Google".

Изображение логотипа "Powered by Google" включено в библиотеку служб Google Play с подходящими для приложений Android размерами. Любые изменения этих изображений (включая их размер) запрещены.

  • Для светлого фона: @drawable/powered_by_google_light
  • Для темного фона: @drawable/powered_by_google_dark

Указание авторства для стороннего контента

Ниже приведены инструкции о том, каким образом можно получить сведения об авторстве в отношении контента, предоставленного третьей стороной, используя средство выбора мест или другие вызовы API, а также отобразить эту информацию в своем приложении.

Получение информации об авторстве из средства выбора мест

Чтобы получить необходимые сведения таким способом, вызовите метод PlacePicker.getAttributions() и передайте в него текущий объект Intent, содержащий данные о месте, выбранном пользователем. Этот метод возвращает строку HTML или null, если информация об авторстве отсутствует.

String thirdPartyAttributions = PlacePicker.getAttributions(intent);
if (thirdPartyAttributions == null) {
  thirdPartyAttributions = "";
}

Получение информации об авторстве с помощью объекта PlaceLikelihoodBuffer

Если в приложении отображается информация, полученная путем запроса данных о текущем местоположении устройства, в нем также должны отображаться сведения об авторстве третьей стороны в отношении данных о запрошенном месте.

API возвращает объект PlaceLikelihoodBuffer со списком возможных мест. Чтобы получить информацию об авторстве из объекта PlaceLikelihoodBuffer, вызовите метод PlaceLikelihoodBuffer.getAttributions(). Он возвращает последовательность символов в формате HTML или null, если отсутствуют сведения об авторстве для отображения.

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    final CharSequence thirdPartyAttributions =
        likelyPlaces.getAttributions();
    ...
  }
  likelyPlaces.release();
});

Получение информации об авторстве с помощью объекта PlaceBuffer

Если в приложении отображается информация, полученная путем вызова метода получения информации о месте по его идентификатору, в приложении также должны отображаться сведения об авторстве третьей стороны в отношении данных о запрошенном месте.

API возвращает объект PlaceBuffer со списком мест. Чтобы получить информацию об авторстве из объекта PlaceBuffer, вызовите метод PlaceBuffer.getAttributions(). Он возвращает последовательность символов в формате HTML или null, если отсутствуют сведения об авторстве для отображения.

Places.GeoDataApi.getPlaceById(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
  @Override
  public void onResult(PlaceBuffer places) {
    if (places.getStatus().isSuccess()) {
        ...
        final CharSequence thirdPartyAttributions =
            places.getAttributions();
    }
    places.release();
  }
});

Указание авторства фотографий

Если в вашем приложении используются фотографии, необходимо указать авторство каждой из них, если это возможно. Чтобы получить данные об авторстве фотографии, вызовите метод PlacePhotoMetadata.getAttributions(). Он возвращает последовательность символов в формате HTML или null, если отсутствуют сведения об авторстве для отображения.

Places.GeoDataApi.getPlacePhotos(mGoogleApiClient, placeId)
    .setResultCallback(new ResultCallback<PlacePhotoMetadataResult>() {
  @Override
  public void onResult(PlacePhotoMetadataResult photos) {
    if (photos.getStatus().isSuccess()) {
      // Get attribution for the first photo in the list.
      PlacePhotoMetadataBuffer photoResults = photos.getPhotoMetadata();
      if (photoResults.getCount() > 0) {
        PlacePhotoMetadata photo = photoMetadata.get(0);
        CharSequence attribution = photo.getAttributions();
      }
      photoResults.release();
    }
});

Отображение данных об авторстве третьей стороны

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

API генерирует информацию об авторстве для всех мест, используемых в приложении. Такие сведения предоставляются по вызову API, а не для каждого места.

Одним из способов отображения информации об авторстве является использование объекта TextView. Например:

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = PlacePicker.getAttributions(intent);
if (thirdPartyAttributions == null) {
  thirdPartyAttributions = "";
}
attributionsText.setText(Html.fromHtml(thirdPartyAttributions));

Пример указания авторства третьей стороны

Listings by <a href="https://www.example.com/">Example Company</a>

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

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