En la interfaz de usuario tenemos un panel flotante que ocupa el 30% - 40% por ciento del ancho de la pantalla y tenemos un mapa de fondo Cesium. La imagen simulada a continuación tiene puntos. De momento podemos hacer zoom en la vista, para que todos los puntos sean visibles en la pantalla.
La lógica es simple, solo encontramos las esquinas superior izquierda e inferior derecha del rectángulo que cubre todos los puntos.
const topLeft = Cartographic.fromDegrees( flyTo.minLongitude, flyTo.minLatitude, 0, ) const bottomRight = Cartographic.fromDegrees( flyTo.maxLongitude, flyTo.maxLatitude, 0, ) const rectangle = Rectangle.fromCartographicArray([topLeft, bottomRight]) viewer.camera.flyTo({ destination: rectangle, duration: flyTo.duration ? flyTo.duration : 0.1, })El problema es que los puntos están bajo los controles de la interfaz de usuario. Nos gustaría compensar el zoom, de modo que en lugar de hacer zoom en el centro de la pantalla, haga zoom en todos los puntos para que sean visibles en el lado derecho.
Considere tener un solo punto. En la implementación actual, estaría bajo los controles de la interfaz de usuario, pero esto es lo que tratamos de lograr.