Das Places SDK for iOS unterstützt die vorhandenen Place Details. Wenn Sie mit dem vorhandenen Places SDK for iOS vertraut sind, sind bei der neuen Version von „Place Details“ die folgenden Änderungen zu beachten:
Es wird ein neues Preismodell verwendet. Preisinformationen zu allen APIs finden Sie unter Preise für das Places SDK for iOS (neu).
Die Feldmaskierung ist erforderlich. Sie müssen angeben, welche Felder in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste der zurückgegebenen Felder. Wenn Sie diese Liste weglassen, geben die Methoden einen Fehler zurück.
Rufen Sie zum Senden einer Anfrage die neue Methode
GMSPlacesClient fetchPlaceWithRequest:
auf.An die Anfrage weitergeben:
Eine Instanz der neuen Klasse
GMSFetchPlaceRequest
, in der alle Anfrageparameter definiert sind, z. B. die Orts-ID und das Sitzungstoken.Ein Callback vom Typ
GMSPlaceResultCallback
, um die Antwort zu verarbeiten.
Die Antwort enthält eine
GMSPlace
-Instanz mit Details zum Ort. Die Werte im Attributtypes
der InstanzGMSPlace
werden jetzt von Tabelle A und Tabelle B definiert.Die Antwortinstanz
GMSPlace
enthält das neue Attributreviews
vom TypGMSPlaceReview
. Wenn in Ihrer App Informationen aus derGMSPlace
-Instanz angezeigt werden, z. B. Fotos und Rezensionen, müssen auch die erforderlichen Quellenangaben eingeblendet werden.Weitere Informationen finden Sie in der Dokumentation zu Attributionen.
Die Antwortinstanz
GMSPlace
enthält die folgenden Mitgliedsfunktionen:isOpen
berechnet, ob ein Ort zum angegebenen Zeitpunkt geöffnet ist.Mit
isOpenAtDate
wird berechnet, ob ein Ort an einem bestimmten Datum geöffnet ist.
Diese Funktionen sind nur verfügbar, wenn Sie das Places SDK for iOS aktivieren. Sie sind nicht verfügbar, wenn Sie Places SDK for iOS (New) aktivieren. Weitere Informationen finden Sie unter SDK-Version auswählen.
Beispielanfrage
Bei „Place Details (New)“ stellen Sie eine Anfrage und übergeben alle Parameter in der GMSFetchPlaceRequest
-Instanz. In diesem Beispiel wird auch eine Feldmaske verwendet, sodass die Antwort nur den Anzeigenamen und die Website-URL für den Ort enthält:
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); } }];