Pakiet SDK Miejsc na iOS obsługuje szczegóły miejsca (starsza wersja). Jeśli znasz pakiet Places SDK na iOS (starsza wersja), 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:
Instancja nowej klasy
GMSFetchPlaceRequest
definiująca wszystkie parametry żądania, takie jak identyfikator miejsca i token sesji.Wywołanie zwrotne typu
GMSPlaceResultCallback
do obsługi odpowiedzi.
Odpowiedź zawiera instancję
GMSPlace
z informacjami o miejscu. Wartości we właściwościtypes
instancjiGMSPlace
są teraz zdefiniowane przez tabelę A i tabelę B.Odpowiedź
GMSPlace
zawiera nową właściwośćreviews
typuGMSPlaceReview
. Gdy aplikacja wyświetla informacje uzyskane z instancjiGMSPlace
, 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
sprawdza, 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); } }];