2D Maps for Widget

Hi,

3D maps are tested and are working nice. However, what if I want to place a 2D map on a widget in order to allow the Architect to pin point the position for the building? Something similar like google maps when you drag the pointer. I don’t see any components in the palette for this. I am using a jpg image but it very high level. The image below is at run mode where I have made a Widget for time, longlat, timezone, MonthDay selection.

Thanks,
Dimitrios Ververids @ PrismArch project : https://prismarch-h2020.eu/

Hi @jimver04

There is no functionality in the Cesium for Unreal plugin that would map a 2D position to a 3D position like you describe. It would be a very cool feature to add to the plugin eventually, but for now, you may have to build out a system on your own for your project.

I imagine it would involve accurately mapping XY coordinates of a 2D image to 3D geospatial terms. Due to the shape of the earth, there would always be some distortion in any 2D projection, so you may have to get in to some complicated math. It would definitely be more accurate with more zoomed in 2D maps. If it were a map the size of a city, the distortion might be small enough as to be unnoticeable, but on a global scale, placing things via a 2D map could likely get pretty inaccurate.

If you are able to retrieve a latitude and longitude from a 2D map, you could feed it in to a marker or model using a georeference component to place that actor at the selected latitude and longitude. You would also need to figure out the height for that location to make sure the actor was not under the ground or floating. This post might be helpful for that.

If you are using a smaller-scale 2D map, it might be worthwhile checking out a minimap plugin like this - Minimap, Map and Navigation System in Code Plugins - UE Marketplace.

Let me know how your project goes, if you’re able! It would be great to add something like this to the plugin in the future, and anything you can share about the process could help guide our implementation.

Did you ever get something like this working?