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 (starszy), Szczegóły miejsca (nowe) wprowadza te zmiany:

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

  • Maskowanie pola jest wymagane. Musisz określić, które pola mają być zwracane 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:.

  • Przekaż do żądania:

  • Odpowiedź zawiera instancję GMSPlace z informacjami o miejscu. Wartości we właściwości types instancji GMSPlace są teraz zdefiniowane przez tabelę A i tabelę B.

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

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

  • Odpowiedź GMSPlace zawiera te funkcje składowe:

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

    • isOpenAtDate sprawdza, czy miejsce jest otwarte w danym dniu.

    Te funkcje są dostępne tylko wtedy, gdy włączysz pakiet SDK Miejsc Google na iOS. Nie są one dostępne, gdy włączysz pakiet SDK Miejsc na iOS (nowy). Więcej informacji znajdziesz w artykule Wybieranie wersji pakietu SDK.

Przykładowe żądanie

W przypadku szczegółów miejsca (nowych) wysyłasz żądanie i przekazujesz wszystkie parametry w instancji GMSFetchPlaceRequest. Ten przykład używa też maski pola, dzięki czemu odpowiedź zawiera tylko nazwę wyświetlaną i adres URL witryny 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);
  }
}];