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.

Selección de terreno en mapbox-gl-js.

Estoy utilizando queryRenderedFeatures como base para una función de selección (como se muestra aquí https://docs.mapbox.com/mapbox-gl-js/example/queryrenderedfeatures/). Este enfoque proporciona una forma sencilla de saber qué objeto se encuentra debajo del cursor, inspeccionar su contenido y determinar su posición.

¿Cómo se puede replicar esta funcionalidad cuando se activa un terreno en 3D? QueryTerrainFeatures no devolverá ninguna información asociada al terreno. En esencia, me gustaría determinar la latitud/longitud del triángulo del terreno donde el usuario hizo clic.

¿Tiene alguna recomendación sobre cómo implementarlo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, el método queryRenderedFeatures no funciona con terrenos en 3D ya que solo devuelve características en 2D.

    Una solución potencial podría ser utilizar el método querySourceFeatures en su lugar. Este método te permite consultar características de una fuente específica en un punto dado. En el caso de terrenos en 3D, podrías crear una fuente personalizada que represente el terreno y luego utilizar querySourceFeatures para determinar las coordenadas de latitud/longitud del triángulo del terreno donde el usuario hizo clic.

    Otra solución es utilizar el raycasting, que consiste en lanzar un rayo desde la posición del ratón del usuario hacia la escena en 3D y determinar con qué objeto interseca. Podrías utilizar una biblioteca como Three.js o Babylon.js para implementar el raycasting.

    En general, replicar la funcionalidad de queryRenderedFeatures con terrenos en 3D requerirá una implementación personalizada y posiblemente trabajar con una biblioteca externa.

Comments are closed.