diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/GnssSensor.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/GnssSensor.cpp index a3f045243..4c8aa5dc0 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/GnssSensor.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/GnssSensor.cpp @@ -8,6 +8,7 @@ #include "Carla/Sensor/GnssSensor.h" #include "Carla/Game/CarlaEpisode.h" #include "Carla/Game/CarlaStatics.h" +#include "Carla/MapGen/LargeMapManager.h" #include #include "carla/geom/Vector3D.h" @@ -34,7 +35,14 @@ void AGnssSensor::Set(const FActorDescription &ActorDescription) void AGnssSensor::PostPhysTick(UWorld *World, ELevelTick TickType, float DeltaSeconds) { TRACE_CPUPROFILER_EVENT_SCOPE(AGnssSensor::PostPhysTick); - carla::geom::Location Location = GetActorLocation(); + + FVector ActorLocation = GetActorLocation(); + ALargeMapManager * LargeMap = UCarlaStatics::GetLargeMapManager(GetWorld()); + if (LargeMap) + { + ActorLocation = LargeMap->LocalToGlobalLocation(ActorLocation); + } + carla::geom::Location Location = ActorLocation; carla::geom::GeoLocation CurrentLocation = CurrentGeoReference.Transform(Location); // Compute the noise for the sensor