地理空間錨點是一種錨點,可讓您使用 Geospatial API 放置具有地理座標的 3D 內容。
地理空間錨點會使用經緯度來判斷位置。經緯度由 WGS84 規格定義,與一般 GPS 系統顯示的座標相同。
判斷地點的經緯度
如果您有特定景點,請使用 Google 地圖判斷其經緯度:
- 在電腦上前往 Google 地圖。
依序前往「圖層」>「更多」。


將「Map Type」變更為「Satellite」,然後取消勾選畫面左下角的「Globe View」核取方塊。

這會強制採用 2D 視角,並消除傾斜 3D 檢視畫面可能產生的錯誤。
在地圖上,對所需位置按一下滑鼠右鍵,然後選取經緯度,即可複製到剪貼簿。
將使用者所在區域的位置轉換為地理空間錨點
如果您可以前往搜尋點,可以將裝置本機姿勢轉換為地理空間姿勢,從本機讀數判斷經度、緯度和高度。
將內容放置在地理空間錨點
地理空間錨點需要高度值,這個值是相對於 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. } }
最後,使用錨點定位 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)