در دسترس بودن VPS را در مکان فعلی دستگاه بررسی کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Geospatial API از ترکیبی از داده های VPS و GPS برای ایجاد موقعیت های جغرافیایی با دقت بالا استفاده می کند. API را می توان در هر مکانی که دستگاه قادر به تعیین مکان خود باشد استفاده کرد:
- در مناطقی با دقت GPS پایین، مانند فضاهای داخلی و محیط های شهری متراکم، API برای ایجاد ژست های با دقت بالا به پوشش VPS متکی است.
- در محیطهای بیرونی با تعداد کم یا بدون انسداد بالای سر، Geospatial API ممکن است بتواند از دادههای موقعیت مکانی GPS موجود برای ایجاد موقعیتهای جغرافیایی با دقت بالا استفاده کند.
میتوانید قبل از شروع جلسه AR، در دسترس بودن VPS را در یک موقعیت افقی مشخص تعیین کنید و از آن برای ایجاد تجربیات خاصتر استفاده کنید - به عنوان مثال، برای ارائه دکمه "Enter AR" فقط زمانی که VPS در دسترس است.
ARCore API را فعال کنید
برنامه شما باید ARCore API را فعال کند تا در دسترس بودن VPS را بررسی کند.
در دسترس بودن VPS را در برنامه خود بررسی کنید
Geospatial API را می توان در هر مکانی که دستگاه قادر به تعیین مکان خود باشد استفاده کرد. اگر تجربه AR شما وابسته به پوشش VPS است، می توانید از AREarthManager.CheckVpsAvailabilityAsync()
برای به دست آوردن VpsAvailabilityPromise
استفاده کنید، یک کار ناهمزمان که در دسترس بودن VPS را در یک موقعیت افقی مشخص بررسی می کند. هنگامی که VpsAvailabilityPromise
را دارید، می توانید نتیجه آن را با نظرسنجی به دست آورید.
نتیجه را نظرسنجی کنید
از VpsAvailabilityPromise.State
برای به دست آوردن وضعیت InterruptiblePromise
استفاده کنید. سه حالت مختلف وجود دارد:
میتوانید VpsAvailabilityPromise.State
را بررسی کنید تا کار کامل شود.
لغو InterruptiblePromise
از VpsAvailabilityPromise.Cancel()
برای تلاش برای لغو InterruptiblePromise
استفاده کنید. به دلیل موازی بودن رشته، ممکن است تلاش برای لغو شما واقعاً موفق نباشد.
از API Geospatial بدون پوشش VPS استفاده کنید
Geospatial API همچنین در مناطقی که پوشش VPS ندارند قابل استفاده است. در محیطهای بیرونی که موانع بالای سرشان کم است یا اصلاً وجود ندارد، GPS ممکن است برای ایجاد یک حالت با دقت بالا کافی باشد.
بعدش چی
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-14 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-14 بهوقت ساعت هماهنگ جهانی."],[[["\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."]]