لنگرهای زمینمکانی نوعی لنگر هستند که به شما امکان میدهند بااستفاده از Geospatial API، محتوای سهبعدی را با مختصات جغرافیایی قرار دهید.
لنگرهای زمینمکانی از طول و عرض جغرافیایی برای تعیین موقعیت خود استفاده میکنند. طول و عرض جغرافیایی با مشخصات WGS84 تعریف میشود، که همان مختصات نشاندادهشده در سیستم GPS معمولی است.
تعیین طول و عرض جغرافیایی مکان
اگر مکان جالب خاصی مدنظرتان است، از Google Maps برای تعیین طول و عرض جغرافیایی آن استفاده کنید:
- در رایانه رومیزی، به Google Maps بروید.
به لایهها > بیشتر بروید.


نوع نقشه را به ماهواره تغییر دهید و چارگوش انتخاب نمای کره زمین را در گوشه پایین سمت راست صفحه پاک کنید.

این کار باعث میشود که پرسپکتیو دوبعدی اعمال شود و خطاهای احتمالی ناشی از نمای سهبعدی زاویهدار برطرف شود.
در نقشه، روی مکان کلیک راست کنید و طول و عرض جغرافیایی را انتخاب کنید تا در بریدهدان کپی شود.
تبدیل موقعیتی در منطقه کاربر به لنگر جغرافیایی
اگر میتوانید به مکان جالب سفر کنید، میتوانید عرض جغرافیایی، طول جغرافیایی، و ارتفاع را از خوانش محلی با تبدیل کردن حالت محلی دستگاه به حالت جغرافیایی تعیین کنید.
موقعیت محتوا در لنگر زمینمکانی
لنگرهای زمینمکانی به مقدار ارتفاع نیاز دارند که نسبتبه بیضیگون WGS84 یا نسبتبه عوارض زمینی یا پشتبام است.
برای مقادیر ارتفاع نسبت به بیضیگون WGS84، از
Geospatial.createAnchorاستفاده کنید:val createAnchorResult = geospatial.createAnchor( latitude, longitude, altitude, Quaternion.Identity, )
برای مقادیر ارتفاع نسبت به عوارض زمین یا پشتبام، از
Geospatial.createAnchorOnSurfaceاستفاده کنید، و بهترتیب ازGeospatialSurface.TERRAINوGeospatialSurface.ROOFTOPاستفاده کنید تا مشخص کنید ارتفاع نهایی چگونه باید تفسیر شود:val createAnchorResult = geospatial.createAnchorOnSurface( latitude, longitude, altitude, Quaternion.Identity, GeospatialSurface.TERRAIN, )
هنگام استفاده از
GeospatialSurface.ROOFTOP، اگر روی ساختمان قرار نگرفته باشد، ارتفاع بهطور پیشفرض روی ارتفاع زمین تنظیم میشود.
سپس، نتیجه فراخوانی ایجاد را بررسی کنید:
when (createAnchorResult) { is AnchorCreateSuccess -> { // Use anchorCreateResult.anchor to render content at the result. } else -> { // Anchor create failed. // See AnchorCreateResult for possible failure reasons. } }
درنهایت، از لنگر برای تعیین موقعیت محتوای سهبعدی استفاده کنید:
Compose XR
Subspace(FollowTarget.anchor(anchorCreateResult.anchor)) { SpatialPanel { GeospatialContent() } }
SceneCore
val anchorSpace = AnchorSpace.create(session, anchorCreateResult.anchor) val contentEntity = createGeospatialContentEntity(context, session) anchorSpace.addChild(contentEntity)