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

Pakiet SDK Miejsc na iOS obsługuje szczegóły miejsca (starsza wersja). Jeśli znasz pakiet Places SDK na iOS (starsza wersja), dane miejsca (nowa wersja) wprowadzają następujące zmiany:

  • Korzysta z nowego modelu cenowego. Informacje o cenach wszystkich interfejsów API znajdziesz w artykule Ceny pakietu Places SDK na iOS (nowy).

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

  • Aby wysłać prośbę, wywołaj nową metodę GMSPlacesClient fetchPlaceWithRequest:.

  • Przekazywanie żą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 zawierającą szczegóły dotyczące miejsca. Wartości w właściwości types instancji GMSPlace są teraz definiowane przez Tabelę ATabelę B.

  • Odpowiedź GMSPlace zawiera nową właściwość reviews typu GMSPlaceReview. Jeśli aplikacja wyświetla informacje uzyskane z instancji GMSPlace, takie jak zdjęcia i opinie, musi też wyświetlać wymagane informacje o źródle.

    Więcej informacji znajdziesz w dokumentacji dotyczącej przypisywania zasług.

  • Obiekt odpowiedzi GMSPlace zawiera te funkcje członkowskie:

    • isOpenokreśla, czy dane miejsce jest otwarte w danym momencie.

    • isOpenAtDateokreśla, czy dane miejsce jest otwarte w określonym dniu.

    Te funkcje są dostępne tylko po włączeniu pakietu Places SDK na iOS. Nie są one dostępne, gdy włączysz pakiet SDK Miejsc na iOS (nowy). Więcej informacji znajdziesz w artykule Wybór wersji pakietu SDK.

Przykładowe żądanie

W przypadku Szczegóły miejsca (nowa wersja) wysyłasz żądanie i przekazujesz wszystkie parametry w przypadku GMSFetchPlaceRequest. W tym przykładzie użyto też maski pola, więc odpowiedź zawiera tylko nazwę wyświetlaną i adres URL witryny danego miejsca:

// 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))")
})
// 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);
  }
}];