Places SDK for iOS supporta Place Details (legacy). Se hai familiarità con Places SDK for iOS (legacy), Place Details (New) apporta le seguenti modifiche:
Utilizza un nuovo modello di prezzi. Per informazioni sui prezzi di tutte le API, consulta Prezzi di Places SDK per iOS (nuovo).
La mascheratura dei campi è obbligatoria. Devi specificare i campi che vuoi che vengano restituiti nella risposta. Non esiste un elenco predefinito di campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.
Per effettuare una richiesta, chiama il nuovo metodo
GMSPlacesClient fetchPlaceWithRequest:
.Passa alla richiesta:
Un'istanza della nuova classe
GMSFetchPlaceRequest
che definisce tutti i parametri della richiesta, come l'ID luogo e il token di sessione.Un callback di tipo
GMSPlaceResultCallback
per gestire la risposta.
La risposta contiene un'istanza
GMSPlace
con i dettagli del luogo. I valori nella proprietàtypes
dell'istanzaGMSPlace
sono ora definiti da Tabella A e Tabella B.L'istanza di risposta
GMSPlace
contiene la nuova proprietàreviews
di tipoGMSPlaceReview
. Quando la tua app mostra informazioni ottenute dall'istanzaGMSPlace
, come foto e recensioni, deve mostrare anche le attribuzioni richieste.Per saperne di più, consulta la documentazione relativa alle attribuzioni.
L'istanza di risposta
GMSPlace
contiene le seguenti funzioni membro:isOpen
calcola se un luogo è aperto all'ora specificata.isOpenAtDate
calcola se un luogo è aperto in una determinata data.
Queste funzioni sono disponibili solo quando attivi Places SDK for iOS. Non sono disponibili quando attivi Places SDK for iOS (New). Per saperne di più, vedi Scegliere la versione dell'SDK.
Esempio di richiesta
Con Place Details (New), effettui una richiesta e
trasferisci tutti i parametri nell'istanza GMSFetchPlaceRequest
. Questo
esempio utilizza anche una maschera di campo, in modo che la risposta includa solo il nome visualizzato
e l'URL del sito web del luogo:
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); } }];