Правила и атрибуция для Places SDK для iOS

В этом документе перечислены требования, которые относятся ко всем приложениям, разработанным с помощью Places SDK для iOS, в том числе к сервису автозаполнения мест, который является частью этого API. Общую информацию для разработчиков Google Карт можно найти в Условиях использования платформы Google Карт.

Правила

В этом разделе описываются правила, относящиеся к Places SDK для iOS. В правилах содержатся практические рекомендации и требования по реализации, которые помогут вам правильно использовать Сервис в соответствии с ожиданиями платформы Google Карт.

Хранение, кеширование и скрейпинг данных

При использовании контента Google Карт в приложении соблюдайте требования к обработке данных, изложенные в разделе 3.2.3 Условий использования платформы Google Карт и Условий использования сервисов платформы Google Карт:

  • Ограничения на кеширование и скрейпинг (раздел 3.2.3(a) и (b)). Кешировать или хранить контент Google Карт можно только в случаях, явно разрешенных Условиями использования сервисов платформы Google Карт. Не экспортируйте, не извлекайте и не собирайте Контент Google Карт для использования за пределами Сервисов. Например, запрещается предварительно извлекать, индексировать, хранить или распространять Контент Google Карт за пределами Сервисов; массово скачивать фрагменты карт, изображения Просмотра улиц, геокоды, маршруты, результаты матрицы расстояний, информацию о дорогах, местах, высоте над уровнем моря или часовых поясах; копировать и сохранять названия и адреса компаний или отзывы пользователей.
  • Ограничения на производный контент (раздел 3.2.3(c)). Используйте контент Google Карт в своем приложении в соответствии с Условиями использования платформы Google Карт. Не создавайте контент на основе контента Google Карт. Например, не отслеживайте и не оцифровывайте объекты на спутниковых снимках, не создавайте 3D-модели или модели рельефа, не используйте значения широты и долготы Places в качестве входных данных для анализа точек в многоугольнике, не создавайте индекс местоположений на основе изображений Просмотра улиц и не преобразуйте текстовые данные о времени в пути в синтезированную речь.

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

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

Исключения из ограничений на кеширование

Специальные условия использования платформы Google Карт допускают следующие исключения:

Страны и территории Европейской экономической зоны

Для клиентов с платежным адресом в Европейской экономической зоне (ЕЭЗ) действуют другие Условия использования этого продукта. Также могут отличаться доступные функции. Прежде чем начать работу с платформой Google Карт, ознакомьтесь со следующими условиями и информацией, относящимися к ЕЭЗ:

Если ваш платежный адрес находится за пределами ЕЭЗ, к вам применяются следующие условия использования:

Требования по указанию авторства Google Карт

В этом разделе приведены требования и рекомендации по указанию авторства при показе Google Карт и Контента в ваших приложениях.

Пример атрибуции

Ниже приведен пример атрибуции для Places UI Kit.

Пример указания авторства Places UI Kit на карте, отличной от карты Google
Обязательное указание авторства, примененное к компактному компоненту информации о местах. На этой карте, не принадлежащей Google, хорошо видна атрибуция Google Карт, а контент платформы Google Карт визуально отличается от другого контента.

Как показывать атрибуцию Google Карт

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

Добавлена атрибуция Google Карт

Если атрибуция Google Карт уже предоставляется платформой Google Карт в пользовательском интерфейсе, например в Places UI Kit:

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

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

Слева: логотип Google Карт. Справа: текстовый логотип Google Карт.
Слева: пример указания авторства с логотипом Google Карт. Справа: пример указания авторства с текстом Google Карт.

Атрибуция логотипа

Ниже приведены требования к использованию логотипа Google Карт в приложении или на сайте.
Допустимые варианты атрибуции с логотипом Google Карт
Примеры допустимых вариантов атрибуции с логотипом Google Карт

Скачать логотипы Google Карт

Используйте официальные файлы логотипа Google Карт. Скачайте логотипы ниже и следуйте инструкциям в этом разделе.

Скачать объекты атрибуции Google Карт

При использовании логотипа Google Карт следуйте приведенным ниже рекомендациям.

  • Не изменяйте логотип.
  • Сохраняйте соотношение сторон логотипа, чтобы избежать искажений.
  • Используйте логотип с контуром на насыщенном фоне, например на карте или изображении.
  • Используйте логотип без контура на простом фоне, например однотонном или с легким градиентом.

Требования к размеру логотипа

Придерживайтесь следующих требований к размеру логотипа Google Карт:
  • Минимальная высота логотипа: 16 dp.
  • Максимальная высота логотипа: 19 dp.
  • Минимальное свободное пространство вокруг логотипа: 10 dp слева, справа и сверху, 5 dp снизу.

