Dynamically loading multiple 3D objects with live data from Database


first of thank you for this great project. I just discovered Cesium for Unreal Engine few days ago and I can not get enough of it.

I have a build a bunch of projects based on QGIS projects. In short I serve data (feature points) from a PostGis database to a QGIS project. I serve the qgis project via a QGIS Server based of an apache web server which then renders a single WMS image to an OpenLayers webapp that servers the wms image.

I would now like to build a 3D application based on UE4 + Cesium where I build a Global Level with a bunch of sublevels which represent the locations that I also cover with my QGIS Projects. Think about each sublevel represents a village / city.

For each of those sublevels I have datasets containing of featurename, featuretype and the geo reference encoded in a postgis geometry type. It is no problem to resolve the geometry type into any X / Y / CRS (e.g WGS84) infact all my features support WGS84 by default anyway.

I now want to archive the following: My user has the possiblity to navigate to the different sublevels via UI elements as covered in your tutorials/documentation. Once the sublevel gets loaded I want to load/create instances of a specific asset (a street lamp in my case) at ALL the locations that are inside the postgis database for this specific sub level.

How would you suggest I approach this?

My idea would be to create some kind of observer asset that constantly checks what sublevel the user is in. If the user enters a sublevel the observer loads the data from the database and resolves the geometry for each streetlamp from its dataset. Afterwards it creates an instance of streetlamp for each dataset with a ‚Äúcesium Georeference‚ÄĚ and manipulates the Longitude/Latitude/Height etc to correctly position the street lamp.

The catch is that I have to be able to address each lamp specifically since I want to dynamically stream IoT Data to the street lamps.

I would love to here your ideas / feedbacks regarding this. If you have any tips or a different approach please feel free to let me know in this thread.

Thank you for your time
Best regards

1 Like