diff --git a/src/SimCore/Position.cpp b/src/SimCore/Position.cpp index 14a3844..b5d55f7 100644 --- a/src/SimCore/Position.cpp +++ b/src/SimCore/Position.cpp @@ -24,6 +24,10 @@ namespace SimCore { std::lock_guard lock(other.mx); GeocentricPos_ = other.GeocentricPos_; GeodesicPos_ = other.GeodesicPos_; + + earth_ = std::make_unique(GeographicLib::Constants::WGS84_a(), GeographicLib::Constants::WGS84_f()); + geod_ = std::make_unique(GeographicLib::Constants::WGS84_a(), GeographicLib::Constants::WGS84_f()); + wgs84_ = std::make_unique(GeographicLib::Constants::WGS84_a(), GeographicLib::Constants::WGS84_f()); } @@ -59,7 +63,10 @@ namespace SimCore { GeocentricPos_(GeocentricPosition::Y) = Y; GeocentricPos_(GeocentricPosition::Z)= Z; - earth_->Reverse(GeocentricPos_(GeocentricPosition::X),GeocentricPos_(GeocentricPosition::Y),GeocentricPos_(GeocentricPosition::Z),GeodesicPos_(GeodesicPosition::LATITUDE),GeodesicPos_(GeodesicPosition::LONGITUDE),GeodesicPos_(GeodesicPosition::HEIGHT)); + double lat, lon, h; + + + earth_->Reverse(GeocentricPos_(GeocentricPosition::X),GeocentricPos_(GeocentricPosition::Y),GeocentricPos_(GeocentricPosition::Z),GeodesicPos_(GeodesicPosition::LATITUDE),GeodesicPos_(GeodesicPosition::LONGITUDE),GeodesicPos_(GeodesicPosition::HEIGHT)); } void Position::setGeodesicPos(double lat, double lon, int height){