Ativar a API Geospatial no app iOS

Defina as configurações do app para que ele possa usar a API Geospatial.

Pré-requisitos

Entenda os conceitos fundamentais de RA. e como configurar uma sessão do ARCore antes de continuar.

Se você quiser executar um app de exemplo que demonstre a funcionalidade descrita aqui, consulte Guia de início rápido do ARCore Geospatial para iOS.

Consulte a Introdução à API Geospatial para conhecer informações sobre a API Geospatial.

Se você está começando a desenvolver com o ARCore, consulte Primeiros passos para obter informações sobre requisitos de software e hardware, pré-requisitos e outras informações específicas das plataformas que você está usando.

Ativar a API ARCore

Antes de usar o Sistema de Posicionamento Visual (VPS, na sigla em inglês) no seu app, você precisa Ative a API ARCore em um projeto novo ou atual do Google Cloud. Esse serviço é responsável pela hospedar, armazenar e resolver âncoras geoespaciais.

A autorização sem chave é preferível, mas a autorização de chave de API também é aceita.

Adicionar as bibliotecas necessárias ao app

Depois de autorizar seu app a chamar a API ARCore, você precisa adicionar bibliotecas ao ativar recursos geoespaciais no app.

Atualize o Podfile do seu app para incluir o SDK do ARCore e o iOS compatível o controle de versões. Para fazer isso:

  1. Adicione os seguintes platform e pod ao seu Podfile do projeto:

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

    Também é possível especificar platform :ios, '10.0', caso você queira oferecer suporte ao iOS 10, mas a API Geospatial só funciona durante a execução no iOS 11 ou mais recente.

  2. Abra uma janela do Terminal e execute pod install na pasta em que seu projeto Xcode existe.

    Isso gera um arquivo .xcworkspace, que você usa para criar e executar o app.

Certifique-se de que seu ambiente de desenvolvimento atenda aos requisitos do SDK do ARCore, pois descritos no Guia de início rápido.

Ativar recursos geoespaciais na configuração da sessão

Verificar a compatibilidade do dispositivo

Nem todos os dispositivos com suporte ao ARCore também oferecem suporte à API Geospatial, como descritos no guia de início rápido.

Usar GARSession.isGeospatialModeSupported: para verificar o dispositivo, da seguinte maneira:

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

Pedir permissões de localização ao usuário durante a execução

Seu app precisa solicitar as seguintes permissões de localização durante a execução antes de a configuração da sessão:

Conferir a disponibilidade geoespacial no local atual do dispositivo

Como a API Geospatial usa uma combinação de VPS e GPS para determinar uma transformação Geospatial, a API pode ser usada desde que o dispositivo seja capaz de determinar a localização dela. Em áreas com baixa precisão do GPS, como espaços internos e ambientes urbanos densos, a API contará com a cobertura do VPS para gerar transformações de alta precisão. Em condições típicas, o VPS pode fornecer precisão posicional de aproximadamente 5 metros e precisão rotacional de 5 graus. Use GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: para determinar se um determinado local tem cobertura de VPS.

A API Geospatial também pode ser usada em áreas que não têm cobertura de VPS. Em ambientes externos com pouca ou nenhuma obstrução suspensa, o GPS pode ser suficiente para gerar uma transformação com alta precisão.

A seguir