Zasady i informacje o atrybucji dotyczące pakietu SDK Miejsc na iOS

Ten dokument zawiera wymagania dotyczące wszystkich aplikacji opracowanych za pomocą pakietu Places SDK na iOS, w tym usługi autouzupełniania miejsc, która jest częścią tego interfejsu API. Więcej ogólnych informacji dla deweloperów Map Google znajdziesz w Warunkach korzystania z Google Maps Platform.

Zasady

W tej sekcji opisano zasady dotyczące pakietu Places SDK for iOS. Zasady zawierają praktyczne wskazówki i wymagania dotyczące wdrażania, które pomogą Ci prawidłowo korzystać z usługi i spełniać oczekiwania Google Maps Platform.

Przechowywanie danych, buforowanie i scraping

Gdy używasz treści Map Google w swojej aplikacji, postępuj zgodnie z wymaganiami dotyczącymi przetwarzania danych opisanymi w sekcji 3.2.3 Warunków korzystania z usługi Google Maps Platform i Szczegółowych warunków korzystania z usługi Google Maps Platform:

  • Ograniczenia dotyczące zapisywania w pamięci podręcznej i scrapingu (art. 3.2.3(a) i (b)): zapisuj w pamięci podręcznej lub przechowuj Treści Map Google tylko w zakresie wyraźnie dozwolonym w Szczegółowych warunkach korzystania z usługi Google Maps Platform. Nie eksportuj, nie wyodrębniaj ani nie ekstrahuj Treści Map Google w celu wykorzystania ich poza Usługami. Na przykład nie wolno wstępnie pobierać, indeksować, przechowywać ani rozpowszechniać Treści Map Google poza Usługami; zbiorczo pobierać kafelków map, zdjęć Street View, kodów geograficznych, wskazówek dojazdu, wyników macierzy odległości, informacji o drogach, informacji o miejscach, wartości wysokości ani szczegółów strefy czasowej; ani kopiować i zapisywać nazw firm, adresów lub opinii użytkowników.
  • Ograniczenia treści pochodnych (sekcja 3.2.3(c)): korzystaj z treści Map Google w aplikacji zgodnie z Warunkami korzystania z usługi Google Maps Platform. Nie twórz treści na podstawie Treści Map Google. Nie wolno na przykład śledzić ani digitalizować obiektów ze zdjęć satelitarnych, tworzyć modeli 3D ani modeli terenu, używać wartości szerokości i długości geograficznej miejsc jako danych wejściowych do analizy punktu w wielokącie, tworzyć indeksu lokalizacji na podstawie zdjęć Street View ani konwertować tekstowych czasów przejazdu na syntezę mowy.

Aby zmniejszyć opóźnienia i koszty rozliczeniowe bez buforowania danych z ograniczeniami, użyj masek pól lub list pól, aby żądać tylko tych pól, których potrzebuje interfejs użytkownika. Przechowywać identyfikatory wyłączone z ograniczeń, takie jak identyfikator miejsca, aby pobierać aktualne informacje, gdy użytkownik wchodzi w interakcję z miejscem.

Inżynierowie z zespołu pomocy technicznej Google nie mogą udzielać porad prawnych ani robić wyjątków od Warunków korzystania z usługi Google Maps Platform. Skonsultuj się z prawnikiem, aby ustalić, czy Twoja implementacja jest zgodna z warunkami, lub skontaktuj się z zespołem sprzedaży, jeśli Twój przypadek użycia wymaga niestandardowej licencji.

Wyjątki od ograniczeń dotyczących buforowania

