- Corregida la posición del panel para que no salga fuera de la pantalla. - Renombrado el interruptor a Visualizar Pendientes. - Aplicado el porcentaje de subida como umbral para calcular el esfuerzo. - Mostrado el umbral de subida utilizado dentro de la tabla de elevación. - Añadido al aviso el total de distancia con pendiente y la altura subida en metros y pisos. - Evitada la duplicación de acumulados al repintar las pendientes. - Cambiados los valores por defecto a subida 2 %, bajada 5 % y coeficiente 8,2. - Añadida la distancia equilibrada andando al detalle técnico. - Mostradas las distancias en kilómetros con tres decimales. - Mostrada la fecha del ZIP activo en el acceso de gestión del modelo DBUS. - Añadidas migraciones para actualizar los antiguos valores predeterminados.
76 lines
2.7 KiB
C#
76 lines
2.7 KiB
C#
using RutasDBUS.Modelos.RedBus;
|
|
|
|
namespace RutasDBUS.Modelos.Planificacion;
|
|
|
|
public sealed class ParadaCandidata
|
|
{
|
|
public Parada Parada { get; set; } = default!;
|
|
public double DistanciaEuclidea { get; set; }
|
|
public double DistanciaAPie { get; set; }
|
|
public double TiempoAPie { get; set; }
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class ParametrosPlanificadorRuta
|
|
{
|
|
// velocidades
|
|
public double VelocidadPieKmH { get; set; } = 3.6;
|
|
public double VelocidadBusKmH { get; set; } = 16.0;
|
|
|
|
// penalizaciones
|
|
public int MinutosPorTransbordo { get; set; } = 5;
|
|
public int MargenTransbordoSegundos { get; set; } = 120;
|
|
public int SegundosPorParadaBus { get; set; } = 30;
|
|
public double FactorPenalizacionDistanciaPie { get; set; } = 1.35;
|
|
public double ParametroPenalizacionDistanciaPieMetros { get; set; } = 100.0;
|
|
public double PesoTransbordoRankingMinutos { get; set; } = 4.0;
|
|
public double FactorEquilibradoAndarBus { get; set; } = 12.0;
|
|
|
|
// selección candidatas
|
|
public int RadioParadasCandidatasMetros { get; set; } = 1200;
|
|
public int MaxParadasCandidatasPorLado { get; set; } = 12;
|
|
public bool UsarOsrmParaRanking { get; set; } = false;
|
|
|
|
// filtro itinerarios
|
|
public bool ActivarRangoLineas { get; set; } = false;
|
|
public int LineaMin { get; set; } = 1;
|
|
public int LineaMax { get; set; } = 999;
|
|
public List<int> LineasPermitidas { get; set; } = new();
|
|
public bool ActivarRangoItinerarios { get; set; } = true;
|
|
public int ItinerarioMin { get; set; } = 1;
|
|
public int ItinerarioMax { get; set; } = 80;
|
|
|
|
// filtro de transbordos
|
|
public bool ActivarRangoTransbordos { get; set; } = true;
|
|
public int MinTransbordosPermitidos { get; set; } = 0;
|
|
public int MaxTransbordosPermitidos { get; set; } = 3;
|
|
|
|
// límites exploración
|
|
public int MaxParesEvaluados { get; set; } = 280;
|
|
public int MaxAlternativasBusPorPar { get; set; } = 4;
|
|
|
|
// planificación temporal
|
|
public bool UsarHorariosReales { get; set; } = true;
|
|
public DateOnly? FechaSalida { get; set; }
|
|
public TimeOnly? HoraSalida { get; set; }
|
|
public bool DescartarAlternativasSinHorario { get; set; } = false;
|
|
|
|
// filtros de espera
|
|
public int MaxEsperaInicialMinutos { get; set; } = 90;
|
|
public int MaxEsperaTransbordoMinutos { get; set; } = 60;
|
|
public int MaxEsperaTotalMinutos { get; set; } = 120;
|
|
|
|
// preferencia UI (null mantiene el criterio equilibrado por defecto)
|
|
public string? PreferenciaEtiquetaRuta { get; set; } = null;
|
|
}
|
|
|
|
public sealed class ResultadoPlanificadorRuta
|
|
{
|
|
public bool Ok { get; set; }
|
|
public string Mensaje { get; set; } = "";
|
|
public List<AlternativaRuta> Alternativas { get; set; } = new();
|
|
public int IndicePreferido { get; set; } = 0;
|
|
}
|