Habilita la API de Geospatial en tu app para iOS

Configura la app para que pueda usar la API de Geospatial.

Requisitos previos

Asegúrate de comprender los conceptos fundamentales de la RA y cómo configurar una sesión de ARCore antes de continuar.

Si quieres ejecutar una app de ejemplo que demuestre la funcionalidad que se describe aquí, consulta la Guía de inicio rápido de Geospatial de ARCore para iOS.

Consulta la Introducción a la API de Geospatial para obtener más información sobre la API de Geospatial.

Si es la primera vez que desarrollas con ARCore, consulta Cómo comenzar para obtener información sobre los requisitos de software y hardware, los requisitos previos y otra información específica de las plataformas que usas.

Habilita la API de ARCore

Antes de usar el sistema de posicionamiento visual (VPS) en tu app, primero debes habilitar la API de ARCore en un proyecto de Google Cloud nuevo o existente. Este servicio se encarga de alojar, almacenar y resolver las anclas geoespaciales.

Se prefiere la autorización sin llave, pero también se admite la autorización de la clave de API.

Agrega las bibliotecas necesarias a tu app

Después de autorizar a tu app para que llame a la API de ARCore, debes agregar bibliotecas para habilitar las funciones geoespaciales en tu app.

Actualiza el Podfile de tu app para que incluya el SDK de ARCore y el control de versiones de iOS compatible. Para ello, sigue estos pasos:

  1. Agrega los siguientes platform y pod al Podfile de tu proyecto:

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.46.0'
    

    También puedes especificar platform :ios, '10.0' si deseas admitir iOS 10, pero ten en cuenta que la API de Geospatial solo funcionará en el entorno de ejecución en iOS >= 11.

  2. Abre una ventana de Terminal y ejecuta pod install desde la carpeta en la que se encuentra tu proyecto de Xcode.

    Esto genera un archivo .xcworkspace que usas para compilar y ejecutar la app.

Asegúrate de que tu entorno de desarrollo cumpla con los requisitos del SDK de ARCore, como se describe en la Guía de inicio rápido.

Habilita las funciones geoespaciales en la configuración de la sesión

Cómo verificar la compatibilidad del dispositivo

No todos los dispositivos que admiten ARCore también admiten la API de Geospatial, como se describe en la Guía de inicio rápido.

Usa GARSession.isGeospatialModeSupported: para verificar el dispositivo, como se muestra a continuación:

if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
  [self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
  return;
}

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
  [self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
                                                  (int)error.code]];
  return;
}

Cómo solicitar permisos de ubicación al usuario durante el tiempo de ejecución

La app debe solicitar los siguientes permisos de ubicación durante el tiempo de ejecución, antes de configurar la sesión:

Cómo verificar la disponibilidad geoespacial en la ubicación actual del dispositivo

Debido a que la API de Geospatial usa una combinación de VPS y GPS para determinar una transformación geoespacial, la API se puede usar siempre y cuando el dispositivo pueda determinar su ubicación. En áreas con baja precisión del GPS, como espacios interiores y entornos urbanos densos, la API se basará en la cobertura de VPS para generar transformaciones de alta precisión. En condiciones típicas, se espera que la VPS proporcione una precisión de posición de aproximadamente 5 metros y una precisión de rotación de 5 grados. Usa GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: para determinar si una ubicación determinada tiene cobertura de VPS.

La API de Geospatial también se puede usar en áreas que no tienen cobertura VPS. En entornos al aire libre con pocas obstrucciones elevadas o ninguna, el GPS puede ser suficiente para generar una transformación con alta precisión.

¿Qué sigue?