diff --git a/src/util/coordinate_calculation.cpp b/src/util/coordinate_calculation.cpp index 7dafb784a..89266feaa 100644 --- a/src/util/coordinate_calculation.cpp +++ b/src/util/coordinate_calculation.cpp @@ -276,10 +276,13 @@ Coordinate interpolateLinear(double factor, const Coordinate from, const Coordin { BOOST_ASSERT(0 <= factor && factor <= 1.0); - FixedLongitude interpolated_lon(((1. - factor) * static_cast(from.lon)) + - (factor * static_cast(to.lon))); - FixedLatitude interpolated_lat(((1. - factor) * static_cast(from.lat)) + - (factor * static_cast(to.lat))); + const auto from_lon = static_cast(from.lon); + const auto from_lat = static_cast(from.lat); + const auto to_lon = static_cast(to.lon); + const auto to_lat = static_cast(to.lat); + + FixedLongitude interpolated_lon(from_lon + factor * (to_lon - from_lon)); + FixedLatitude interpolated_lat(from_lat + factor * (to_lat - from_lat)); return {std::move(interpolated_lon), std::move(interpolated_lat)}; }