Esegui la migrazione a Place Details (novità)

L'SDK Places per iOS supporta l'elemento Place Details (Dettagli luogo) esistente. Se hai dimestichezza con l'SDK Places per iOS esistente, la nuova versione di Place Details apporta le seguenti modifiche:

  • Utilizza un nuovo modello di determinazione del prezzo. Per informazioni sui prezzi di tutte le API, vedi Prezzi per Places SDK for iOS (nuovi).

  • Il mascheramento dei campi è obbligatorio. Devi specificare quali campi vuoi che vengano restituiti nella risposta. Non esiste un elenco predefinito dei campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.

  • Per effettuare una richiesta, chiama il nuovo metodo GMSPlacesClient fetchPlaceWithRequest:.

  • Passa alla richiesta:

  • La risposta contiene un'istanza GMSPlace con i dettagli sul luogo. I valori nella proprietà types dell'istanza GMSPlace sono ora definiti dalla Tabella A e dalla Tabella B.

  • L'istanza della risposta GMSPlace contiene la nuova proprietà reviews di tipo GMSPlaceReview. Quando la tua app mostra informazioni ottenute dall'istanza GMSPlace, ad esempio foto e recensioni, deve mostrare anche le attribuzioni obbligatorie.

    Per ulteriori informazioni, consulta la documentazione sulle attribuzioni.

  • L'istanza GMSPlace della risposta contiene le seguenti funzioni membro:

    • isOpen calcola se un luogo è aperto in un determinato momento.

    • isOpenAtDate calcola se un luogo è aperto in una determinata data.

    Queste funzioni sono disponibili solo se attivi l'SDK Places per iOS. Non sono disponibili quando attivi l'SDK Places per iOS (nuovo). Per maggiori informazioni, consulta Scegliere la versione dell'SDK.

Esempio di richiesta

Con Place Details (novità), effettui una richiesta e passi 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, .website]

// Create the GMSFetchPlaceRequest instance.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: fields)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(place.name)")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest instance.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: fields];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error == null) {
    NSLog(@"Place Found: %@", place.name);
  }
}];