Coğrafi yer işaretleri, Geospatial API'yi kullanarak coğrafi koordinatlarla 3D içerik yerleştirmenize olanak tanıyan bir yer işareti türüdür.
Coğrafi konum bağlayıcıları, konumlarını belirlemek için enlem ve boylam kullanır. Enlem ve boylam, WGS84 spesifikasyonu ile tanımlanır. Bunlar, tipik bir GPS sisteminde gösterilen koordinatlarla aynıdır.
Bir konumun enlem ve boylamını belirleme
Aklınızda belirli bir önemli yer varsa enlem ve boylamını belirlemek için Google Haritalar'ı kullanın:
- Masaüstü bilgisayarda Google Haritalar'a gidin.
Katmanlar > Diğer'e gidin.


Harita Türü'nü Uydu olarak değiştirin ve ekranın sol alt köşesindeki Yerküre Görünümü onay kutusunun işaretini kaldırın.

Bu, 2D perspektifi zorunlu kılar ve açılı bir 3D görünümden kaynaklanabilecek olası hataları ortadan kaldırır.
Haritada konumu sağ tıklayın ve panonuza kopyalamak için boylam ve enlemi seçin.
Kullanıcının alanındaki bir konumu coğrafi sabite dönüştürme
İlgilenilen noktaya seyahat edebiliyorsanız cihazın yerel pozunu coğrafi poza dönüştürerek yerel bir okumadan enlem, boylam ve rakımı belirleyebilirsiniz.
İçeriği bir coğrafi sabitleme noktasına yerleştirme
Coğrafi konum sabitleyiciler, WGS84 elipsoidine veya araziye ya da çatıya göre bir yükseklik değeri gerektirir.
WGS84 elipsoidine göre yükseklik değerleri için
Geospatial.createAnchorkullanın:val createAnchorResult = geospatial.createAnchor( latitude, longitude, altitude, Quaternion.Identity, )
Araziye veya çatıya göre yükseklik değerleri için
Geospatial.createAnchorOnSurfacekullanın. Nihai yüksekliğin nasıl yorumlanması gerektiğini belirtmek için sırasıylaGeospatialSurface.TERRAINveGeospatialSurface.ROOFTOPkullanın:val createAnchorResult = geospatial.createAnchorOnSurface( latitude, longitude, altitude, Quaternion.Identity, GeospatialSurface.TERRAIN, )
GeospatialSurface.ROOFTOPkullanılırken rakım, bir binaya yerleştirilmediğinde varsayılan olarak arazi rakımına ayarlanır.
Ardından, oluşturma çağrısının sonucunu kontrol edin:
when (createAnchorResult) { is AnchorCreateSuccess -> { // Use anchorCreateResult.anchor to render content at the result. } else -> { // Anchor create failed. // See AnchorCreateResult for possible failure reasons. } }
Son olarak, 3D içeriği konumlandırmak için sabitleyiciyi kullanın:
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)