Điểm neo không gian địa lý là một loại điểm neo cho phép bạn đặt nội dung 3D có toạ độ địa lý bằng API Không gian địa lý.
Điểm neo không gian địa lý sử dụng vĩ độ và kinh độ để xác định vị trí. Vĩ độ và kinh độ được xác định theo quy cách WGS84, đây là các toạ độ giống như toạ độ trong hệ thống GPS thông thường.
Xác định vĩ độ và kinh độ của một vị trí
Nếu bạn có một địa điểm cụ thể mà bạn quan tâm, hãy sử dụng Google Maps để xác định vĩ độ và kinh độ của địa điểm đó:
- Truy cập vào Google Maps trên máy tính.
Chuyển đến Lớp > Thêm.


Thay đổi Loại bản đồ thành Vệ tinh và bỏ đánh dấu hộp Chế độ xem hình ảnh địa cầu ở góc dưới cùng bên trái màn hình.

Việc này sẽ buộc sử dụng góc nhìn 2D và loại bỏ các lỗi có thể xảy ra từ góc nhìn 3D.
Trên bản đồ, hãy nhấp chuột phải vào vị trí rồi chọn kinh độ và vĩ độ để sao chép vào bảng nhớ tạm.
Chuyển đổi một vị trí trong khu vực của người dùng thành một Điểm neo không gian địa lý
Nếu có thể di chuyển đến điểm quan tâm, bạn có thể xác định vĩ độ, kinh độ và cao độ từ thông tin đọc được tại địa phương bằng cách chuyển đổi tư thế cục bộ của thiết bị thành tư thế không gian địa lý.
Đặt nội dung tại một điểm neo không gian địa lý
Điểm neo không gian địa lý yêu cầu giá trị độ cao, tương ứng với hình elip WGS84 hoặc tương ứng với địa hình hoặc mái nhà.
Đối với các giá trị độ cao tương ứng với hình elip WGS84, hãy sử dụng
Geospatial.createAnchor:val createAnchorResult = geospatial.createAnchor( latitude, longitude, altitude, Quaternion.Identity, )
Đối với các giá trị độ cao so với địa hình hoặc mái nhà, hãy sử dụng
Geospatial.createAnchorOnSurface, sử dụngGeospatialSurface.TERRAINvàGeospatialSurface.ROOFTOPtương ứng để chỉ định cách diễn giải độ cao cuối cùng:val createAnchorResult = geospatial.createAnchorOnSurface( latitude, longitude, altitude, Quaternion.Identity, GeospatialSurface.TERRAIN, )
Khi sử dụng
GeospatialSurface.ROOFTOP, độ cao mặc định sẽ là độ cao của địa hình khi không được đặt trên toà nhà.
Sau đó, hãy kiểm tra kết quả của lệnh gọi tạo:
when (createAnchorResult) { is AnchorCreateSuccess -> { // Use anchorCreateResult.anchor to render content at the result. } else -> { // Anchor create failed. // See AnchorCreateResult for possible failure reasons. } }
Cuối cùng, hãy sử dụng điểm neo để định vị nội dung 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)