Estoy tratando de alinear una capa PointCloud deck.gl con una ubicación en Mapbox. Intenté modificar los valores de posición y funciona, pero me preguntaba si hay otra forma más sencilla de modificar la orientación de la capa en lugar de modificar los datos.
Usé este código para definir la capa:
const pointsLayer = new deck.MapboxLayer({ id: 'points', type: deck.PointCloudLayer, data: dataArray, pickable: false, coordinateSystem: deck.COORDINATE_SYSTEM.METER_OFFSETS, coordinateOrigin: [25, 55], pointSize: 1, getPosition: d => d.position, getColor: d => d.color, });No pude encontrar ningún Prop en la documentación que logre ese objetivo.
Debe usar la propiedad modelMatrix en la clase base Layer .
La transformación se realiza utilizando una matriz de transformación de 4x4 para el espacio 3D, que incluye tanto el aspecto rotacional como el de traslación. Si desea rotar a lo largo de un eje en particular, puede ver los ejemplos a continuación.
// No rotation and no translation modelMatrix: [1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1], // Rotate X-axis theta degrees modelMatrix: [1,0,0,0, 0,cos(theta),-sin(theta),0, 0,sin(theta),cos(theta),0, 0,0,0,1], // Rotate Y-axis phi degrees modelMatrix: [cos(phi),0,sin(phi),0, 0,1,0,0, -sin(phi),0,cos(theta),0, 0,0,0,1], // Rotate Z-axis omega degrees modelMatrix: [cos(omega),-sin(omega),0,0, sin(omega),cos(omega),0,0, 0,0,1,0, 0,0,0,1],