using OSMDatastructure; using OSMDatastructure.Graph; 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, Tag.SpeedType vehicle, double stayOnSameRoadPriority, double useHigherLevelRoadsPriority, double useRoadsWithLessJunctionsPriority, double angleFactor) => { Pathfinder result = new Pathfinder("D:/stuttgart-regbez-latest", useHigherLevelRoadsPriority, stayOnSameRoadPriority, useRoadsWithLessJunctionsPriority, angleFactor, 30).AStar(new Coordinates(latStart, lonStart), new Coordinates(latEnd, lonEnd), vehicle); return result.pathResult; } ); app.MapGet("/getShortestRoute", (float latStart, float lonStart, float latEnd, float lonEnd) => { Pathfinder result = new Pathfinder("D:/stuttgart-regbez-latest", 0, 0, 0, 0, 30).AStar(new Coordinates(latStart, lonStart), new Coordinates(latEnd, lonEnd), Tag.SpeedType.any); return result.pathResult; } ); app.MapGet("/getClosestNode", (float lat, float lon) => { RegionManager regionManager = new RegionManager("D:/stuttgart-regbez-latest"); return regionManager.ClosestNodeToCoordinates(new Coordinates(lat, lon), Tag.SpeedType.any); }); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();