diff options
Diffstat (limited to 'src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs')
| -rw-r--r-- | src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs b/src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs index 63f4a2e..c3c66f4 100644 --- a/src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs +++ b/src/Costasdev.Busurbano.Backend/Services/ShapeTraversalService.cs @@ -95,6 +95,26 @@ public class ShapeTraversalService return FindClosestPointIndex(shape.Points, location); } + public Shape CreateShapeFromWgs84(List<Position> points) + { + var shape = new Shape(); + var inverseTransform = _transformation.MathTransform.Inverse(); + + foreach (var point in points) + { + var transformed = inverseTransform.Transform(new[] { point.Longitude, point.Latitude }); + shape.Points.Add(new Epsg25829 { X = transformed[0], Y = transformed[1] }); + } + return shape; + } + + public Epsg25829 TransformToEpsg25829(double lat, double lon) + { + var inverseTransform = _transformation.MathTransform.Inverse(); + var transformed = inverseTransform.Transform(new[] { lon, lat }); + return new Epsg25829 { X = transformed[0], Y = transformed[1] }; + } + /// <summary> /// Calculates the bus position by reverse-traversing the shape from the stop location /// </summary> |