Подробнее о dp рассказывается в статье Плотность пикселей на сайте Material Design.

Логотип Google Карт с указанием минимального свободного пространства и допустимого диапазона размеров
Пример логотипа Google Карт с минимальным свободным пространством и допустимым диапазоном размеров

Доступность логотипа

При использовании логотипа Google Карт соблюдайте следующие требования к специальным возможностям:
  • Поддерживайте доступный контраст между логотипом и фоном.
  • Добавьте ярлык специальных возможностей с текстом Google Карты.
Недопустимые варианты и проблемы с доступностью для атрибуции логотипа Google Карт
Примеры недопустимых вариантов и проблем с доступностью для атрибуции логотипа Google Карт

Текстовая атрибуция

Если размер интерфейса не позволяет использовать логотип Google Карт, вы можете написать Google Карты текстом. Придерживайтесь следующих рекомендаций:

Допустимые варианты текстовой атрибуции Google Карт
Примеры допустимых вариантов текстовой атрибуции Google Карт
  • Не изменяйте текст Google Карты:
    • Не меняйте регистр букв в названии Google Карты.
    • Не переносите Google Карты на несколько строк.
    • Не локализуйте Google Карты.
    • Запретите браузерам переводить Google Карты с помощью HTML-атрибута translate="no".
Недопустимые варианты атрибуции Google Карт
Примеры недопустимых вариантов текстовой атрибуции Google Карт
  • Оформляйте текст Google Карт, как описано в таблице ниже.

    Требования к оформлению текста в Google Картах
    Ресурс Стиль
    Семейство шрифтов Roboto. Загрузка шрифта не обязательна.
    Резервное семейство шрифтов Любой шрифт без засечек, который уже используется в вашем продукте, или Sans-Serif, чтобы вызвать системный шрифт по умолчанию.
    Стиль шрифта Обычный
    Насыщенность шрифта 400
    Цвет шрифта Белый, черный (#1F1F1F) или серый (#5E5E5E). Поддерживайте доступный контраст с фоном (4,5:1).
    Размер шрифта Минимальный размер шрифта: 12 sp.
    Максимальный размер шрифта: 16 sp.
    Подробнее о единицах измерения размера шрифта…
    Расстояние между символами Обычный

Пример CSS

Ниже приведен код CSS, с помощью которого можно отобразить логотип Google Карт на белом или светлом фоне с использованием подходящего шрифта и цвета.

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

.GMP-attribution {
font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}

Требования к визуальным элементам

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

  • Визуально отделяйте контент платформы Google Карт от другого контента, используя элементы интерфейса, такие как рамка, цвет фона, тень или достаточное количество пустого пространства.

  • Не вводите пользователей в заблуждение, выдавая контент, не относящийся к платформе Google Карт, за контент Google Карт.
  • Убедитесь, что атрибуция всегда видна и легко читается. Не удаляйте, не скрывайте и не изменяйте его.

На рисунках ниже показаны примеры этих визуальных требований.

Пример указания авторства Google Карт вверху, внизу и сбоку от контента
Пример атрибуции Google Карт, расположенной вверху, внизу и сбоку от контента

Пример двух подходов к выделению контента Google Карт (оценки места) среди другого контента
Пример двух подходов к отделению контента Google Карт (оценки места) от другого контента

Не скрывайте атрибуцию Google Карт и не смешивайте ее с контентом из других источников.
Не скрывайте атрибуцию Google Карт и не смешивайте ее с контентом из других источников

Внешними поставщиками данных.

Некоторые данные и изображения в картографических продуктах Google принадлежат сторонним поставщикам. Для некоторых продуктов, например Map Tiles API, мы можем предоставить вам требуемую атрибуцию стороннего поставщика данных. В этом случае в указании авторства, помимо Google Карт, должны присутствовать названия и других поставщиков данных, например "Картографические данные: Google Карты, Maxar Technologies". Если Google предоставляет сведения об авторстве третьих лиц, недостаточно включить в них только название или логотип Google Карт.

Другие требования по указанию авторства

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

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

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

Как получить атрибуцию для одного места

При получении места по идентификатору вы можете получить сведения об авторстве для этого места из свойства attributions объекта GMSPlace.

attributions предоставляются в виде объекта NSAttributedString.

Как получать сведения об авторстве для набора мест

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

attributions предоставляются в виде объекта NSAttributedString, к которому можно получить доступ и который можно отобразить так же, как и attributions для одного места, как описано выше.

Атрибуция результатов поиска

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

Заголовок: Об этих результатах

Основной текст: Когда вы ищете организации или места рядом с конкретным адресом, Google Карты показывают местные результаты. Выбор результатов зависит от разных факторов, в основном от релевантности, расстояния и заметности.

Кнопка 1: Подробнее
Текст "Подробнее" должен ссылаться на статью Справочного центра.

Кнопка 2: ОК.

Как показывать сведения об авторах фотографий

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

  • Чтобы получить доступ к атрибуции, используйте GMSPlacePhotoMetadata.attributions. Это свойство представляет собой NSAttributedString. Если сведения об авторстве отсутствуют, возвращается значение nil.
  • Чтобы получить доступ к информации об авторах, используйте GMSPlacePhotoMetadata.authorAttributions. Это свойство содержит массив объектов GMSPlaceAuthorAttribution.

Swift

GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in
  if let error = error {
    // TODO: handle the error.
    print("Error: \(error.description)")
  } else {
    // Get attribution for the first photo in the list.
    if let photo = photos?.results.first {
      let attributions = photo.attributions
    }
  }
}
    

