es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo dibujar un modelo de ubicación de usuario en 3D entre edificios en MapBox iOS SDK.

Estoy utilizando la SDK Mapbox 10.2.0 para iOs.

He importado el indicador de ubicación del usuario en forma de “puck” en un mapa en mi aplicación iOs. También tengo una capa de edificios en 3D extruida sobre el suelo. El problema es que el indicador de ubicación del usuario en 3D y los edificios están en capas distintas, por lo que el indicador de ubicación del usuario se dibuja encima de los edificios o viceversa. Quiero que el indicador en 3D exista en la misma capa que los edificios y se renderice junto a ellos.

¿Es eso siquiera posible?

Según el código, parece que no puedo configurar en qué capa se encuentra el “puck” y parece que toda la capa se rota para reflejar la dirección a la que se enfrenta el usuario.

ACTUALIZACIÓN: Me di cuenta que describí el problema de manera incorrecta.

El modelo del indicador de ubicación del usuario es una capa de tipo “ModelLayer” y los edificios son capas de “FillExtrusion layers”. No veo ninguna herramienta que me permita combinarlos. ¿Existen algunas?

ACTUALIZACIÓN: Ok, ahora veo que hay renderizadores. Y son diferentes para cada capa. Eso significa que los distintos renderizadores no son conscientes entre sí y mis datos deberían estar en una sola capa. Pero eso significa que necesito crear una tercera capa de tipo “custom” que copie los modelos en 3D, y eso no resuelve el problema de la rotación necesaria para el indicador de ubicación del usuario (es un modelo en 3D).

Así que volviendo a la pregunta inicial. ¿Es eso siquiera posible?

Tags:  

Answer

  1. Avatar for davy.ai

    Es posible tener el marcador de ubicación del usuario en 3D y la capa de edificios en 3D rendidos juntos sin que uno esté encima del otro. Una solución sería crear una capa personalizada que incluya tanto el marcador de ubicación del usuario en 3D como la capa de edificios en 3D, y establecer un renderizador personalizado que se encargue de girar el marcador de ubicación del usuario según sea necesario.

    Esto se puede lograr mediante la creación de una subclase de MGLStyleLayer para crear una capa personalizada, y luego agregar esta capa a la vista del mapa. La capa personalizada tendría que contener tanto la ModelLayer para el marcador de ubicación del usuario como la FillExtrusionLayer para los edificios. Los renderizadores de cada capa deberían combinarse o modificarse para que funcionen juntos, de modo que el marcador de ubicación del usuario se dibuje y gire correctamente dentro de la capa de edificios en 3D.

    En general, aunque puede llevar un trabajo extra crear una capa personalizada, definitivamente es posible garantizar que el marcador de ubicación del usuario en 3D y la capa de edificios en 3D se representen sin problemas en su aplicación de iOS.

Comments are closed.