Pakiet SDK Miejsc na iOS obsługuje szczegóły miejsca (starsza wersja). Jeśli znasz pakiet SDK Miejsc 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 (nowy).
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
GMSFetchPlaceRequestdefiniująca wszystkie parametry żądania, takie jak identyfikator miejsca i token sesji.Wywołanie zwrotne typu
GMSPlaceResultCallbackdo obsługi odpowiedzi.
Odpowiedź zawiera instancję
GMSPlacez informacjami o miejscu. Wartości we właściwościtypesinstancjiGMSPlacesą teraz zdefiniowane przez tabelę A i tabelę B.Odpowiedź
GMSPlacezawiera nową właściwośćreviewstypuGMSPlaceReview. 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ź
GMSPlacezawiera te funkcje składowe:isOpenokreśla, czy miejsce jest otwarte w danym momencie.isOpenAtDatesprawdza, 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); } }];