diff options
| author | Ariel Costas Guerrero <ariel@costas.dev> | 2026-03-13 20:27:27 +0100 |
|---|---|---|
| committer | Ariel Costas Guerrero <ariel@costas.dev> | 2026-03-13 20:27:27 +0100 |
| commit | 3a2982c8ebb09cea53efc558d65c1ec304698997 (patch) | |
| tree | 41be6564cb90ec3e6222583ae0343f665e8db6fd | |
| parent | ece17875d4e454423f55f0623a456c0433ecd502 (diff) | |
fix: handle exceptions during point transformation and initialize shape points
| -rw-r--r-- | src/Enmarcha.Backend/Services/ShapeTraversalService.cs | 17 | ||||
| -rw-r--r-- | src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs | 2 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/Enmarcha.Backend/Services/ShapeTraversalService.cs b/src/Enmarcha.Backend/Services/ShapeTraversalService.cs index 1f77929..10de3e0 100644 --- a/src/Enmarcha.Backend/Services/ShapeTraversalService.cs +++ b/src/Enmarcha.Backend/Services/ShapeTraversalService.cs @@ -41,7 +41,22 @@ public class ShapeTraversalService foreach (var point in points) { - var transformed = inverseTransform.Transform(new[] { point.Longitude, point.Latitude }); + double[]? transformed = null; + try + { + transformed = inverseTransform.Transform(new[] { point.Longitude, point.Latitude }); + } + catch (Exception) + { + _logger.LogError("Exception while transforming point from {Lat},{Lon}", point.Latitude, point.Longitude); + continue; + } + + if (transformed is null) + { + _logger.LogError("Transformed point from {Lat},{Lon} is null", point.Latitude, point.Longitude); + continue; + } shape.Points.Add(new Epsg25829 { X = transformed[0], Y = transformed[1] }); } return shape; diff --git a/src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs b/src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs index bb6a251..298e2f4 100644 --- a/src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs +++ b/src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs @@ -46,5 +46,5 @@ public class Epsg25829 public class Shape { public string ShapeId { get; set; } - public List<Epsg25829> Points { get; set; } + public List<Epsg25829> Points { get; set; } = []; } |
