We tried to use GeoReference->InaccurateTransformUnrealVectorIntoLongLat() but the result is not accurate. While in the other case inside Editor if we use PlaceGeoreferenceOriginHere, it seems to give correct position. How can we make something where we can get lat/lng from any Transform in Runtime.
The inaccurate transform nodes should generally be correct down to <1 meter or so. If you are seeing greater inaccuracy, please let me know.
Unfortunately, the inaccuracy is due to Unreal Engine 4 not supporting double precision. However, Unreal Engine 5 does support double precision, and so those georeference transformation nodes will be accurate in UE5. If that accuracy is important to your project, you may want to consider upgrading to UE5.
@agallegos @Kevin_Ring We’re not sure it matters whether we get a lat/lng from Google Earth or from using InaccurateTransformUnrealToLongitudLatitudeHeight() and try to place our pawn at that location using PlaceGeoReferenceOriginHere, either way it seems like the pawn location is off by 200-300 meters. When we do it manually we do this:
- First place the cesium3dTileSet object in level and load an URL in editor mode.
- Find the loaded city in level.
- Using Georeference, use Function PlaceGeoReferenceOriginHere
- Copy paste, Origin Lat, Long and height.
and trying to get it at runtime we call this function, InaccurateTransformUnrealToLongitudLatitudeHeight() and we are using Pawn world location to get lat/lng
@Kevin_Ring can you please help us on this matter? We’re stuck
Let me make sure I understand correctly what you’re trying to do…
The player is located somewhere in the world, and you want to know their longitude / latitude / height. So you’re getting the player actor’s location and calling “Inaccurate Transform Unreal to Longitude Latitude Height” to get the longitude (in X), the latitude (in Y), and the height (in Z). But you’re finding the reported coordinates are 200-300 meters different from what you expect. Do I have that right?
And if you instead use the “Place Georeference Here” button, it shows the longitude/latitude/height that you expect.
Can you share the exact coordinates produced by each for an example run? Seeing how they relate might offer a clue.
Is it possible that your level has multiple CesiumGeoreference objects, and that you’re passing the wrong one into the “Inaccurate Transform Unreal to Longitude Latitude Height” function?
Is it possible that your player pawn has some kind of camera boom, so that “actor location” is substantially different (200-300 meters maybe?) from the camera location?