From 4d4c92e2234fcd632f096793e4e118d174b28794 Mon Sep 17 00:00:00 2001 From: Mathieu Pellerin Date: Sun, 23 Feb 2025 14:51:25 +0700 Subject: [PATCH] Fix crash with scalebar measurement when points can't be transformed --- src/core/scalebarmeasurement.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/scalebarmeasurement.cpp b/src/core/scalebarmeasurement.cpp index ad81c121d3..022d34cd89 100644 --- a/src/core/scalebarmeasurement.cpp +++ b/src/core/scalebarmeasurement.cpp @@ -98,8 +98,17 @@ void ScaleBarMeasurement::measure() const double yPosition = 0.5 * ( extent.yMinimum() + extent.yMaximum() ); const Qgis::DistanceUnit mapUnits = mDistanceArea.lengthUnits(); - double extentLength = mDistanceArea.measureLine( QgsPointXY( extent.xMinimum(), yPosition ), - QgsPointXY( extent.xMaximum(), yPosition ) ); + double extentLength = 0.0; + try + { + extentLength = mDistanceArea.measureLine( QgsPointXY( extent.xMinimum(), yPosition ), + QgsPointXY( extent.xMaximum(), yPosition ) ); + } + catch ( const QgsException &e ) + { + Q_UNUSED( e ) + return; + } Qgis::DistanceUnit distanceUnit = mProject->distanceUnits(); extentLength = mDistanceArea.convertLengthMeasurement( extentLength, distanceUnit );