cesium-unreal
cesium-unreal copied to clipboard
Support vector files (KML, SHP, CZML, GeoJSON)
This is a far-roadmap feature, as implementing it comes with a lot of other considerations, but we should have an issue to track it.
It's frequently requested on the forums - 01, 02, 03, 04
Please feel free to add any other thoughts or potential roadblocks here just so we have it on record.
Just going to point out I’ve repeatedly shelved projects due to this feature being missing. Particularly CZML… Not having support for these formats was and continues to be a huge letdown. I have never wanted to use Cesium in a project that wasn't in some way dependent on having access to these formats, either as the primary content, or as crucial overlays.
Edit: tiny typo
@techdragon Completely agree with you that CZML and other formats supported in CesiumJS add a ton of functionality to create useful simulations and analytics. We're pushing on all fronts to add this (and more) functionality as it would enable a ton of use-cases, like yours, for the entire community. Its sometimes easy to forget (even for us) that Cesium for Unreal release was less than 6 months, so there is a ton of features we're looking to add to get it close to par with CesiumJS, which has a decade of development behind it.
Please feel free to reach out to me directly if there are specific use-cases we can help with in the short-term while we continue to work on these features.
It looks like a plugin has been created to import this type of data into Unreal before - https://forums.unrealengine.com/t/plugin-import-gis-data-into-ue4/107459, but it doesn't seem maintained currently. Might be helpful as we look into our own implementation.
I'd like to see specific issues for each of these formats, with the underlying work noted as blockers. Its pretty obvious supporting all the various vector formats is an "epic" task, and its all too easy for interested parties on the outside, like myself and others to see very little traction on these kinds of tasks, since naturally a lot of work needs to be done before such big tickets are marked as "shipped".
Also, that lets people express their support for each format and allow some kind of prioritisation to be performed. For instance CZML and GeoJSON share the need for JSON parsing functionality, KML needs an XML parser, and SHP needs a custom parser for the ESRI Shapefile format. (This also happens to be my personal prioritisation order of these four formats) All the formats will likely need a vector rendering layer to handle common vector rendering coordinate transforms and such, and would probably need a number of renderable object types they can use to show the various data types in the world such as marker, line, polygon, etc types and these should obviously be extensible so that we can implement more advanced rendering of these primitives if needed (for example, rendering markers that vary in size based on data from the GeoJSON). While its unfair to demand that this be a top priority, its a lot easier for us the community to plug gaps/help out/ build our own... if we see the incremental progress on this feature and know that fundamental components are built so we can give the individual functionality parts a shot.
Personally I'd feel much more confident taking a shot at building my own marker/point (and maybe even lines) rendering code if I had the parsing & world coordinate transform taken care of by people that know how all that works a lot better than me. Because while my point could be just enough code to do what I need, its useless to me if I can't keep my points in the right place when the existing raster data map layers move and zooms. I could probably do a decent enough job on a file parser too to be honest. So having paid employee time dedicated to a foundational part necessary for this functionality could be very valueable (the vector rendering layer to handle common vector rendering coordinate transforms I mentioned earlier)
That said... as I write all this out... and read through the https://github.com/CesiumGS/cesium-native code to try and see how the raster layers work since I was looking for something to suggest "we just need a vector version of this class", it feels like a lot of the the Unreal Engine specific magic is in the CesiumGeoreference*
files and it might not be quite as much work as I first thought to implement a basic "vector point" but as I don't have the time right now to dig in deeper, I can't say for sure how hard it would be to also add lines or polygons. Lack of a C++ CZML parser isn't a huge deal as its just a specific JSON format so something shouldn't be too hard to cobble together for at least testing/prototyping purposes.
Hi team, is there any progress on this? I see this is from over a year ago
Hi team, is there any progress on this?
Hi, team, this is will be significant as well, to support CZML files for Cesium for Unreal.
Hi, team, this is will be significant as well, to support geojson files for Cesium for Unreal.
Trying to simplify flight crash recreation animations, attempted fs2020 and ran into issues, played around with cesium and if it would allow a kml file to be imported and used as a spline or something similar so I can easily add a plane model to have it follow the recorded path captured from the blackbox. Also id hope altitude data would be recognized and speed between data points.
@RayDog1995 have you seen this "Build a Flight Tracker" tutorial? https://cesium.com/learn/unreal/unreal-flight-tracker/
Yes, several times. That tutorial uses precompiled .csv files, have you seen this thread where everyone is asking for kml support in cesium plugin for unreal just like how cesiumjs can use kml files: https://community.cesium.com/t/how-to-use-vector-data-kml-shp/13041/2
Yes, I understand that people want KML support. But that's a large feature, and we currently have more pressing priorities so we won't be able to start it right away. So I'm trying to find you a workaround in the meantime. If you're trying to make a plane follow a path, using a CSV file like in the flight tracker tutorial seems like it could be a viable option. Even if you have to convert the source data to CSV first.
Bumping for update. The ability to bring in KML data is much needed for the plugin. The CSV flight path doesn't solve the problem for mac users because there is no visual studio with c++ available.
I need to be able to have a camera follow a KML path, and also to create a visual spline out of the path.
Another request for GeoJSON from the forums: https://community.cesium.com/t/geojson-from-cesium-ion-to-unreal-engine/31495