Place Details

Seleccionar plataforma: Android iOS JavaScript Servicio web

El SDK de Places para iOS proporciona a tu app información enriquecida sobre los lugares, como el nombre y la dirección del lugar, la ubicación geográfica especificada como coordenadas de latitud y longitud, el tipo de lugar (como un club nocturno, una tienda de mascotas, un museo), entre otros. Para acceder a esta información de un sitio específico, puedes usar el ID de lugar, un identificador estable que identifica un lugar de forma exclusiva.

Detalles del lugar

La clase GMSPlace proporciona información sobre un lugar específico. Puedes obtener un objeto GMSPlace de las siguientes maneras:

Campos de lugar

Cuando solicitas un sitio, debes especificar qué tipos de datos del lugar se deben mostrar. Para ello, pasa un GMSPlaceField y especifica los tipos de datos que se mostrarán. Esta es una consideración importante, ya que afectará el costo de cada solicitud. Debido a que los resultados de datos del lugar no pueden estar vacíos, solo se muestran los resultados del sitio con datos (por ejemplo, si un sitio solicitado no tiene fotos, el campo photos no estará presente en el resultado). Puedes especificar uno o más de los siguientes campos:

  • GMSPlaceFieldName
  • GMSPlaceFieldPlaceID
  • GMSPlaceFieldPlusCode
  • GMSPlaceFieldBusinessStatus
  • GMSPlaceFieldCoordinate
  • GMSPlaceFieldOpeningHours
  • GMSPlaceFieldPhoneNumber
  • GMSPlaceFieldFormattedAddress
  • GMSPlaceFieldRating
  • GMSPlaceFieldPriceLevel
  • GMSPlaceFieldTypes
  • GMSPlaceFieldWebsite
  • GMSPlaceFieldViewport
  • GMSPlaceFieldAddressComponents
  • GMSPlaceFieldPhotos
  • GMSPlaceFieldUserRatingsTotal
  • GMSPlaceFieldIconImageURL
  • GMSPlaceFieldIconBackgroundColor
  • GMSPlaceFieldUTCOffsetMinutes
  • GMSPlaceFieldAll

Obtén más información sobre los campos de lugares. Si deseas consultar más detalles sobre cómo se facturan las solicitudes de datos de Places, consulta Uso y facturación.

La clase GMSPlace puede contener los siguientes datos de lugar:

  • name: el nombre del lugar.
  • placeID: el identificador textual del lugar. Obtén más información sobre los ID de lugar en el resto de esta página.
  • coordinate: la ubicación geográfica del lugar, especificada como coordenadas de latitud y longitud.
  • businessStatus: el estado operativo del lugar, si es una empresa. Puede contener uno de los siguientes valores: GMSBusinessStatusOperational, GMSBusinessStatusClosedTemporarily, GMSBusinessStatusClosedPermanently y GMSBusinessStatusUnknown.
  • phoneNumber: el número de teléfono del lugar, en formato internacional.
  • formattedAddress: la dirección legible de esta ubicación.

    A menudo, esta dirección equivale a la "dirección postal". Ten en cuenta que, en algunos países, como los que integran el Reino Unido, no se permite la distribución de direcciones postales verdaderas debido a restricciones de licencia.

    La dirección con formato está compuesta, de manera lógica, por uno o más componentes de dirección. Por ejemplo, la dirección "111 8th Avenue, New York, NY" consta de los siguientes componentes: "111" (número de la calle), "8th Avenue" (calle), "New York" (ciudad) y "NY" (estado de los EE.UU.).

    No analices la dirección con formato de forma programática. En cambio, utiliza los componentes individuales de la dirección, que la respuesta de la API incluye además del campo de dirección con formato.

  • rating: es una calificación agregada del lugar, que se muestra como un número de punto flotante con valores que van de 1.0 a 5.0, según las opiniones agregadas de los usuarios.
  • openingHours: el horario de atención del lugar (como lo representa GMSOpeningHours). Llama al GMSOpeningHours.weekdayText para obtener una lista de strings localizadas del horario de atención diario de la semana. Llama a GMSOpeningHours.Periods para mostrar una lista de GMSPeriod con información más detallada equivalente a los datos proporcionados por weekdayText. Nota: Si un lugar siempre está abierto, el período se representa como domingo a la medianoche y el closeEvent es nulo.
  • plusCode: es la representación de código plus de la ubicación del lugar.
  • priceLevel: el nivel de precio de este lugar, que se muestra como un número entero con valores que van de 0 (el más económico) a 4 (el más costoso).
  • types: es una lista de tipos de sitios que caracterizan este lugar. Este arreglo puede contener varios valores o puede estar vacío. Se pueden ingresar valores nuevos sin aviso previo. Consulta la lista de tipos admitidos.
  • website: el URI del sitio web del lugar, si se conoce. Este es el sitio web que mantienen el negocio o la entidad asociada con el lugar.
  • attributions: Un objeto NSAttributedString que contiene las atribuciones que debes mostrar al usuario si tu app usa los detalles del lugar recuperados desde el SDK de Places para iOS. Para obtener detalles sobre cómo recuperar y mostrar atribuciones, consulta la guía de atribuciones.
  • addressComponents: Es un arreglo de objetos GMSAddressComponent que representan componentes de la dirección de un lugar. Estos componentes se proporcionan con el fin de extraer información estructurada sobre la dirección de un lugar, por ejemplo, para encontrar la ciudad en la que se encuentra un lugar. No uses estos componentes para el formato de dirección; en su lugar, usa la propiedad formattedAddress, que proporciona una dirección con formato localizada.

    Ten en cuenta los siguientes datos sobre el arreglo addressComponents:

    • El arreglo de componentes de dirección puede contener más componentes que formattedAddress.
    • El arreglo no necesariamente incluye todas las entidades políticas que contienen una dirección, además de las incluidas en el formattedAddress.
    • No se garantiza que el formato de la respuesta siga siendo el mismo entre solicitudes. En particular, la cantidad de addressComponents varía según la dirección solicitada y puede cambiar con el tiempo para la misma dirección. Un componente puede cambiar de posición en el array. El tipo de componente puede cambiar. Es posible que falte un componente en particular en una respuesta posterior.
  • userRatingsTotal: Representa la cantidad de opiniones que conforman la calificación del lugar.
  • GMSPlaceFieldIconImageURL: La URL de un ícono que representa el tipo de lugar (formato PNG).
  • GMSPlaceFieldIconBackgroundColor: el color de fondo para el ícono de tipo de lugar.
  • UTCOffsetMinutes: el desplazamiento de zona horaria del lugar, en minutos.

