From 06682c23f9079820df756ead5b42d7b04bd8a2ff Mon Sep 17 00:00:00 2001 From: KhalilSelyan <khalil@leodrive.ai> Date: Wed, 2 Oct 2024 11:38:42 +0300 Subject: [PATCH] refactor: Refactor localToGeographic functions to remove unnecessary origin_lat and origin_lon parameters Signed-off-by: KhalilSelyan <khalil@leodrive.ai> --- .../src/goal_pose.cpp | 22 +++++++------------ .../src/include/goal_pose.hpp | 3 +-- .../src/include/path_overlay.hpp | 3 +-- .../src/path_overlay.cpp | 22 +++++++------------ 4 files changed, 18 insertions(+), 32 deletions(-) diff --git a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/goal_pose.cpp b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/goal_pose.cpp index 4b3b52ac60aa2..6dd874c1ae228 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/goal_pose.cpp +++ b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/goal_pose.cpp @@ -41,7 +41,7 @@ std::pair<double, double> GoalPose::localToGeographic( double local_x, double local_y, double origin_lat, double origin_lon) { if (projector_type_ == tier4_map_msgs::msg::MapProjectorInfo::MGRS) { - return localToGeographicMGRS(local_x, local_y, origin_lat, origin_lon, mgrs_grid_); + return localToGeographicMGRS(local_x, local_y, mgrs_grid_); } else if (projector_type_ == tier4_map_msgs::msg::MapProjectorInfo::LOCAL_CARTESIAN_UTM) { return localToGeographicUTM(local_x, local_y, origin_lat, origin_lon); } @@ -72,29 +72,23 @@ std::pair<double, double> GoalPose::localToGeographicUTM( } std::pair<double, double> GoalPose::localToGeographicMGRS( - double local_x, double local_y, double origin_lat, double origin_lon, - const std::string & mgrs_grid) + double local_x, double local_y, const std::string & mgrs_grid) { int zone; bool north_p; - double origin_x, origin_y, gamma, k, mgrs_x, mgrs_y; - - // Convert origin coordinates to UTM - GeographicLib::UTMUPS::Forward( - origin_lat, origin_lon, zone, north_p, origin_x, origin_y, gamma, k); + double mgrs_origin_x, mgrs_origin_y; + int prec; // Convert MGRS grid string to UTM coordinates - std::string mgrs_string = mgrs_grid + "0000000000000000"; - int prec; - GeographicLib::MGRS::Reverse(mgrs_string, zone, north_p, mgrs_x, mgrs_y, prec); + GeographicLib::MGRS::Reverse(mgrs_grid, zone, north_p, mgrs_origin_x, mgrs_origin_y, prec, false); // Calculate the global UTM coordinates by adding local offsets - double global_x = mgrs_x + local_x; - double global_y = mgrs_y + local_y; + double utm_x = mgrs_origin_x + local_x; + double utm_y = mgrs_origin_y + local_y; // Convert global UTM coordinates to geographic coordinates double goal_lat, goal_lon; - GeographicLib::UTMUPS::Reverse(zone, north_p, global_x, global_y, goal_lat, goal_lon); + GeographicLib::UTMUPS::Reverse(zone, north_p, utm_x, utm_y, goal_lat, goal_lon); return {goal_lat, goal_lon}; } diff --git a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/goal_pose.hpp b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/goal_pose.hpp index 62c8e19e8c209..56457d5a7ed9c 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/goal_pose.hpp +++ b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/goal_pose.hpp @@ -54,8 +54,7 @@ class GoalPose std::pair<double, double> localToGeographicUTM( double local_x, double local_y, double origin_lat, double origin_lon); std::pair<double, double> localToGeographicMGRS( - double local_x, double local_y, double origin_lat, double origin_lon, - const std::string & mgrs_grid); + double local_x, double local_y, const std::string & mgrs_grid); std::pair<int, int> getTileOffsets( double lat, double lon, int zoom, const QRectF & backgroundRect); }; diff --git a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/path_overlay.hpp b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/path_overlay.hpp index 6f54206781d3c..a69f8d69efe72 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/path_overlay.hpp +++ b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/include/path_overlay.hpp @@ -56,8 +56,7 @@ class PathOverlay std::pair<double, double> localToGeographicUTM( double local_x, double local_y, double origin_lat, double origin_lon); std::pair<double, double> localToGeographicMGRS( - double local_x, double local_y, double origin_lat, double origin_lon, - const std::string & mgrs_grid); + double local_x, double local_y, const std::string & mgrs_grid); std::pair<int, int> getTileOffsets( double lat, double lon, int zoom, const QRectF & backgroundRect); }; diff --git a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/path_overlay.cpp b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/path_overlay.cpp index 9a9ae968bf694..8baa1a75cda40 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/path_overlay.cpp +++ b/common/autoware_overlay_rviz_plugin/autoware_minimap_overlay_rviz_plugin/src/path_overlay.cpp @@ -49,7 +49,7 @@ std::pair<double, double> PathOverlay::localToGeographic( double local_x, double local_y, double origin_lat, double origin_lon) { if (projector_type_ == tier4_map_msgs::msg::MapProjectorInfo::MGRS) { - return localToGeographicMGRS(local_x, local_y, origin_lat, origin_lon, mgrs_grid_); + return localToGeographicMGRS(local_x, local_y, mgrs_grid_); } else if (projector_type_ == tier4_map_msgs::msg::MapProjectorInfo::LOCAL_CARTESIAN_UTM) { return localToGeographicUTM(local_x, local_y, origin_lat, origin_lon); } @@ -80,29 +80,23 @@ std::pair<double, double> PathOverlay::localToGeographicUTM( } std::pair<double, double> PathOverlay::localToGeographicMGRS( - double local_x, double local_y, double origin_lat, double origin_lon, - const std::string & mgrs_grid) + double local_x, double local_y, const std::string & mgrs_grid) { int zone; bool north_p; - double origin_x, origin_y, gamma, k, mgrs_x, mgrs_y; - - // Convert origin coordinates to UTM - GeographicLib::UTMUPS::Forward( - origin_lat, origin_lon, zone, north_p, origin_x, origin_y, gamma, k); + double mgrs_origin_x, mgrs_origin_y; + int prec; // Convert MGRS grid string to UTM coordinates - std::string mgrs_string = mgrs_grid + "0000000000000000"; - int prec; - GeographicLib::MGRS::Reverse(mgrs_string, zone, north_p, mgrs_x, mgrs_y, prec); + GeographicLib::MGRS::Reverse(mgrs_grid, zone, north_p, mgrs_origin_x, mgrs_origin_y, prec, false); // Calculate the global UTM coordinates by adding local offsets - double global_x = mgrs_x + local_x; - double global_y = mgrs_y + local_y; + double utm_x = mgrs_origin_x + local_x; + double utm_y = mgrs_origin_y + local_y; // Convert global UTM coordinates to geographic coordinates double goal_lat, goal_lon; - GeographicLib::UTMUPS::Reverse(zone, north_p, global_x, global_y, goal_lat, goal_lon); + GeographicLib::UTMUPS::Reverse(zone, north_p, utm_x, utm_y, goal_lat, goal_lon); return {goal_lat, goal_lon}; }