Szczegółowe warunki korzystania z usługi Google Maps Platform dopuszczają te wyjątki dotyczące ograniczonego buforowania:

  • Identyfikatory miejsc: identyfikator miejsca, który służy do jednoznacznego identyfikowania miejsca, jest wyłączony z ograniczeń dotyczących buforowania. Dlatego możesz przechowywać wartości identyfikatorów miejsc bezterminowo. Identyfikatory miejsc są zwracane w odpowiedziach interfejsu API w polu id lub place_id. Dowiedz się, jak zapisywać identyfikatory miejsc, odświeżać je i nimi zarządzać, korzystając z przewodnika po identyfikatorach miejsc.
  • Współrzędne szerokości i długości geograficznej: możesz tymczasowo przechowywać w pamięci podręcznej wartości szerokości (latitude) i długości (longitude) geograficznej przez maksymalnie 30 kolejnych dni kalendarzowych, po czym musisz usunąć te współrzędne z pamięci podręcznej, jeśli korzystasz z usług, które dopuszczają ten wyjątek w Szczegółowych warunkach korzystania z usługi Google Maps Platform:
    • Routes API, Route Optimization API, Directions API (starsza wersja) i Roads API
    • Geocoding API, Geolocation API i Address Validation API
    • Places API, Places UI Kit i Navigation SDK
  • Okresy przechowywania w pamięci podręcznej dotyczące poszczególnych usług: w szczegółowych warunkach korzystania z usługi Google Maps Platform określono też okresy przechowywania w pamięci podręcznej dotyczące poszczególnych pól oraz dozwolone cele w przypadku interfejsów Address Validation API, Air Quality API, Pollen API, Solar API, Weather API i Places Aggregate API.

Kraje i terytoria Europejskiego Obszaru Gospodarczego

W przypadku klientów, których adres rozliczeniowy znajduje się w Europejskim Obszarze Gospodarczym (EOG), ta usługa ma inne Warunki korzystania z usługi i może mieć inne funkcje. Zanim zaczniesz tworzyć rozwiązania za pomocą Google Maps Platform, zapoznaj się z tymi warunkami i informacjami dotyczącymi Europejskiego Obszaru Gospodarczego:

Jeśli Twój adres rozliczeniowy nie znajduje się w Europejskim Obszarze Gospodarczym, obowiązują Cię te warunki korzystania z usługi:

Wymagania dotyczące podania źródła w Mapach Google

W tej sekcji znajdziesz wymagania dotyczące podania źródła i wytyczne dotyczące wyświetlania Map Google i treści z Map Google w aplikacjach.

Przykład atrybucji

Poniżej znajdziesz przykład atrybucji w przypadku Places UI Kit.

Przykład atrybucji w interfejsie Places UI Kit
na mapie niepochodzącej od Google
Wymagane informacje o autorze zastosowane do kompaktowego komponentu Informacje o miejscu. Na tej mapie spoza Google atrybucja Map Google jest wyraźnie widoczna, a treści z Google Maps Platform są wizualnie odróżnione od innych treści.

Wyświetlanie atrybucji Map Google

Podczas wyświetlania treści z interfejsów API Google Maps Platform w aplikacji lub witrynie musisz przestrzegać wymagań dotyczących podania źródła Map Google. Nie musisz dodawać dodatkowych informacji o autorstwie, jeśli Treści są wyświetlane w Mapach Google, gdzie informacje o autorstwie są już widoczne.

Uwzględniono atrybucję Map Google

W przypadku atrybucji Map Google, która jest już udostępniana przez Google Maps Platform w interfejsie użytkownika, np. w Places UI Kit:

  • Nie usuwaj dołączonych informacji o autorstwie niezależnie od tego, gdzie są wyświetlane. Nie zmieniaj, nie ukrywaj ani nie zasłaniaj informacji o źródle. Zadbaj o to, aby były one wyraźnie widoczne na tle.
  • Zawsze wizualnie odróżniaj treści Google Maps Platform od innych treści, używając wskazówek w interfejsie, takich jak obramowanie, kolor tła, cień lub wystarczająca ilość pustego miejsca.
  • Wprowadzając zmiany wizualne, musisz przestrzegać wszystkich wymagań Google Maps dotyczących podawania źródła.

Jeśli to możliwe, atrybucja powinna mieć formę logo Map Google. W przypadkach, gdy ilość miejsca jest ograniczona, dopuszczalny jest tekst Mapy Google. Użytkownicy muszą zawsze wiedzieć, które treści pochodzą z Map Google.

