L'API Geospatial utilise une combinaison de données VPS et GPS pour générer des transformations géospatiales d'une grande précision. Vous pouvez utiliser l'API partout où l'appareil est capable de déterminer sa position:
- Dans les zones où la précision du GPS est faible, comme les espaces intérieurs et les environnements urbains denses, l'API s'appuie sur la couverture VPS pour générer des transformations de haute précision.
- Dans les environnements extérieurs avec peu ou pas d'obstacles au-dessus, l'API Geospatial peut utiliser les données de localisation GPS disponibles pour générer des transformations géospatiales avec une grande précision.
Vous pouvez déterminer la disponibilité des VPS à une position horizontale donnée avant le début de la session de RA et l'utiliser pour créer des expériences plus spécifiques (par exemple, pour présenter un "Enter AR") bouton uniquement lorsque VPS est disponible.
Activer l'API ARCore
Votre application doit activer l'API ARCore pour vérifier la disponibilité du service VPS.
Vérifier la disponibilité VPS dans votre application
L'API Geospatial peut être utilisée partout où l'appareil est en mesure de déterminer sa position. Si votre expérience de RA dépend de la couverture VPS, vous pouvez utiliser GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
pour obtenir un GARVPSAvailabilityFuture
, une tâche asynchrone qui vérifie la disponibilité des VPS à une position horizontale donnée.
Une fois que vous disposez de GARVPSAvailabilityFuture
, vous pouvez obtenir son résultat par le biais d'une interrogation ou d'un rappel.
Sondage
Utilisez GARFuture.state
pour obtenir l'état de Future
. Il existe trois états différents:
GARFutureStatePending
: l'opération n'est pas encore terminée. Aucun résultat n'est donc connu.GARFutureStateCancelled
: l'opération a été annulée parGARFuture#cancel
. Les rappels enregistrés ne seront jamais appelés.GARFutureStateDone
: l'opération est terminée. UtilisezGARVPSAvailabilityFuture.result
pour obtenir le résultat.
Vous pouvez continuer à vérifier GARFuture.state
jusqu'à ce que la tâche soit terminée.
Obtenir le résultat via un rappel
Vous pouvez également obtenir le résultat d'une Future
via un rappel. Utilisez GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
et fournissez un completionHandler
. Ce completionHandler
sera appelé sur le thread principal peu de temps après que Future
ait l'état GARFutureStateDone
.
Annuler Future
Utilisez GARFuture#cancel
pour tenter d'annuler Future
. En raison du parallélisme des threads, il est possible que votre tentative d'annulation n'aboutisse pas.
GARFuture#cancel
renvoie YES
si la tentative a abouti, et NO
dans le cas contraire.
Utiliser l'API Geospatial sans couverture VPS
L'API Geospatial peut également être utilisée dans les zones qui ne disposent pas de couverture VPS. En extérieur, le GPS peut suffire à générer une position avec une grande précision dans les environnements où il n'y a pas ou peu d'obstacles au-dessus de la tête.
Étape suivante
- Obtenez la position géospatiale de l'appareil photo de l'appareil pour déterminer la position exacte de l'appareil dans le monde réel.