Defina as configurações do app para que ele possa usar a API Geospatial.
Pré-requisitos
Verifique se você entendeu os conceitos fundamentais de RA e como configurar uma sessão do ARCore antes de continuar.
Se você quiser executar um app de amostra que demonstre a funcionalidade descrita aqui, consulte o Guia de início rápido do ARCore Geospatial para iOS.
Consulte a Introdução à API Geospatial para mais informações sobre a API Geospatial.
Se você não tem experiência no desenvolvimento com o ARCore, consulte os Primeiros passos para ver 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, ative a API ARCore em um projeto novo ou atual do Google Cloud. Esse serviço é responsável por hospedar, armazenar e resolver âncoras geoespaciais.
É preferível usar autorização sem chave, mas a autorização por chave de API também é aceita.
Adicionar bibliotecas necessárias ao app
Depois de autorizar o app a chamar a API ARCore, adicione bibliotecas para ativar os recursos geoespaciais no app.
Atualize oPodfile
do seu app para incluir o SDK do ARCore e o controle de versão do iOS com suporte. Para isso, siga estas etapas:
Adicione os seguintes
platform
epod
aoPodfile
do projeto:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.44.0'
Também é possível especificar
platform :ios, '10.0'
se você quiser oferecer suporte ao iOS 10. No entanto, a API Geospatial só funcionará no momento da execução no iOS >= 11.Abra uma janela de Terminal e execute
pod install
na pasta em que seu projeto do Xcode está.Isso gera um arquivo
.xcworkspace
que você usa para criar e executar o app.
Verifique se o ambiente de desenvolvimento atende aos requisitos do SDK do ARCore, conforme descrito 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 são compatíveis com a API Geospatial, conforme descrito no quickstart.
Use
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 configurar a sessão:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(aplicável a versões 14 ou mais recentes do iOS)
Verificar a disponibilidade geoespacial na localização atual do dispositivo
Como a API Geospatial usa uma combinação de VPS e GPS para determinar uma transformação geoespacial, a API pode ser usada desde que o dispositivo seja capaz de determinar sua localização. Em áreas com baixa precisão de GPS, como espaços internos e ambientes urbanos densos, a API vai usar a cobertura de VPS para gerar transformações de alta precisão. Em condições típicas, espera-se que o VPS forneça precisão de posição de aproximadamente 5 metros e precisão de rotação 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 aérea, o GPS pode ser suficiente para gerar uma transformação com alta precisão.
A seguir
- Use a transformação geoespacial da câmera do dispositivo para determinar o local exato do dispositivo do usuário no mundo real.
- Verifique a disponibilidade do VPS no local de um dispositivo.