using System.Text.Json.Serialization; using OSMDatastructure.Graph; using OSMImporter; using Pathfinding; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); app.MapGet("/getRoute", (float latStart, float lonStart, float latEnd, float lonEnd) => { DateTime startCalc = DateTime.Now; List result = Pathfinder.AStarDistance("D:/stuttgart-regbez-latest", new Coordinates(latStart, lonStart), new Coordinates(latEnd, lonEnd)); PathResult pathResult = new PathResult(startCalc - DateTime.Now, result); return pathResult; } ); app.MapGet("/getClosestNode", (float lat, float lon) => { RegionManager regionManager = new RegionManager("D:/stuttgart-regbez-latest"); return Pathfinder.ClosestNodeToCoordinates(new Coordinates(lat, lon), Tag.SpeedType.car, regionManager); }); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); internal class PathResult { [JsonInclude]public TimeSpan calcTime; [JsonInclude] public double pathWeight; [JsonInclude] public double pathTravelDistance; [JsonInclude]public List pathNodes; public PathResult(TimeSpan calcTime, List pathNodes) { this.calcTime = calcTime; this.pathNodes = pathNodes; this.pathWeight = pathNodes.Last().currentPathWeight; this.pathTravelDistance = pathNodes.Last().currentPathLength; } }