Anchor เชิงพื้นที่เป็นAnchor ประเภทหนึ่งที่ช่วยให้คุณวางเนื้อหา 3 มิติพร้อมพิกัดทางภูมิศาสตร์ได้โดยใช้ Geospatial API
Anchor เชิงพื้นที่ใช้ละติจูดและลองจิจูดเพื่อระบุตำแหน่ง ละติจูดและลองจิจูดจะกำหนดโดยข้อกำหนดเฉพาะของ WGS84 ซึ่งเป็นพิกัดเดียวกับที่แสดงในระบบ GPS ทั่วไป
ระบุละติจูดและลองจิจูดของสถานที่
หากคุณมีจุดที่สนใจที่เฉพาะเจาะจง ให้ใช้ Google Maps เพื่อระบุละติจูดและลองจิจูดของจุดนั้น โดยทำดังนี้
- ไปที่ Google Maps ในคอมพิวเตอร์เดสก์ท็อป
ไปที่เลเยอร์ > เพิ่มเติม


เปลี่ยนประเภทแผนที่เป็นดาวเทียม และล้างช่องทำเครื่องหมายมุมมองโลกที่มุมซ้ายล่างของหน้าจอ

ซึ่งจะบังคับให้ใช้มุมมอง 2 มิติและกำจัดข้อผิดพลาดที่อาจเกิดขึ้นจากมุมมอง 3 มิติแบบเอียง
ในแผนที่ ให้คลิกขวาที่ตำแหน่ง แล้วเลือกลองจิจูดและละติจูดเพื่อคัดลอกไปยังคลิปบอร์ด
แปลงตำแหน่งในพื้นที่ของผู้ใช้เป็น Anchor เชิงพื้นที่
หากเดินทางไปยังจุดที่น่าสนใจได้ คุณสามารถระบุละติจูด ลองจิจูด และระดับความสูงจากการอ่านค่าในพื้นที่โดยแปลงท่าทางของอุปกรณ์ในพื้นที่เป็นท่าทางเชิงพื้นที่
วางตำแหน่งเนื้อหาที่ Anchor ภูมิสารสนเทศ
Anchor เชิงภูมิสารสนเทศต้องมีค่าระดับความสูง ซึ่งสัมพันธ์กับทรงรี 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. } }
สุดท้าย ให้ใช้ Anchor เพื่อวางตำแหน่งเนื้อหา 3 มิติ ดังนี้
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)