Verifica la disponibilidad de los VPS en la ubicación actual del dispositivo
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La API de Geospatial usa una combinación de datos de VPS y GPS para generar poses geoespaciales de alta precisión. La API se puede usar en cualquier lugar en el que el dispositivo pueda determinar su ubicación:
- En áreas con baja precisión del GPS, como espacios interiores y entornos urbanos densos, la API se basará en la cobertura de VPS para generar poses de alta precisión.
- En entornos al aire libre con pocas obstrucciones en el techo o sin ellas, es posible que la API de Geospatial pueda usar los datos de ubicación GPS disponibles para generar poses geoespaciales con alta precisión.
Puedes determinar la disponibilidad de la VPS en una posición horizontal determinada antes de que comience la sesión de RA y usarla para crear experiencias más específicas; por ejemplo, para presentar un botón "Entrar a RA" solo cuando la VPS esté disponible.
Habilita la API de ARCore
Tu app debe habilitar la API de ARCore para verificar la disponibilidad de la VPS.
Cómo verificar la disponibilidad del VPS en tu app
La API de Geospatial se puede usar en cualquier lugar en el que el dispositivo pueda determinar su ubicación. Si tu experiencia de RA depende de la cobertura de VPS, puedes usar AREarthManager.CheckVpsAvailabilityAsync()
para obtener un VpsAvailabilityPromise
, una tarea asíncrona que verifica la disponibilidad de VPS en una posición horizontal determinada.
Una vez que tengas el VpsAvailabilityPromise
, puedes obtener su resultado mediante sondeos.
Cómo sondear el resultado
Usa VpsAvailabilityPromise.State
para obtener el estado de InterruptiblePromise
. Existen tres estados diferentes:
Puedes seguir verificando VpsAvailabilityPromise.State
hasta que se complete la tarea.
Cancela el InterruptiblePromise
.
Usa VpsAvailabilityPromise.Cancel()
para intentar cancelar el InterruptiblePromise
. Debido al paralelismo de subprocesos, es posible que tu intento de cancelación no se realice correctamente.
Usa la API de Geospatial sin cobertura de VPS
La API de Geospatial también se puede usar en áreas que no tienen cobertura de VPS. En entornos exteriores con pocas obstrucciones en el techo o sin ellas, es posible que el GPS sea suficiente para generar una pose con alta precisión.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-14 (UTC)
[null,null,["Última actualización: 2025-07-14 (UTC)"],[[["\u003cp\u003eThe Geospatial API leverages VPS and GPS data to create highly accurate location anchors, enabling augmented reality experiences in diverse environments.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can check VPS availability before an AR session begins, optimizing user experience by prompting interactions only when VPS is available.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eAREarthManager.CheckVpsAvailabilityAsync()\u003c/code\u003e allows developers to determine VPS availability at a specific location, which can be polled for its status and potentially cancelled.\u003c/p\u003e\n"],["\u003cp\u003eEven without VPS coverage, the Geospatial API can utilize GPS data in outdoor settings with clear skies to achieve accurate pose estimation.\u003c/p\u003e\n"],["\u003cp\u003eAfter confirming VPS availability or GPS suitability, developers can proceed to obtain the device's Geospatial pose, anchoring AR content to real-world locations.\u003c/p\u003e\n"]]],[],null,["# Check VPS availability at the device's current location\n\n\u003cbr /\u003e\n\nThe Geospatial API uses a combination of [VPS](/ar/develop/geospatial#global_localization_with_vps) and GPS data to generate high-accuracy Geospatial poses. The API can be used in any place where the device is able to determine its location:\n\n- In areas with low GPS accuracy, such as indoor spaces and dense urban environments, the API will rely on VPS coverage to generate high-accuracy poses.\n- In outdoor environments with few or no overhead obstructions, the Geospatial API may be able to use available GPS location data to generate Geospatial poses with high accuracy.\n\nYou can determine VPS availability at a given horizontal position before the AR session starts and use it to create more specific experiences --- for example, to present an \"Enter AR\" button only when VPS is available.\n\nEnable the ARCore API\n---------------------\n\nYour app must enable the [ARCore API](/ar/develop/unity-arf/geospatial/enable#enable_the_arcore_api) to check VPS availability.\n\nCheck VPS availability in your app\n----------------------------------\n\nThe Geospatial API can be used in any place where the device is able to determine its location. If your AR experience hinges on VPS coverage, you can use [`AREarthManager.CheckVpsAvailabilityAsync()`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#checkvpsavailabilityasync) to obtain a [`VpsAvailabilityPromise`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise), an asynchronous task that checks the VPS availability at a given horizontal position.\n\nOnce you have the [`VpsAvailabilityPromise`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise), you can obtain its result by polling.\n\n\n### Poll the result\n\nUse [`VpsAvailabilityPromise.State`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise#state) to obtain the state of the `InterruptiblePromise`. There are three different states:\n\n- [`Pending`](/ar/reference/unity-arf/namespace/Google/XR/ARCoreExtensions#promisestate): The operation is not yet complete, so no result is known.\n- [`Cancelled`](/ar/reference/unity-arf/namespace/Google/XR/ARCoreExtensions#promisestate): The operation has been cancelled by [`VpsAvailabilityPromise.Cancel()`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise#cancel). Any registered callback will never be called.\n- [`Done`](/ar/reference/unity-arf/namespace/Google/XR/ARCoreExtensions#promisestate): The operation is complete. Use [`VpsAvailabilityPromise.Result`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise#result) to obtain the result.\n\nYou may continue checking [`VpsAvailabilityPromise.State`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise#state) until the task is complete.\n\nCancel the `InterruptiblePromise`\n---------------------------------\n\nUse [`VpsAvailabilityPromise.Cancel()`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/VpsAvailabilityPromise#cancel) to attempt to cancel the `InterruptiblePromise`. Due to thread parallelism, it may be possible that your cancel attempt does not actually succeed.\n\n\nUse the Geospatial API without VPS coverage\n-------------------------------------------\n\nThe Geospatial API can also be used in areas that do not have VPS coverage. In outdoor environments with few or no overhead obstructions, GPS may be sufficient to generate a pose with high accuracy.\n\nWhat's next\n-----------\n\n- [Obtain the device camera's Geospatial pose](/ar/develop/unity-arf/geospatial/obtain-device-pose) to determine the exact location of the user's device in the real world."]]