Po lewej: atrybucja z logo Map Google, po prawej: atrybucja z tekstem Map Google
Po lewej: przykład atrybucji logo Map Google, po prawej: przykład atrybucji tekstu Map Google

Atrybucja logo

Aby używać logo Map Google w aplikacji lub witrynie, musisz spełniać te wymagania.
Dopuszczalne odmiany atrybucji logo Map Google
Przykłady dopuszczalnych wersji atrybucji logo Map Google

Pobieranie logo Map Google

Używaj oficjalnych plików logo Map Google. Pobierz logo poniżej i postępuj zgodnie ze wskazówkami podanymi w tej sekcji.

Pobierz zasoby dotyczące atrybucji Map Google

Podczas korzystania z logo Map Google postępuj zgodnie z tymi wytycznymi.

  • Nie modyfikuj logo w żaden sposób.
  • Zachowaj format obrazu logo, aby uniknąć zniekształceń.
  • Używaj logo z obramowaniem na szczegółowym tle, np. na mapie lub obrazie.
  • Używaj logo bez obramowania na jednolitym tle, np. w jednym kolorze lub z subtelnym gradientem.

Specyfikacja rozmiaru logo

Logo Map Google musi być zgodne z tymi wytycznymi dotyczącymi rozmiaru:
  • Minimalna wysokość logo: 16 dp
  • Maksymalna wysokość logo: 19 dp
  • Minimalny pusty obszar wokół logo: 10 dp po lewej i prawej stronie oraz u góry, 5 dp u dołu.

Więcej informacji o dp znajdziesz w sekcji Gęstość pikseli na stronie Material Design.

Logo Map Google z minimalnym pustym obszarem i akceptowalnym zakresem rozmiarów
Przykład logo Map Google z minimalnym pustym obszarem i akceptowalnym zakresem rozmiarów

Dostępność logo

Logo Map Google musi spełniać te wymagania dotyczące ułatwień dostępu:
  • Zachowaj odpowiedni kontrast między logo a tłem.
  • Dołącz etykietę ułatwień dostępu z tekstem Mapy Google.
Niedopuszczalne odmiany i problemy z dostępnością dotyczące atrybucji logo Map Google
Przykłady niedopuszczalnych odmian i problemów z dostępnością w przypadku atrybucji logo Map Google

Atrybucja tekstowa

Jeśli rozmiar interfejsu nie pozwala na użycie logo Map Google, możesz wpisać tekst Mapy Google. Skorzystaj z tych wskazówek:

Dopuszczalne odmiany atrybucji tekstowej Map Google
Przykłady dopuszczalnych odmian atrybucji tekstowej Map Google
  • Nie modyfikuj w żaden sposób tekstu Mapy Google:
    • Nie zmieniaj wielkości liter w nazwie Mapy Google.
    • Nie dziel nazwy Mapy Google na kilka wierszy.
    • Nie tłumacz nazwy Mapy Google na inny język.
    • Aby uniemożliwić przeglądarkom tłumaczenie Map Google, użyj atrybutu HTML translate="no".
Niedopuszczalne odmiany atrybucji tekstowej Map Google
Przykłady niedopuszczalnych odmian atrybucji tekstowej Map Google
  • Tekst Map Google należy sformatować zgodnie z tabelą poniżej:

    Wymagania dotyczące stylów tekstu w Mapach Google
    Właściwość Style
    Rodzina czcionek Roboto. Wczytywanie czcionki jest opcjonalne.
    Rodzina czcionek zastępczych Dowolna czcionka bezszeryfowa używana już w Twojej usłudze lub „Sans-Serif”, aby wywołać domyślną czcionkę systemową.
    Styl czcionki Normalna
    Grubość czcionki 400
    Kolor czcionki Biały, czarny (#1F1F1F) lub szary (#5E5E5E). Zachowaj dostępny kontrast (4,5:1) z tłem.
    Rozmiar czcionki Minimalny rozmiar czcionki: 12 sp
    Maksymalny rozmiar czcionki: 16 sp
    Więcej informacji o jednostce sp znajdziesz w sekcji Jednostki rozmiaru czcionki na stronie Material Design.
    Odstępy między literami Normalna

Przykładowa usługa porównywania cen

Poniższy kod CSS renderuje Mapy Google z odpowiednim stylem typograficznym i kolorem na białym lub jasnym tle.

@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;
}

