Szczegóły miejsca (nowość)

Pakiet Places SDK na iOS (nowość) dostarcza aplikacji rozbudowane informacje informacje o miejscach, w tym ich nazwę i adres, położenie geograficzne, lokalizacja określona za pomocą współrzędnych geograficznych, rodzaj miejsca (np. klub nocny, sklep zoologiczny, muzeum). Aby uzyskać dostęp do tych informacji dla konkretnego miejsca, możesz użyć identyfikatora miejsca, stałego identyfikatora, wskazuje miejsce.

Pobierz informacje o miejscu

GMSPlace class zawiera informacje o konkretnym miejscu, w tym wszystkie pola danych pokazane w Pola danych miejsc (nowe). Zdobądź GMSPlace obiekt przez wywołanie GMSPlacesClient fetchPlaceWithRequest:, przekazującego obiekt GMSFetchPlaceRequest oraz metoda wywołania zwrotnego typu GMSPlaceResultCallback.

Obiekt GMSFetchPlaceRequest określa:

  • (Wymagane) Identyfikator miejsca, czyli unikalny identyfikator miejsca w Miejscach Google. w bazie danych i w Mapach Google.
  • (Wymagane) Lista pól do zwrócenia w obiekcie GMSPlace, tzw. maska pola zdefiniowana przez GMSPlaceProperty Jeśli nie określisz co najmniej jednego pola na liście pól lub jeśli pominiesz listę pól, wywołanie zwróci błąd.
  • (Opcjonalnie) Kod regionu używany do formatowania odpowiedzi.
  • (Opcjonalnie) Token sesji używany do zakończenia sesji autouzupełniania (nowej).

Przesyłanie prośby o szczegóły miejsca

W tym przykładzie określamy miejsce za pomocą identyfikatora i przekazujemy następujące parametry:

  • Identyfikator miejsca: ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Lista pól określająca zwracanie nazwy miejsca i adresu URL witryny.
  • GMSPlaceResultCallback obsługuje wynik.

Interfejs API wywołuje określoną metodę wywołania zwrotnego, przekazując atrybut GMSPlace obiektu. Jeśli miejsce nie zostanie znalezione, obiekt miejsca ma wartość nil.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

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

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

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

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

GooglePlacesSwift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Odpowiedź dotycząca szczegółów miejsca

Szczegóły miejsca zwraca GMSPlace obiekt ze szczegółowymi informacjami o tym miejscu. W obiekcie GMSPlace są wypełniane tylko pola określone na liście pól.

Oprócz pól danych obiekt GMSPlace w odpowiedź zawiera następujące funkcje składowe:

  • isOpen określa, czy dane miejsce jest w danym momencie otwarte.
  • isOpenAtDate określa, czy dane miejsce jest otwarte w danym dniu.
.

Wymagane parametry

Użyj obiektu GMSFetchPlaceRequest, aby określić wymagane parametry.

Identyfikator miejsca

Identyfikator miejsca używany w pakiecie SDK Miejsc na iOS to ten sam identyfikator, który jest używany w interfejsie Places API w pakiecie SDK Places dla Androida i innych interfejsów API Google. Każdy identyfikator miejsca może odnosić się tylko do jednego miejsca, ale jedno miejsce może mieć ich więcej jeden identyfikator miejsca.

Istnieją okoliczności, które mogą spowodować, że dane miejsce otrzyma nowy identyfikator. Może się tak na przykład zdarzyć, gdy firma przeprowadzi się w nowe miejsce.

Zamawiając miejsce, podając jego identyfikator, masz pewność, że w odpowiedzi otrzymasz zawsze to samo miejsce (jeśli miejsce ). Pamiętaj jednak, że odpowiedź może zawierać identyfikator miejsca, który inny niż w prośbie.

Lista pól

W prośbie o podanie szczegółowych informacji o miejscu należy podać dane, które mają zwracany dla obiektu GMSPlace jako maska pola. Aby zdefiniować maskę pola przekazać tablicę wartości z argumentu GMSPlaceProperty do obiektu GMSFetchPlaceRequest. Maskowanie pól to sprawdzona metoda projektowania, która pozwala uniknąć żądania zbędnych danych, które pozwala uniknąć niepotrzebnego czasu przetwarzania i naliczania opłat.

Wypełnij co najmniej jedno z tych pól:

  • Te pola aktywują kod SKU szczegółów miejsca (tylko identyfikator):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Te pola aktywują kod SKU szczegółów miejsca (tylko lokalizacja):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Te pola aktywują kod SKU informacji o miejscu (podstawowe):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Te pola aktywują kod SKU szczegółów miejsca (zaawansowane):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal GMSPlacePropertyWebsite

  • Te pola aktywują kod SKU szczegółów miejsca (preferowany):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

Poniższy przykład przekazuje listę 2 wartości pól aby wskazać, że obiekt GMSPlace zwrócony przez żądanie zawiera name i placeID pola:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

GooglePlacesSwift

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Parametry opcjonalne

Aby określić opcjonalne parametry, użyj obiektu GMSFetchPlaceRequest.

regionCode

Kod regionu używany do formatowania odpowiedzi podany jako dwuznakową wartość kodu CLDR. Ten parametr może również powodować odchylenia w wynikach wyszukiwania. Nie ma wartości domyślnej.

Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodu regionu, kod kraju został pominięty w adresie.

Większość kodów CLDR jest identyczna z kodami ISO 3166-1. z kilkoma istotnymi wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (co.uk), natomiast kod ISO 3166-1 to „gb”. (technicznie dla funkcji podmiotu „Wielkiej Brytanii i Irlandii Północnej”). Ten parametr może wpływać na wyniki w zależności od obowiązującego prawa.

sessionToken

Tokeny sesji to generowane przez użytkownika ciągi znaków, które śledzą autouzupełnianie (Nowe) jako „sesje”. Autouzupełnianie (nowość) korzysta z tokenów sesji do Pogrupować zapytanie i umieścić etapy wyboru wyszukiwania autouzupełniania w oddzielnej sesji do celów rozliczeniowych. Tokeny sesji są przekazywane do szczegółów miejsca (nowe) połączeń, które są następstwem nowych połączeń autouzupełniania. Więcej informacji: Tokeny sesji.

Wyświetl atrybucję w swojej aplikacji

Kiedy aplikacja wyświetla informacje uzyskane z: GMSPlacesClient takich jak zdjęcia i opinie, aplikacja musi też wyświetlać wymagane informacje o źródłach.

Na przykład właściwość reviews obiektu GMSPlacesClient zawiera tablicę złożoną z maks. pięciu GMSPlaceReview. obiektów. Każdy obiekt GMSPlaceReview może zawierać informacje o atrybucji lub autorach. Jeśli wyświetlasz opinię w aplikacji, musisz też podać informacje o autorze i pochodzeniu danych o pochodzeniu danych.

Więcej informacji znajdziesz w dokumentacji na temat atrybucje.