실제 위치에 콘텐츠 고정

적용 가능한 XR 기기
이 가이드는 이러한 유형의 XR 기기를 위한 환경을 빌드하는 데 도움이 됩니다.
유선 XR 글라스

지리 공간 앵커는 Geospatial API를 사용하여 지리적 좌표가 있는 3D 콘텐츠를 배치할 수 있는 앵커 유형입니다.

지리 공간 앵커는 위도와 경도를 사용하여 위치를 결정합니다. 위도와 경도는 WGS84 사양에 의해 정의되며, 이는 일반적인 GPS 시스템에 표시되는 좌표와 동일합니다.

위치의 위도 및 경도 확인

특정 관심 장소를 염두에 두고 있다면 Google 지도를 사용하여 위도와 경도를 확인하세요.

  1. 데스크톱 컴퓨터에서 Google 지도로 이동합니다.
  2. 레이어 > 더보기로 이동합니다.

    Google 지도의 레이어 버튼

    Google 지도의 더보기 버튼

  3. 지도 유형을 위성으로 변경하고 화면 왼쪽 하단에 있는 글로브 뷰 체크박스를 선택 해제합니다.

    Google 지도의 지도 유형 옵션

    이렇게 하면 2D 관점이 적용되고 각도가 있는 3D 뷰에서 발생할 수 있는 오류가 제거됩니다.

  4. 지도에서 위치를 마우스 오른쪽 버튼으로 클릭하고 경도와 위도를 선택하여 클립보드에 복사합니다.

사용자 영역의 위치를 지리 공간적 앵커로 변환

관심 장소로 이동할 수 있는 경우 기기 로컬 포즈를 지리 공간 포즈로 변환하여 로컬 판독값에서 위도, 경도, 고도를 확인할 수 있습니다.

지리 공간 앵커에 콘텐츠 배치

지리 공간 앵커에는 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)