Wymagania dotyczące treści wizualnych

Postępuj zgodnie z tymi wymaganiami dotyczącymi wizualnego traktowania atrybucji Map Google.
  • Umieść informacje o autorze u góry lub u dołu treści, w tym samym kontenerze wizualnym. W przypadku pojedynczego wiersza treści atrybucję można umieścić po prawej lub lewej stronie.

  • Wizualnie odróżniaj treści Google Maps Platform od innych treści, używając elementów interfejsu, takich jak obramowanie, kolor tła, cień lub wystarczająca ilość pustego miejsca.

  • Nie wprowadzaj użytkowników w błąd, przypisując Mapom Google treści, które nie pochodzą z Google Maps Platform.
  • Sprawdź, czy atrybucja jest zawsze widoczna i czytelna. Nigdy nie usuwaj, nie ukrywaj, nie zasłaniaj ani nie modyfikuj tego elementu.

Na ilustracjach poniżej pokazano przykłady tych wymagań wizualnych.

Przykład atrybucji Map Google umieszczonej u góry, u dołu i z boku treści
Przykłady atrybucji Map Google umieszczonej u góry, u dołu i z boku treści

Przykład 2 sposobów odróżniania treści z Map Google (oceny miejsca) od innych treści
Przykłady 2 sposobów odróżniania treści z Map Google (oceny miejsca) od innych treści

Nie zasłaniaj informacji o autorstwie Map Google ani nie łącz ich z treściami z innych źródeł.
Nie zasłaniaj atrybucji Map Google ani nie mieszaj jej z treściami z innych źródeł

zewnętrzni dostawcy danych,

Niektóre dane i zdjęcia w naszych usługach mapowania pochodzą od dostawców innych niż Google. W przypadku niektórych usług, takich jak Map Tiles API, możemy podać wymagane informacje o autorze, które należy przypisać zewnętrznemu dostawcy danych. W takim przypadku tekst atrybucji musi zawierać nazwę „Mapy Google” i nazwy odpowiednich dostawców danych, np. „Dane mapy: Google, Maxar Technologies”. Jeśli Google podaje informacje o źródle, które pochodzą od innej firmy, samo podanie „Map Google” lub logo Google nie jest prawidłowym podaniem źródła.

Inne wymagania dotyczące atrybucji

Atrybucje dostawców zewnętrznych zawierają treści i linki, które musisz wyświetlać użytkownikowi w formacie, w jakim są dostarczane. Google zaleca, aby aplikacja wyświetlała te informacje pod informacjami o miejscu.

Atrybucje innych firm zwracane przez interfejs API nie obejmują atrybucji Google. Musisz samodzielnie dodać te informacje, zgodnie z opisem w artykule Wyświetlanie logo Google i informacji o źródle.

Postępuj zgodnie z tymi instrukcjami, aby pobrać atrybucje innych firm dotyczące pojedynczego miejsca lub zbioru miejsc.

Pobieranie atrybucji dla jednego miejsca

Gdy pobierasz miejsce, pobierając miejsce według identyfikatora, możesz pobrać informacje o autorze tego miejsca z właściwości attributions w GMSPlace.

attributions są podawane jako obiekt NSAttributedString.

Pobieranie atrybucji dla kolekcji miejsc

Jeśli aplikacja wyświetla informacje uzyskane przez wysłanie żądania o aktualne miejsce urządzenia, musi wyświetlać informacje o autorstwie osób trzecich w przypadku wyświetlanych informacji o miejscu. Możesz pobrać atrybucje wszystkich miejsc pobranych w żądaniu z właściwości attributions w GMSPlaceLikelihoodList.

attributions są udostępniane jako obiekt NSAttributedString, do którego możesz uzyskać dostęp i który możesz wyświetlić w taki sam sposób jak attributions w przypadku pojedynczego miejsca, jak opisano powyżej.

