Esegui la migrazione a Place Details (novità)

L'SDK Places per iOS supporta i dettagli dei luoghi esistenti. Se conosci l'attuale SDK Places for iOS, la nuova versione di Dettagli dei luoghi apporta le seguenti modifiche:

  • Utilizza un nuovo modello di prezzi. Per informazioni sui prezzi di tutte le API, consulta Prezzi di Places SDK for iOS (nuovo).

  • La maschera dei campi è obbligatoria. Devi specificare i campi che 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 contenente i dettagli del luogo. I valori nella proprietà types dell'istanza GMSPlace sono ora definiti dalla Tabella A e dalla Tabella B.

  • L'istanza di risposta GMSPlace contiene la nuova proprietà reviews di tipo GMSPlaceReview. Quando l'app mostra informazioni ottenute dall'istanza GMSPlace, come foto e recensioni, deve mostrare anche le attribuzioni richieste.

    Per saperne di più, consulta la documentazione sulle attribuzioni.

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

    • isOpen calcola se un luogo è aperto al momento specificato.

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

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

Richiesta di esempio

Con la richiesta Places Details (Nuova), puoi effettuare una richiesta e trasmettere tutti i parametri nell'istanza GMSFetchPlaceRequest. Anche questo esempio utilizza una maschera di campo, pertanto la risposta include 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);
  }
}];