L'SDK Places per iOS fornisce alla tua app informazioni dettagliate sui luoghi, tra cui nome e indirizzo, posizione geografica specificata come coordinate di latitudine/longitudine, tipo di luogo (ad esempio un night club, un negozio di animali, un museo) e altro ancora. Per accedere a queste informazioni relative a un luogo specifico, puoi utilizzare l'ID luogo, un identificatore stabile che identifica in modo univoco un luogo.
Dettagli luogo
La classe
GMSPlace
fornisce informazioni su un luogo specifico. Puoi ottenere un oggetto GMSPlace
nei seguenti modi:
- Chiama
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
. Consulta la guida per ottenere il luogo attuale. - Chiama
GMSPlacesClient fetchPlaceFromPlaceID:
, trasmettiGMSPlaceField
, un ID luogo e un metodo di callback. Per le richieste Dettagli luogo, se non specifichi almeno un campo con una richiesta o se ometti il parametrofields
da una richiesta, verranno restituiti TUTTI i campi possibili e ti verranno addebitati i relativi costi. Consulta la guida per ottenere un luogo in base all'ID.
Quando richiedi un luogo, devi specificare i tipi di dati
dei luoghi da restituire. A tale scopo, passa un elemento GMSPlaceField
, specificando i tipi di dati da restituire. Questo è un aspetto importante, perché influisce sul costo di ogni richiesta.
Poiché i risultati relativi ai dati dei luoghi non possono essere vuoti, vengono restituiti
solo i risultati con dati (ad esempio, se un luogo richiesto non ha
foto, il campo photos
non sarà presente nel risultato).
L'esempio seguente trasmette un elenco di due valori dei campi per specificare i dati restituiti da una richiesta:
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))!
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
Scopri di più sui campi luogo. Per ulteriori informazioni su come vengono fatturate le richieste di dati del luogo, consulta Utilizzo e fatturazione.
La classe
GMSPlace
può contenere i seguenti dati di luogo:
name
: il nome del luogo.placeID
: l'identificatore di testo del luogo. Scopri di più sugli ID luogo nel resto di questa pagina.coordinate
: la posizione geografica del luogo, specificata come coordinate di latitudine e longitudine.phoneNumber
: il numero di telefono del luogo, in formato internazionale.formattedAddress
: l'indirizzo leggibile dalla sede.Spesso si tratta dell'indirizzo postale. Tieni presente che alcuni paesi, come il Regno Unito, non consentono la distribuzione di indirizzi postali reali a causa di limitazioni delle licenze.
L'indirizzo formattato è logicamente composto da uno o più componenti degli indirizzi. Ad esempio, l'indirizzo "111 8th Avenue, New York, NY" è composto dai seguenti componenti: "111" (il numero civico), "8th Avenue" (il percorso), "New York" (la città) e "NY" (lo stato negli Stati Uniti).
Non analizzare l'indirizzo formattato in modo programmatico. Utilizza invece i singoli componenti dell'indirizzo, che la risposta dell'API include oltre al campo dell'indirizzo formattato.
openingHours
: gli orari di apertura del luogo (rappresentati daGMSOpeningHours
). Chiama il numeroGMSOpeningHours.weekdayText
per ottenere un elenco di stringhe localizzate degli orari di apertura giornalieri per la settimana. ChiamaGMSOpeningHours.Periods
per restituire un elenco diGMSPeriod
con informazioni più dettagliate equivalenti ai dati forniti daweekdayText
. Nota: se un luogo è sempre aperto, il periodo di tempo viene rappresentato come domenica a mezzanotte e il valorecloseEvent
è null.addressComponents
: un array di oggettiGMSAddressComponent
che rappresentano i componenti dell'indirizzo di un luogo. Questi componenti vengono forniti allo scopo di estrarre informazioni strutturate sull'indirizzo di un luogo, ad esempio per trovare la città in cui si trova. Non utilizzare questi componenti per la formattazione dell'indirizzo, ma piuttosto la proprietàformattedAddress
, che fornisce un indirizzo formattato locale.Prendi nota dei seguenti fatti relativi all'array di
addressComponents
:- La matrice dei componenti dell'indirizzo può contenere più componenti di
formattedAddress
. - L'array non include necessariamente tutte le entità politiche che contengono un indirizzo, ad eccezione di quelle incluse nell'elemento
formattedAddress
. - Non è garantito che il formato della risposta rimanga lo stesso tra le richieste. In particolare, il numero di
addressComponents
varia in base all'indirizzo richiesto e può cambiare nel tempo per lo stesso indirizzo. Un componente può cambiare la posizione nella matrice. Il tipo del componente può cambiare. Potresti non trovare un determinato componente in una risposta successiva.
- La matrice dei componenti dell'indirizzo può contenere più componenti di
userRatingsTotal
: rappresenta il numero di recensioni relative alla valutazione del luogo.
La classe GMSPlace
contiene le seguenti funzioni per i membri:
-
isOpen
calcola se un luogo è aperto in un determinato momento, in base aopeningHours
eUTCOffsetMinutes
, oltre alla data e all'ora correnti. isOpenAtDate
calcola se un luogo è aperto in una determinata data, in base aopeningHours
eUTCOffsetMinutes
, oltre alla data e all'ora correnti.
Quando utilizzi queste funzioni per ottenere orari e/o date di apertura, la richiesta originale
fetchPlaceFromPlaceID:
o findPlaceLikelihoodsFromUserLocationWithPlaceFields:
deve specificare SIA i campi GMSPlaceFieldOpeningHours
che GMSPlaceFieldUTCOffsetMinutes
. Se uno di questi campi non è presente, l'oggetto GMSPlace
risultante non conterrà orari o date di apertura e la chiamata restituirà
GMSPlaceOpenStatusUnknown
. Per garantire risultati precisi, richiedi i campi GMSPlaceFieldBusinessStatus
e GMSPlaceFieldUTCOffsetMinutes
nella richiesta di luogo originale. Se non richiesto, si presume che l'attività sia operativa.
isOpen
con Dettagli luogo.
Ottieni un luogo in base all'ID
L'ID luogo è un identificatore testuale che identifica in modo univoco un luogo. Nell'SDK Places per iOS, puoi recuperare l'ID di un luogo da un oggetto GMSPlace
. Puoi archiviare l'ID luogo e utilizzarlo di nuovo per recuperare l'oggetto GMSPlace
.
Per trovare un luogo tramite ID, chiama
GMSPlacesClient
fetchPlaceFromPlaceID:
, trasmettendo i seguenti parametri:
- Una stringa contenente un ID luogo.
- Uno o più
GMSPlaceField
, specificando i tipi di dati da restituire. - Un token di sessione se la chiamata viene effettuata per concludere una query di completamento automatico. Altrimenti, passa nil.
- Un elemento
GMSPlaceResultCallback
per gestire il risultato.
L'API richiama il metodo di callback specificato, trasmettendo un oggetto
GMSPlace
. Se il luogo non viene trovato, l'oggetto luogo è null.
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
Attribuzioni display nella tua app
Quando nell'app vengono mostrate informazioni ottenute da
GMSPlacesClient
lookUpPlaceID:callback:
, devono essere indicate anche le attribuzioni.
Consulta la documentazione sulle attribuzione.
Scopri di più sugli ID luogo
L'ID luogo utilizzato nell'SDK Places per iOS è lo stesso identificatore usato nell'API Places, nell'SDK Places per Android e in altre API Google.
Ogni ID luogo può fare riferimento a un solo luogo, ma un singolo luogo può avere più un ID luogo.
In alcuni casi, è possibile che un luogo riceva un nuovo ID luogo. Questo può succedere, ad esempio, se un'attività si trasferisce in una nuova sede.
Quando richiedi un luogo specificando un ID luogo, puoi avere la certezza che riceverai sempre lo stesso luogo nella risposta (se il luogo esiste ancora). Tuttavia, tieni presente che la risposta potrebbe contenere un ID luogo diverso da quello indicato nella richiesta.
Per scoprire di più, consulta la panoramica sull'ID luogo.