I’m new with Cesium. I am working on an unreal project, where we use cesium to display our city mesh and so far i really like the tool.
We are in a situation where i have the feeling that we are re-inventing the wheel and i’m exploring options to get the most out of cesium.
Basically, we want to use like custom json files to define objects to be spawn in space like custom aerial zone, waypoints, stuff like that. so right now, we made a custom actor that spawn shapes in our scene (using cesium georeferences to convert lat/lng to scene coordinates), and it’s working
As I was looking into better solutions, I kind of convinced mysef that :
we should use 3d geojson format to define our stuff properly instead of custom json objects
there must be a solution to pass our custom objects to cesium-ion api directly and let cesium do the heavy job instead of creating custom stuff on our Unreal side.
What i found so far:
it’s possible to feed cesium-ion with a geojson file directly. However, while it would be working in a cesiumJS client, cesium-unreal doesn’t want to retrieve that object in unreal, claiming geojson is not supported.
I am able to feed cesium-ion with a fbx and visualize it in unreal. (I would have love to be able to do that with a json)
From what i understand, I need to find a workaround to first convert my geojson to a 3d object , and then i would theorically able to convert that into a “3d tile” with cesium-ion, that cesium-unreal will accept to display
Does anyone have a working solution for this late 2024 years ? Or should I dive into this pipeline idea of converting geojson files to meshes, then host this mesh with cesium-ion, then retrieve it in unreal as a 3d tile ? (But at the end, this sound as painful as our initial solution )
Love to hear your thoughts and ideas
Thanks everyone
GeoJSONs are unfortunately not supported in Cesium for Unreal (yet), so your solution is probably the best way to go for now. It looks great from what you shared!
We have had a Github issue open for GeoJSON support linked below. Vector rendering is not a trivial problem, hence why we still haven’t developed a solution. But I’ll add a link to this post so that we can keep track of community input.
In the meantime, let us know if we can support you with anything else within the plugin!
Hi everyone,
Just a quick update: I’m working on developing this custom feature myself.
Essentially, I’m building a pipeline that takes a GeoJSON file and processes it through Blender → Cesium API → Unreal Engine client. There’s still a lot of work to do, but I believe this could be a valid interim solution while waiting for official support from smarter folks.
I’ll keep exploring this approach. If you’re interested, please mark your interest here—I’m considering sharing the project on a public Git repository if there’s enough demand.
Currently, with a few custom Python scripts, I can:
Take a GeoJSON file as input.
Generate an FBX.
Host it as 3D Tiles on Cesium Ion.
Retrieve and display it on the Unreal Engine side.
Right now, I support Point, Polygon, and LineString geometries. I’m looking to expand that compatibility and also need to focus on ensuring that the final objects are accurately positioned in the world. So far, I haven’t prioritized this, but it’s definitely something I’ll be working on to make sure everything aligns as expected.
Looking forward to any feedback or interest!
Example: a geojson interpreted natively in cesiumjs: