Las anclas geoespaciales son un tipo de ancla que te permite colocar contenido en 3D con coordenadas geográficas usando la API de Geospatial.
Los Geospatial anchors usan la latitud y la longitud para determinar su posicionamiento. La latitud y la longitud se definen según la especificación WGS84, que son las mismas coordenadas que se muestran en un sistema GPS típico.
Determina la latitud y la longitud de una ubicación
Si tienes un lugar de interés específico en mente, usa Google Maps para determinar su latitud y longitud:
- Ve a Google Maps en una computadora.
Navega a Capas > Más.


Cambia el Tipo de mapa a Satélite y desmarca la casilla de verificación Vista de globo terráqueo en la esquina inferior izquierda de la pantalla.

Esto fuerza una perspectiva en 2D y elimina los posibles errores que pueden surgir de una vista en 3D en ángulo.
En el mapa, haz clic con el botón derecho en la ubicación y selecciona la longitud y la latitud para copiarlas en el portapapeles.
Convierte una posición en el área del usuario en un ancla geoespacial
Si puedes viajar al lugar de interés, puedes determinar la latitud, la longitud y la altitud a partir de una lectura local convirtiendo una pose local del dispositivo en una pose geoespacial.
Posiciona el contenido en un ancla geoespacial
Los anclajes geoespaciales requieren un valor de altitud, que es relativo al elipsoide WGS84 o al terreno o techo.
Para los valores de altitud relativos al elipsoide WGS84, usa
Geospatial.createAnchor:val createAnchorResult = geospatial.createAnchor( latitude, longitude, altitude, Quaternion.Identity, )
Para los valores de altitud relativos al terreno o a un techo, usa
Geospatial.createAnchorOnSurface, conGeospatialSurface.TERRAINyGeospatialSurface.ROOFTOP, respectivamente, para especificar cómo se debe interpretar la altitud final:val createAnchorResult = geospatial.createAnchorOnSurface( latitude, longitude, altitude, Quaternion.Identity, GeospatialSurface.TERRAIN, )
Cuando se usa
GeospatialSurface.ROOFTOP, la altitud predeterminada es la del terreno, siempre que no se coloque en un edificio.
Luego, verifica el resultado de la llamada de creación:
when (createAnchorResult) { is AnchorCreateSuccess -> { // Use anchorCreateResult.anchor to render content at the result. } else -> { // Anchor create failed. // See AnchorCreateResult for possible failure reasons. } }
Por último, usa el ancla para posicionar el contenido en 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)