Przenieś do Szczegółów miejsca (nowość)

Pakiet SDK Miejsc na iOS obsługuje dotychczasowe szczegóły miejsca. Jeśli znasz już aktualny pakiet SDK Miejsc na iOS, w nowej wersji Szczegóły miejsca wprowadziliśmy te zmiany:

  • Używa nowego modelu cenowego. Informacje o cenach wszystkich interfejsów API znajdziesz w artykule Cennik pakietu Places SDK na iOS (nowego).

  • Maskowanie pól jest wymagane. Musisz określić, które pola mają być zwracane w odpowiedzi. Nie ma domyślnej listy zwróconych pól. Jeśli pominiesz tę listę, metody zwrócą błąd.

  • Aby wysłać żądanie, wywołaj nową metodę GMSPlacesClient fetchPlaceWithRequest:.

  • Przejdź do żądania:

    • Instancja nowej klasy GMSFetchPlaceRequest, która definiuje wszystkie parametry żądania, takie jak identyfikator miejsca i token sesji.

    • Wywołanie zwrotne typu GMSPlaceResultCallback do obsługi odpowiedzi.

  • Odpowiedź zawiera instancję GMSPlace ze szczegółowymi informacjami o tym miejscu. Wartości we właściwości types instancji GMSPlace są teraz zdefiniowane w tabeli A i tabeli B.

  • Instancja odpowiedzi GMSPlace zawiera nową właściwość reviews typu GMSPlaceReview. Gdy aplikacja wyświetla informacje uzyskane z instancji GMSPlace, np. zdjęcia i opinie, musi też wyświetlać wymagane atrybucje.

    Więcej informacji znajdziesz w dokumentacji dotyczącej atrybucji.

  • Instancja odpowiedzi GMSPlace zawiera te funkcje składowe:

    • isOpen oblicza, czy dane miejsce jest w danym momencie otwarte.

    • isOpenAtDate oblicza, czy dane miejsce jest otwarte w danym dniu.

    Te funkcje są dostępne tylko po włączeniu pakietu SDK Miejsc na iOS. Nie są one dostępne, jeśli włączysz pakiet SDK Miejsc na iOS (nowość). Więcej informacji znajdziesz w sekcji Wybieranie wersji pakietu SDK.

Przykładowe żądanie

W przypadku szczegółów miejsca (nowe) przesyłasz żądanie i przekazujesz wszystkie parametry w instancji GMSFetchPlaceRequest. W tym przykładzie zastosowano też maskę pola, więc odpowiedź zawiera tylko wyświetlaną nazwę i adres URL witryny danego miejsca:

Swift

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

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

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

client.fetchPlaceWithRequest(fetchPlaceRequest: 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 *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields 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);
  }
}];