Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support vector files (KML, SHP, CZML, GeoJSON) #628

Open
argallegos opened this issue Sep 3, 2021 · 14 comments
Open

Support vector files (KML, SHP, CZML, GeoJSON) #628

argallegos opened this issue Sep 3, 2021 · 14 comments
Labels
enhancement New feature or request roadmap Future development suggestions

Comments

@argallegos
Copy link
Contributor

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.

@argallegos argallegos added enhancement New feature or request roadmap Future development suggestions labels Sep 3, 2021
@techdragon
Copy link

techdragon commented Sep 18, 2021

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

@kring kring added this to Backlog in Cesium for Unreal Sep 19, 2021
@shehzan10
Copy link
Member

@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.

@argallegos
Copy link
Contributor Author

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.

@techdragon
Copy link

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.

@davesauce14
Copy link

Hi team, is there any progress on this? I see this is from over a year ago

@IndigoCloud6
Copy link

Hi team, is there any progress on this?

@Neurowerk
Copy link

Hi, team, this is will be significant as well, to support CZML files for Cesium for Unreal.

@lzp0070007
Copy link

Hi, team, this is will be significant as well, to support geojson files for Cesium for Unreal.

@RayDog1995
Copy link

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.

@kring
Copy link
Member

kring commented Apr 27, 2023

@RayDog1995 have you seen this "Build a Flight Tracker" tutorial?
https://cesium.com/learn/unreal/unreal-flight-tracker/

@RayDog1995
Copy link

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

@kring
Copy link
Member

kring commented May 6, 2023

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.

@L0CKZ0R
Copy link

L0CKZ0R commented Oct 22, 2023

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.

@azrogers
Copy link
Contributor

Another request for GeoJSON from the forums: https://community.cesium.com/t/geojson-from-cesium-ion-to-unreal-engine/31495

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request roadmap Future development suggestions
Projects
Development

No branches or pull requests