Migra a Place Details (nuevo)

El SDK de Places para iOS admite Place Details. Si conoces el SDK de Places para iOS existente, nueva versión de Place Details realiza los siguientes cambios:

  • Usa un modelo de precios nuevo. Para obtener información sobre los precios de todas las APIs, consulta Precios del SDK de Places para iOS (nuevo).

  • El enmascaramiento de campo es obligatorio. Debes especificar qué campos quieres que se devuelvan en la respuesta. No hay una lista predeterminada de los campos que se muestran. Si omites esta lista, los métodos devuelven un error.

  • Para realizar una solicitud, llama al nuevo GMSPlacesClient fetchPlaceWithRequest: .

  • Pasa a la solicitud:

    • Una instancia del nuevo GMSFetchPlaceRequest que define todos los parámetros de solicitud, como el ID de lugar y token de sesión.

    • Una devolución de llamada de tipo GMSPlaceResultCallback para manejar la respuesta.

  • La respuesta contiene un GMSPlace que contiene detalles sobre el lugar. Los valores en types de la instancia de GMSPlace ahora están definidas por En la Tabla A y Tabla B.

  • La instancia GMSPlace de respuesta contiene el nuevo reviews. Propiedad de tipo GMSPlaceReview. Cuando tu app muestre información obtenida de GMSPlace como fotos y opiniones, la aplicación también debe mostrar los permisos atribuciones de atributos.

    Para obtener más información, consulta la documentación sobre atribuciones.

  • La instancia GMSPlace de respuesta contiene las siguientes funciones de miembro:

    • isOpen calcula si un lugar está abierto en un momento determinado.

    • isOpenAtDate calcula si un lugar está abierto en una fecha determinada.

    Estas funciones solo están disponibles cuando habilitas SDK de Places para iOS: No están disponibles cuando Habilita el SDK de Places para iOS (nuevo). Para obtener más información, consulta Elige tu versión del SDK.

Ejemplo de solicitud

Con Place Details (nuevo), puedes realizar una solicitud y Pasar todos los parámetros de la instancia GMSFetchPlaceRequest Esta El ejemplo también usa una máscara de campo para que la respuesta solo incluya el nombre visible y la URL del sitio web del lugar:

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);
  }
}];