I am using Resium (a ReactJS wrapper for CesiumJS) and I am facing what seems to be an issue with the way the entities collection is managed by the Viewer.
In a parent component I am updating a list of points of interest (POI) containing lon/lat coordinates and an id. I am passing this list of POIs as a prop to a child component wrapping a resium’s Viewer component.
In the child component, I am dynamically building a list of Entity component from the list of POIs. I have a
useEffect hook which calls cesium’s viewer
flyTo method to the first entity every time the list of POI changes.
The viewer should fly to the first created entity every time the POI prop changes.
Some time, the viewer does not fly to the first entity.
While debugging the calls stack, it seems that at the moment the
flyTo method is being called in the
useEffect callback, the viewer’s
DataSourceDisplay instance does not contain the new Entities collection when the
getBoundingSphere method is being called on it. This result in a
FAILED state for the entity bounding sphere which makes
updateZoomTarget return early.