Atrybucje wyników wyszukiwania

W Europie, gdy używasz niezmienionego rankingu Google, usługi wyszukiwania muszą zawierać tekst objaśniający, który znajduje się nie dalej niż 1 kliknięcie od strony głównej i opisuje główne czynniki oraz ich wagę, które decydują o pozycji w rankingu wyników wyszukiwania. Tekst wyjaśnienia:

Nagłówek: Informacje o tych wynikach

Treść: Gdy szukasz firm lub miejsc w pobliżu danej lokalizacji, w Mapach Google wyświetlają się wyniki lokalne. Aby wybrać dla Ciebie najlepsze wyniki wyszukiwania, uwzględniamy różne czynniki – przede wszystkim trafność, odległość i renomę.

Przycisk 1: Więcej informacji
Tekst „Więcej informacji” powinien prowadzić do artykułu w Centrum pomocy.

Przycisk 2: OK

Wyświetlanie informacji o autorze zdjęcia

Jeśli aplikacja wyświetla zdjęcia, musisz wyświetlać wszystkie attributions i authorAttributions dla każdego zdjęcia, które je zawiera.

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;
          }
        }
      }];
    

Wyświetlanie opinii

Obiekt GMSPlace może zawierać maksymalnie 5 opinii, z których każda jest reprezentowana przez obiekt GMSPlaceReview. Możesz opcjonalnie wyświetlać te opinie w aplikacji.

Podczas wyświetlania opinii dodanych przez użytkowników Google musisz umieścić imię i nazwisko autora w pobliżu. Jeśli w polu atrybucji autora obiektu GMSPlaceReview jest to możliwe, zalecamy też dodanie zdjęcia autora i linku do jego profilu. Na obrazie poniżej widać przykład opinii o parku:

Wyświetlanie informacji o autorze

Google zaleca też wyświetlanie użytkownikowi informacji o tym, jak opinie są sortowane.

Aby uzyskać dostęp do opinii:

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.

  }
}];

Wyświetlanie atrybucji innych firm

Atrybucje dostawców zewnętrznych są dostarczane jako obiekty NSAttributedString, które zawierają treści i linki, które musisz zachować i wyświetlić użytkownikowi.

Zalecanym sposobem wyświetlania informacji o autorze jest użycie elementu UITextView, ponieważ linki w informacjach o autorze muszą działać. Aby linki działały, ustaw obiekt delegowany w UITextView i ustaw metodę shouldInteractWithURL obiektu UITextViewDelegate, aby zwracała 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;
}
    

Przykład atrybucji przez firmę zewnętrzną

Atrybucja zewnętrzna zwykle składa się z tekstu z linkiem. Obejmuje to na przykład:

Oferty firmy Przykładowa firma

W powyższym przykładzie zakres tekstu Example Company jest objęty atrybutem NSLink.

Autouzupełnianie adresów użytkowników

Gdy użytkownik korzysta z funkcji autouzupełniania w Aplikacji klienta, aby wpisać adres, który zostałby przez niego podany w całości i prawidłowo bez użycia autouzupełniania, wybrany przez niego adres nie podlega ograniczeniom dotyczącym treści Map Google określonym w Umowie Google Maps Platform. Ten wyjątek dotyczy tylko adresu pocztowego wybranego przez użytkownika i wyłącznie konkretnej transakcji tego użytkownika. Nie dotyczy on listy sugerowanych adresów dostarczanych przez funkcję autouzupełniania ani innych Treści Map Google. Ten wyjątek nie dotyczy funkcji wyszukiwania ciekawych miejsc ani adresów oferowanych przez inne usługi Google Maps Platform.

Autouzupełnianie adresu użytkownika

Na poprzednim obrazie lista adresów po lewej stronie nadal podlega ograniczeniom dotyczącym treści Map Google. Gdy użytkownik wybierze adres, nie będzie on podlegać ograniczeniom dotyczącym Treści Map Google wyłącznie na potrzeby danej transakcji użytkownika.