A API Geospatial usa uma combinação de dados de VPS e GPS para gerar transformações geoespaciais de alta precisão. A API pode ser usada em qualquer lugar onde o dispositivo possa determinar a 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 ambientes externos com poucas ou nenhuma obstrução aérea, a API Geospatial pode usar os dados de localização de GPS disponíveis para gerar transformações geoespaciais com alta precisão.
Você pode determinar a disponibilidade do VPS em uma determinada posição horizontal antes do início da sessão de RA e usá-la para criar experiências mais específicas, por exemplo, para apresentar um botão "Enter AR" somente quando o VPS estiver disponível.
Ativar a API ARCore
Seu app precisa ativar a API ARCore para verificar a disponibilidade do VPS.
Verificar a disponibilidade de VPS no seu app
A API Geospatial pode ser usada em qualquer lugar em que o dispositivo possa determinar a própria localização. Se a experiência de RA depender da cobertura do VPS, você poderá usar o GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
para acessar uma GARVPSAvailabilityFuture
, uma tarefa assíncrona que verifica a disponibilidade do VPS em uma determinada posição horizontal.
Quando tiver o GARVPSAvailabilityFuture
, você poderá conferir o resultado pesquisando ou com um callback.
Pesquisar o resultado
Use GARFuture.state
para ver o estado da Future
. Há três estados diferentes:
GARFutureStatePending
: a operação ainda não foi concluída. Portanto, nenhum resultado é conhecido.GARFutureStateCancelled
: a operação foi cancelada porGARFuture#cancel
. Os callbacks registrados nunca serão chamados.GARFutureStateDone
: a operação foi concluída. UseGARVPSAvailabilityFuture.result
para ver o resultado.
Continue verificando GARFuture.state
até que a tarefa seja concluída.
Receber o resultado usando um callback
Também é possível receber o resultado de um Future
usando um callback. Use GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
e forneça um completionHandler
. Esse completionHandler
será chamado na linha de execução principal logo depois que o Future
ficar com o estado GARFutureStateDone
.
Cancelar o Future
Use GARFuture#cancel
para tentar cancelar o Future
. Devido ao paralelismo de linhas de execução, pode ser que sua tentativa de cancelamento não tenha êxito.
GARFuture#cancel
vai retornar YES
se essa tentativa for bem-sucedida. Caso contrário, retornará NO
.
Usar a API Geospatial sem cobertura de VPS
A API Geospatial também pode ser usada em áreas que não têm cobertura de VPS. Em ambientes ao ar livre com pouca ou nenhuma obstrução aérea, o GPS pode ser suficiente para gerar uma pose com alta precisão.
A seguir
- Capture a pose geoespacial da câmera do dispositivo para determinar a localização exata do dispositivo do usuário no mundo real.