Правила для Places SDK для iOS

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

Политики

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

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

Обратите внимание, что идентификатор места , используемый для уникальной идентификации места, освобожден от ограничений кэширования . Таким образом, вы можете хранить значения идентификатора места неограниченное время. Идентификатор места возвращается в поле place_id в ответах API. Узнайте, как сохранять, обновлять и управлять идентификаторами мест, в руководстве по идентификаторам мест .

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

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

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

Требования к атрибуции Google Maps

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

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

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

Places UI Kit пример атрибуции на карте не от Google
Требуемая атрибуция применена к компактному компоненту Place Details. На этой не-Google карте атрибуция Google Maps четко видна, а контент Google Maps Platform визуально отличается от другого контента.

Отображение атрибуции Google Maps

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

Включена атрибуция Google Maps

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

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

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

Слева: указание логотипа Google Maps, справа: указание текста Google Maps
Слева: указание логотипа Google Maps, справа: указание текста Google Maps

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

Соблюдайте эти требования при использовании логотипа Google Maps в вашем приложении или на веб-сайте.
Допустимые варианты атрибуции логотипа Google Maps
Допустимые варианты атрибуции логотипа Google Maps

Загрузить логотипы Google Maps

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

Загрузите ресурсы атрибуции Google Maps

При использовании логотипа Google Maps следуйте этим правилам.

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

Спецификация размера логотипа

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

Чтобы узнать больше о dp, ознакомьтесь с разделом Плотность пикселей на сайте Material Design.

Логотип Google Maps, показывающий минимальное свободное пространство и допустимый диапазон размеров
Логотип Google Maps, показывающий минимальное свободное пространство и допустимый диапазон размеров

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

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

Атрибуция текста

Если размер вашего интерфейса не позволяет использовать логотип Google Maps, вы можете написать Google Maps в тексте. Следуйте этим рекомендациям:

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

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

Пример CSS-кода

Следующий CSS-код отображает Google Maps с соответствующим типографским стилем и цветом на белом или светлом фоне.

@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 Maps.
  • Расположите атрибуцию в верхней или нижней части контента и в пределах одного визуального контейнера. Для одной строки контента атрибуция может быть расположена справа или слева.

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

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

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

Пример указания источника на Картах Google, размещенного сверху, снизу и сбоку от контента
Пример указания источника на Картах Google, размещенного сверху, снизу и сбоку от контента

Пример трех подходов к дифференциации контента Google Maps (рейтинга места) от другого контента
Пример трех подходов к дифференциации контента Google Maps (рейтинга места) от другого контента

Не скрывайте ссылку на Google Maps и не смешивайте ее с контентом из других источников.
Не скрывайте ссылку на Google Maps и не смешивайте ее с контентом из других источников.

Сторонние поставщики данных

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

Другие требования к атрибуции

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

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

Следуйте этим инструкциям, чтобы получить сторонние атрибуции для одного места или группы мест.

Получить атрибуции для одного места

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

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

Получить атрибуции для коллекции мест

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

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

Результаты поиска атрибуции

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

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

Текст: Когда вы ищете компании или места рядом с местоположением, Google Maps покажет вам локальные результаты. Несколько факторов — в первую очередь релевантность, расстояние и известность — объединяются, чтобы помочь найти лучшие результаты для вашего поиска.

Кнопка 1: Узнать больше
Текст «Узнать больше» должен ссылаться на статью Справочного центра .

Кнопка 2: ОК

Отображение атрибуции для фотографии

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

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

Быстрый

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 также рекомендует вам показывать конечному пользователю, как сортируются отзывы.

Чтобы получить доступ к отзывам:

Быстрый

// 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 .

Быстрый

...
  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 охватывается атрибутом NSLink .

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

Когда конечный пользователь использует функцию автозаполнения в вашем клиентском приложении для ввода почтового адреса, и этот почтовый адрес был бы полностью и точно предоставлен этим конечным пользователем без функции автозаполнения, выбранный конечным пользователем адрес не подпадает под ограничения Google Maps Content в вашем соглашении Google Maps Platform. Это исключение применяется только к почтовому адресу, выбранному конечным пользователем, и исключительно для конкретной транзакции этого конечного пользователя; оно не применяется к списку предлагаемых адресов, предоставленному функцией автозаполнения, или к другому контенту Google Maps. Это исключение не применяется к любой функциональности поиска POI или адреса, предлагаемой другими службами Google Maps Platform.

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

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