La clase GMSPlace contiene las siguientes funciones de miembro:

  • isOpen calcula si un lugar está abierto en un horario determinado, en función de openingHours y UTCOffsetMinutes, y la fecha y hora actuales.
  • isOpenAtDate calcula si un lugar está abierto en una fecha determinada, en función de openingHours y UTCOffsetMinutes, y la fecha y hora actuales.
  • Cuando se usan estas funciones para obtener los horarios de apertura o las fechas, la solicitud original fetchPlaceFromPlaceID: o findPlaceLikelihoodsFromUserLocationWithPlaceFields: debe especificar los campos GMSPlaceFieldOpeningHours y GMSPlaceFieldUTCOffsetMinutes. Si falta alguno de estos campos, el objeto GMSPlace resultante no contendrá fechas ni horas de apertura, y la llamada mostrará GMSPlaceOpenStatusUnknown. Para garantizar resultados precisos, solicita los campos GMSPlaceFieldBusinessStatus y GMSPlaceFieldUTCOffsetMinutes en tu solicitud de lugar original. Si no se solicita, se supone que la empresa está operativa.

    Consulta este video para obtener información sobre cómo usar isOpen con Place Details.

Obtener un sitio por id.

Un ID de lugar es un identificador textual que identifica de forma exclusiva un lugar. En el SDK de Places para iOS, puedes recuperar el ID de un lugar desde un objeto GMSPlace. Puedes almacenar el ID de lugar y usarlo para recuperar el objeto GMSPlace más tarde.

Para obtener un lugar por ID, llama a GMSPlacesClient fetchPlaceFromPlaceID: y pasa los siguientes parámetros:

  • Una string que contiene un ID de lugar.
  • Uno o más GMSPlaceField, que especifican los tipos de datos que se mostrarán
  • Un token de sesión si se realiza la llamada para finalizar una consulta de autocompletado. De lo contrario, pase el valor nulo.
  • Un GMSPlaceResultCallback para manejar el resultado

La API invoca el método de devolución de llamada especificado y pasa un objeto GMSPlace. Si no se encuentra el sitio, el objeto de sitio es nil.

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

Mostrar atribuciones en tu aplicación

Cuando tu app muestra información obtenida de GMSPlacesClient lookUpPlaceID:callback:, también debe mostrar atribuciones. Consulta la documentación sobre las atribuciones.

Más información sobre los id. de sitio

El ID de lugar que se usa en el SDK de Places para iOS es el mismo que se usa en la API de Places, el SDK de Places para Android y otras API de Google.

Cada id. de sitio puede referirse a un solo sitio, pero un solo sitio puede tener más de un id. de sitio.

Existen circunstancias en las que un sitio puede obtener un nuevo id. de sitio. Esto, por ejemplo, puede suceder si un negocio se muda a otro lugar.

Cuando solicitas un sitio mediante la especificación de un id. de sitio, puedes estar seguro de que siempre recibirás el mismo sitio en la respuesta (si el sitio aún existe). Sin embargo, ten en cuenta que la respuesta puede contener un id. de sitio diferente del que aparece en tu solicitud.

Para obtener más información, consulta la descripción general del ID de lugar.