Vérifier la disponibilité du service VPS à l'emplacement actuel de l'appareil

L'API Geospatial utilise une combinaison de données VPS et GPS pour générer des transformations géospatiales de haute précision. L'API peut être utilisée là 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'appuiera 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 aériens, 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 services VPS à une position horizontale donnée avant le début de la session de RA et vous en servir pour créer des expériences plus spécifiques (par exemple, pour n'afficher un bouton "Passer en RA" que lorsque VPS est disponible).

Activer l'API ARCore

Votre application doit activer l'API ARCore pour vérifier la disponibilité des services VPS.

Vérifier la disponibilité du service VPS dans votre application

L'API Geospatial peut être utilisée là où l'appareil est capable de déterminer sa position. Si votre expérience de RA repose sur une couverture VPS, vous pouvez utiliser GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: pour obtenir un GARVPSAvailabilityFuture, une tâche asynchrone qui vérifie la disponibilité du VPS à une position horizontale donnée. Une fois que vous disposez de GARVPSAvailabilityFuture, vous pouvez obtenir son résultat en interrogeant ou en rappelant.

Interroger le résultat

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, donc aucun résultat n'est connu.
  • GARFutureStateCancelled: l'opération a été annulée par GARFuture#cancel. Tout rappel enregistré ne sera jamais appelé.
  • GARFutureStateDone: l'opération est terminée. Utilisez GARVPSAvailabilityFuture.result pour obtenir le résultat.

Vous pouvez continuer à vérifier GARFuture.state jusqu'à ce que l'opération soit terminée.

Obtenir le résultat via un rappel

Vous pouvez également obtenir le résultat d'un 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 l'état GARFutureStateDone de Future.

Annuler le Future

Utilisez GARFuture#cancel pour tenter d'annuler le Future. En raison du parallélisme des threads, il est possible que votre tentative d'annulation n'aboutisse pas. GARFuture#cancel renvoie YES si cette 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 sont pas couvertes par un service VPS. Dans les environnements extérieurs avec peu ou pas d'obstacles au-dessus de la tête, le GPS peut suffire à prendre une pose avec une grande précision.

Étapes suivantes