El SDK de Places para iOS admite los detalles de lugares existentes. Si conoces el SDK de Places existente para iOS, la nueva versión de Place Details realiza los siguientes cambios:
Usa un nuevo modelo de precios. Para obtener información sobre los precios de todas las APIs, consulta Precios del SDK de Places para iOS (nuevo).
Se requiere el enmascaramiento de campos. Debes especificar qué campos deseas que se muestren en la respuesta. No hay una lista predeterminada de campos que se muestran. Si omites esta lista, los métodos mostrarán un error.
Para realizar una solicitud, llama al nuevo método
GMSPlacesClient fetchPlaceWithRequest:
.Pasa lo siguiente a la solicitud:
Una instancia de la nueva clase
GMSFetchPlaceRequest
que define todos los parámetros de solicitud, como el ID del lugar y el token de sesión.Una devolución de llamada de tipo
GMSPlaceResultCallback
para controlar la respuesta
La respuesta contiene una instancia de
GMSPlace
con detalles sobre el lugar. Los valores de la propiedadtypes
de la instanciaGMSPlace
ahora se definen en la Tabla A y la Tabla B.La instancia
GMSPlace
de la respuesta contiene la nueva propiedadreviews
de tipoGMSPlaceReview
. Cuando en tu app se muestra información obtenida de la instancia deGMSPlace
, como fotos y opiniones, también deben exhibirse las atribuciones requeridas.Para obtener más información, consulta la documentación sobre las atribuciones.
La instancia
GMSPlace
de la 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 el SDK de Places para iOS. No están disponibles cuando habilitas el SDK de Places para iOS (nuevo). Para obtener más información, consulta Elige la versión del SDK.
Ejemplo de solicitud
Con Place Details (nuevo), realizas una solicitud y
pasas todos los parámetros en la instancia de GMSFetchPlaceRequest
. En este
ejemplo, también se 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); } }];