Objective-C

[[GMSPlacesClient sharedClient]
    lookUpPhotosForPlaceID:placeID
      callback:^(GMSPlacePhotoMetadataList *_Nullable photos,
                  NSError *_Nullable error) {
        if (error) {
          // TODO: handle the error.
          NSLog(@"Error: %@", [error description]);
        } else {
          // Get attribution for the first photo in the list.
          if (photos.results.count > 0) {
            GMSPlacePhotoMetadata *photo = photos.results.firstObject;
            NSAttributedString *attributions = photo.attributions;
          }
        }
      }];
    

Как показывать отзывы

Объект GMSPlace может содержать до пяти отзывов, каждый из которых представлен объектом GMSPlaceReview. При желании вы можете показывать эти отзывы в своем приложении.

При показе отзывов, оставленных пользователями Google, рядом обязательно должно быть указано имя автора. Мы также рекомендуем добавлять фотографию пользователя и ссылку на его профиль, если в поле с указанием автора в объекте GMSPlaceReview есть эти данные. Ниже приведен пример отзыва на парк.

Показ сведений об авторстве

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

Чтобы посмотреть отзывы, выполните следующие действия:

Swift

// Define a Place ID.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews]

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    let firstReview: GMSPlaceReview = place.reviews![0]

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
})

Objective-C

// Define a Place ID.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return, including reviews.
NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews];

GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error) {
    // TODO: handle the error.
    NSLog(@"Error: %@", [error description]);
  } else {
    // Get first review.
    GMSPlaceReview *firstReview = [place reviews][0];

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
}];

Показывать атрибуцию третьих сторон

Атрибуция сторонних поставщиков предоставляется в виде объектов NSAttributedString, содержащих контент и ссылки, которые вы должны сохранить и показать пользователю.

Рекомендуемый способ отображения атрибуции – с помощью UITextView, поскольку ссылки в атрибуции должны работать. Чтобы ссылки работали, задайте делегат для UITextView и настройте метод shouldInteractWithURL вашего UITextViewDelegate так, чтобы он возвращал YES.

Swift

...
  self.attributionTextView.delegate = self
...

// MARK: - UITextViewDelegate

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL,
  inRange characterRange: NSRange) -> Bool {
  // Make links clickable.
  return true
}
    

Objective-C

...
  self.attributionTextView.delegate = self;
...

#pragma mark - UITextViewDelegate

- (BOOL)textView:(UITextView *)textView
    shouldInteractWithURL:(NSURL *)url
                  inRange:(NSRange)characterRange {
  // Make links clickable.
  return YES;
}
    

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

Указание авторства третьей стороны обычно имеет вид текста со ссылкой. Пример:

Предложения от Example Company

В примере выше фрагмент текста Example Company охвачен атрибутом NSLink.

Автозаполнение адресов конечных пользователей

Если конечный пользователь вводит почтовый адрес в Приложении клиента с помощью функции автозаполнения, и этот адрес был бы полностью и точно указан конечным пользователем без автозаполнения, то на выбранный конечным пользователем адрес не распространяются ограничения на контент Google Карт, указанные в Соглашении об использовании платформы Google Карт. Это исключение относится только к почтовому адресу, выбранному конечным пользователем, и только к конкретной транзакции этого пользователя. Оно не распространяется на список предлагаемых адресов, предоставляемый функцией автозаполнения, или на другой контент Google Карт. Это исключение не распространяется на функции поиска объектов инфраструктуры и адресов, предлагаемые другими сервисами платформы Google Карт.

Автозаполнение адреса конечного пользователя

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