Anchor geospasial adalah jenis anchor yang memungkinkan Anda menempatkan konten 3D dengan koordinat geografis menggunakan Geospatial API.
Anchor geospasial menggunakan lintang dan bujur untuk menentukan posisinya. Lintang dan bujur ditentukan oleh spesifikasi WGS84, yang merupakan koordinat yang sama dengan yang ditampilkan dalam sistem GPS standar.
Menentukan lintang dan bujur lokasi
Jika Anda memiliki lokasi menarik tertentu, gunakan Google Maps untuk menentukan lintang dan bujurnya:
- Buka Google Maps di komputer desktop.
Buka Lapisan > Lainnya.


Ubah Map Type menjadi Satellite dan hapus centang pada kotak Globe View di pojok kiri bawah layar.

Hal ini akan memaksa perspektif 2D dan menghilangkan kemungkinan error yang dapat berasal dari tampilan 3D miring.
Di peta, klik kanan lokasi, lalu pilih bujur dan lintang untuk menyalinnya ke papan klip.
Mengonversi posisi di area pengguna menjadi anchor Geospatial
Jika dapat melakukan perjalanan ke lokasi menarik, Anda dapat menentukan lintang, bujur, dan ketinggian dari pembacaan lokal dengan mengonversi pose lokal perangkat menjadi pose Geospasial.
Memosisikan konten di anchor Geospasial
Anchor geospasial memerlukan nilai ketinggian, yang relatif terhadap elipsoid WGS84 atau relatif terhadap medan atau atap.
Untuk nilai ketinggian yang relatif terhadap elipsoid WGS84, gunakan
Geospatial.createAnchor:val createAnchorResult = geospatial.createAnchor( latitude, longitude, altitude, Quaternion.Identity, )
Untuk nilai ketinggian yang relatif terhadap medan atau atap, gunakan
Geospatial.createAnchorOnSurface, menggunakanGeospatialSurface.TERRAINdanGeospatialSurface.ROOFTOPmasing-masing untuk menentukan cara penafsiran ketinggian akhir:val createAnchorResult = geospatial.createAnchorOnSurface( latitude, longitude, altitude, Quaternion.Identity, GeospatialSurface.TERRAIN, )
Saat menggunakan
GeospatialSurface.ROOFTOP, ketinggian akan ditetapkan secara default ke ketinggian medan jika tidak ditempatkan di bangunan.
Kemudian, periksa hasil panggilan pembuatan:
when (createAnchorResult) { is AnchorCreateSuccess -> { // Use anchorCreateResult.anchor to render content at the result. } else -> { // Anchor create failed. // See AnchorCreateResult for possible failure reasons. } }
Terakhir, gunakan anchor untuk memosisikan konten 3D:
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)