summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-03-13 20:27:27 +0100
committerAriel Costas Guerrero <ariel@costas.dev>2026-03-13 20:27:27 +0100
commit3a2982c8ebb09cea53efc558d65c1ec304698997 (patch)
tree41be6564cb90ec3e6222583ae0343f665e8db6fd
parentece17875d4e454423f55f0623a456c0433ecd502 (diff)
fix: handle exceptions during point transformation and initialize shape points
-rw-r--r--src/Enmarcha.Backend/Services/ShapeTraversalService.cs17
-rw-r--r--src/Enmarcha.Backend/Types/ConsolidatedCirculation.cs2
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; } = [];
}