Pakiet SDK Miejsc na iOS obsługuje istniejące szczegóły miejsca. Jeśli znasz dotychczasowy pakiet SDK Miejsc na iOS, w nowej wersji funkcji Szczegóły miejsca wprowadzono te 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ścitypes
instancjiGMSPlace
są teraz definiowane przez Tabelę A i Tabelę B.Odpowiedź
GMSPlace
zawiera nową właściwośćreviews
typuGMSPlaceReview
. Jeśli aplikacja wyświetla informacje uzyskane zGMSPlace
, 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:isOpen
określa, czy dane miejsce jest otwarte w danym momencie.isOpenAtDate
określa, czy dane miejsce jest otwarte w określonym dniu.
Te funkcje są dostępne tylko wtedy, gdy włączysz pakiet SDK Places 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ół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:
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); } }];