Modos de viaje

Gerardo/ModosViaje
Gerardo 2024-03-12 12:43:13 +01:00
parent 9273611e3f
commit 3f57544e9d
14 changed files with 91 additions and 23 deletions

View File

@ -1445,7 +1445,7 @@ namespace OliviaAddInPro.Helper
if (!System.IO.Directory.Exists(outpath)) if (!System.IO.Directory.Exists(outpath))
System.IO.Directory.CreateDirectory(outpath); System.IO.Directory.CreateDirectory(outpath);
FeatureClass fc = null; FeatureClass fc = null;
bool debug = true; bool debug = false;
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
//Prepara una where_clause con las entidades que cumplen el filtro //Prepara una where_clause con las entidades que cumplen el filtro
//Abre la featureclass //Abre la featureclass

View File

@ -27,6 +27,8 @@ namespace OliviaAddInPro.Model
public static string cons_evit = "_evita"; //Campo que indica si el vial es evitable public static string cons_evit = "_evita"; //Campo que indica si el vial es evitable
public static string cons_ele_f = "_elev_f"; //altura from public static string cons_ele_f = "_elev_f"; //altura from
public static string cons_ele_t = "_elev_t"; //altura to public static string cons_ele_t = "_elev_t"; //altura to
public static string cons_angulo = "_angulo"; //altura to
public static OliviaConfNW config; //configuracion para sacar capmos por defecto public static OliviaConfNW config; //configuracion para sacar capmos por defecto
}; };

View File

@ -15,11 +15,16 @@ namespace OliviaAddInPro.Model
nombre = "default"; nombre = "default";
filtro_omitir = ""; filtro_omitir = "";
campo_prioridad = "0"; campo_prioridad = "0";
vehiculo_def_reco = -1;
vehiculo_def_lim = -1;
} }
public string nombre { get; set; } public string nombre { get; set; }
public string filtro_omitir { get; set; } public string filtro_omitir { get; set; }
public string campo_prioridad { get; set; } public string campo_prioridad { get; set; }
public int vehiculo_def_reco { get; set; }
public int vehiculo_def_lim { get; set; }
} }
} }

View File

@ -25,5 +25,7 @@ namespace OliviaAddInPro.Model
public bool comprueba_elevacion { get; set; } public bool comprueba_elevacion { get; set; }
public bool revisa_topologia { get; set; } public bool revisa_topologia { get; set; }
public bool revisa_conjunciones { get; set; } public bool revisa_conjunciones { get; set; }
public bool revisa_angulos { get; set; }
public string campo_angulos { get; set; }
} }
} }

View File

@ -164,6 +164,7 @@ namespace OliviaAddInPro.Model
public const string GG_elev = "elevacion"; public const string GG_elev = "elevacion";
public const string GG_topo = "reviTopo"; public const string GG_topo = "reviTopo";
public const string GG_conj = "reviConj"; public const string GG_conj = "reviConj";
public const string GG_angu = "reviAng";
/** /**
* Define las propiedades de limpieza a enviar a oliviatasks * Define las propiedades de limpieza a enviar a oliviatasks
*/ */

View File

@ -412,8 +412,10 @@ namespace OliviaAddInPro.Services
campo_elevacion_to = "$feature.T_ELEV", campo_elevacion_to = "$feature.T_ELEV",
comprueba_elevacion = true, comprueba_elevacion = true,
revisa_topologia = false, revisa_topologia = false,
revisa_conjunciones = false revisa_conjunciones = false,
}); revisa_angulos = false,
campo_angulos = "0"
}); ;
c.ListaNw.Add(new OliviaConfNW() c.ListaNw.Add(new OliviaConfNW()
{ {
nombre = "StreetMapPremiun", nombre = "StreetMapPremiun",
@ -426,7 +428,9 @@ namespace OliviaAddInPro.Services
campo_elevacion_to = "IIf( $feature.T_ZLEV != null, $feature.T_ZLEV, 0)", campo_elevacion_to = "IIf( $feature.T_ZLEV != null, $feature.T_ZLEV, 0)",
comprueba_elevacion = false, comprueba_elevacion = false,
revisa_topologia = false, revisa_topologia = false,
revisa_conjunciones = true revisa_conjunciones = true,
revisa_angulos = true,
campo_angulos = "IIF($feature.ROAD_CLASS== '3 - Highway Ramp' || $feature.ROAD_CLASS== '6 - Major Road' || $feature.ROAD_CLASS == '1 - Surface Street', 90 , 0)"
}); });
c.ListaMV = new List<OliviaConfMV>(); c.ListaMV = new List<OliviaConfMV>();
c.ListaMV.Add(new OliviaConfMV() c.ListaMV.Add(new OliviaConfMV()

View File

@ -344,7 +344,7 @@ namespace OliviaAddInPro.Services
var where = String.Empty; var where = String.Empty;
if (!String.IsNullOrEmpty(ComunDef.configMV.filtro_omitir)) if (!String.IsNullOrEmpty(ComunDef.configMV.filtro_omitir))
{ {
where = "not(" + ComunDef.configMV.filtro_omitir + ")"; where = ComunDef.configMV.filtro_omitir;
} }
filtroEspacial = HelperGdb.CreateFiler(where, geom_export); filtroEspacial = HelperGdb.CreateFiler(where, geom_export);
if (filtroEspacial == null) if (filtroEspacial == null)
@ -381,6 +381,7 @@ namespace OliviaAddInPro.Services
OliviaGlob.Paths.PathNW_c = OliviaGlob.Paths.DirData + com.NombreShpExportNw_C; OliviaGlob.Paths.PathNW_c = OliviaGlob.Paths.DirData + com.NombreShpExportNw_C;
if (ComunDef.CamposNW.config.revisa_conjunciones) if (ComunDef.CamposNW.config.revisa_conjunciones)
{ {
filtroEspacial = HelperGdb.CreateFiler(String.Empty, geom_export);
com.ProgrSrc.IncMessage(10, "Revisando conjunciones de la red");//60% com.ProgrSrc.IncMessage(10, "Revisando conjunciones de la red");//60%
if (!HelperGdb.ExportShp2(OliviaGlob.Paths.PathGdbNw_conj, filtroEspacial, com.NombreShpExportNw_C, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc, spatRefData, 100)) if (!HelperGdb.ExportShp2(OliviaGlob.Paths.PathGdbNw_conj, filtroEspacial, com.NombreShpExportNw_C, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc, spatRefData, 100))
{ {
@ -412,7 +413,7 @@ namespace OliviaAddInPro.Services
} }
bool EstandarizaCamposNW(string pathNW) bool EstandarizaCamposNW(string pathNW)
{ {
HelperGdb.FieldToAdd[] fields = new HelperGdb.FieldToAdd[8]; HelperGdb.FieldToAdd[] fields = new HelperGdb.FieldToAdd[9];
//campo SECTOR //campo SECTOR
int i = 0; int i = 0;
fields[i].Name = ComunDef.CamposNW.cons_kph; fields[i].Name = ComunDef.CamposNW.cons_kph;
@ -461,7 +462,12 @@ namespace OliviaAddInPro.Services
fields[i].Alias = ComunDef.CamposNW.cons_name; fields[i].Alias = ComunDef.CamposNW.cons_name;
fields[i].Tipo = "TEXT"; fields[i].Tipo = "TEXT";
fields[i].Length = 128; fields[i].Length = 128;
i++;
fields[i].Name = ComunDef.CamposNW.cons_angulo;
fields[i].Alias = ComunDef.CamposNW.cons_angulo;
fields[i].Tipo = "FLOAT";
fields[i].Length = 128;
if (!HelperGdb.AddFieldsSync(pathNW, fields)) if (!HelperGdb.AddFieldsSync(pathNW, fields))
@ -485,6 +491,9 @@ namespace OliviaAddInPro.Services
if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_evit, ComunDef.configMV.campo_prioridad)) if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_evit, ComunDef.configMV.campo_prioridad))
return false; return false;
if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_angulo, ComunDef.CamposNW.config.campo_angulos))
return false;
return true; return true;
} }
/** /**

View File

@ -83,6 +83,7 @@ namespace OliviaAddInPro.Services.LanzaSrv
GeneralDef.EjecGeoParamSep + GeneralDef.GG_elev + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.comprueba_elevacion ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_elev + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.comprueba_elevacion ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_topo + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_topologia ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_topo + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_topologia ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_conj + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_conjunciones ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_conj + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_conjunciones ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_angu + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_angulos ? 1 : 0) + " " +
//campos del dbf de limpieza para leer //campos del dbf de limpieza para leer
GeneralDef.EjecGeoParamSep + GeneralDef.GAA_obser + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_observ + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GAA_obser + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_observ + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GAA_anch_tip + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_anch_tip + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GAA_anch_tip + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_anch_tip + " " +

View File

@ -94,6 +94,7 @@ namespace OliviaAddInPro.Services.LanzaSrv
GeneralDef.EjecGeoParamSep + GeneralDef.GG_elev + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.comprueba_elevacion ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_elev + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.comprueba_elevacion ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_topo + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_topologia ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_topo + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_topologia ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_conj + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_conjunciones ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_conj + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_conjunciones ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GG_angu + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_angulos ? 1 : 0) + " " +
GeneralDef.EjecGeoParamSep + GeneralDef.GR_lateral + GeneralDef.EjecGeoParamIgual + reco.TipoLate + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_lateral + GeneralDef.EjecGeoParamIgual + reco.TipoLate + " " +
//mima de la nw //mima de la nw
GeneralDef.EjecGeoParamSep + GeneralDef.GTO_mima_xmin + GeneralDef.EjecGeoParamIgual + reco.MimaNw.XMin + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GTO_mima_xmin + GeneralDef.EjecGeoParamIgual + reco.MimaNw.XMin + " " +

View File

@ -34,7 +34,7 @@ namespace OliviaAddInPro.Services
public Respuesta<bool> Ejecuta(ModosEjec modo) public Respuesta<bool> Ejecuta(ModosEjec modo)
{ {
var modos_viaje = ConfigServ.Serv.Leer().ListaMV; var modos_viaje = ConfigServ.Serv.Leer().ListaMV;
if (modos_viaje != null && modos_viaje.Count > TipoMv) if (modos_viaje != null && modos_viaje.Count > TipoMv && TipoMv >= 0)
{ {
ComunDef.configMV = modos_viaje[TipoMv]; ComunDef.configMV = modos_viaje[TipoMv];
} }
@ -126,6 +126,34 @@ namespace OliviaAddInPro.Services
res.AddRange(conf.ListaMV.Select(c => c.nombre)); res.AddRange(conf.ListaMV.Select(c => c.nombre));
return res; return res;
} }
public int GetModosViajesDefecto(int vehiculo)
{
var conf = ConfigServ.Serv.Leer();
var res = new ObservableCollection<string>();
if (conf.ListaMV == null || conf.ListaMV.Count <= 0)
return -1;
for(int i=0; i< conf.ListaMV.Count; i++)
{
if (conf.ListaMV[i].vehiculo_def_reco == vehiculo)
return i;
}
return 0;
}
public int GetModosViajesDefecto(bool rcircu)
{
int vehiculo= rcircu? 1: 0;
var conf = ConfigServ.Serv.Leer();
var res = new ObservableCollection<string>();
if (conf.ListaMV == null || conf.ListaMV.Count <= 0)
return -1;
for (int i = 0; i < conf.ListaMV.Count; i++)
{
if (conf.ListaMV[i].vehiculo_def_lim == vehiculo)
return i;
}
return 0;
}
/** /**
* Comprueba lo necesario para ver si hay campos para la planificación * Comprueba lo necesario para ver si hay campos para la planificación
*/ */

View File

@ -70,7 +70,15 @@ namespace OliviaAddInPro.Services
{ {
Value = false Value = false
}; };
var modos_viaje = ConfigServ.Serv.Leer().ListaMV;
if (modos_viaje != null && modos_viaje.Count > TipoMv && TipoMv>=0)
{
ComunDef.configMV = modos_viaje[TipoMv];
}
else
{
ComunDef.configMV = new OliviaConfMV();
}
com = (TratamientoComun)reco; com = (TratamientoComun)reco;
string nombFileAmbs = string.Empty; string nombFileAmbs = string.Empty;

View File

@ -37,7 +37,7 @@
VerticalAlignment="Top" Width="260" SelectionChanged="comboBox_mv_SelectionChanged" VerticalAlignment="Top" Width="260" SelectionChanged="comboBox_mv_SelectionChanged"
SelectedIndex="{Binding Path=TipoMv, Mode = TwoWay}"/> SelectedIndex="{Binding Path=TipoMv, Mode = TwoWay}"/>
<Label Content="Ámbitos de Trabajo" HorizontalAlignment="Left" Margin="15,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.391,-0.203" FontWeight="DemiBold"/> <Label Content="Ámbitos de Trabajo" HorizontalAlignment="Left" Margin="15,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="-0.391,-0.203" FontWeight="DemiBold"/>
<ComboBox x:Name="comboBox_ambitos" IsEnabled="{Binding Path=CapaAbierta, Mode = TwoWay}" ItemsSource="{Binding Path=tiposMv, Mode = TwoWay}" HorizontalAlignment="Left" Margin="20,0,0,0" <ComboBox x:Name="comboBox_ambitos" IsEnabled="{Binding Path=CapaAbierta, Mode = TwoWay}" ItemsSource="{Binding Path=OpsAmbs, Mode = TwoWay}" HorizontalAlignment="Left" Margin="20,0,0,0"
VerticalAlignment="Top" Width="260" SelectionChanged="comboBox_ambitos_SelectionChanged" VerticalAlignment="Top" Width="260" SelectionChanged="comboBox_ambitos_SelectionChanged"
SelectedIndex="{Binding Path=SelOpAmb, Mode = TwoWay}"/> SelectedIndex="{Binding Path=SelOpAmb, Mode = TwoWay}"/>
<ListBox x:Name="listBox_ambitos" IsEnabled="{Binding Path=CapaAbierta, Mode = TwoWay}" ItemsSource="{Binding Path=Ambitos, Mode = TwoWay}" HorizontalAlignment="Left" Height="100" <ListBox x:Name="listBox_ambitos" IsEnabled="{Binding Path=CapaAbierta, Mode = TwoWay}" ItemsSource="{Binding Path=Ambitos, Mode = TwoWay}" HorizontalAlignment="Left" Height="100"

View File

@ -287,7 +287,9 @@ namespace OliviaAddInPro
if (TipoTto != (int)LimpiezaDef.TiposTto.TtoNoDef) if (TipoTto != (int)LimpiezaDef.TiposTto.TtoNoDef)
{ {
RespCirc = LimpiezaDef.rest_circ[TipoTto]; RespCirc = LimpiezaDef.rest_circ[TipoTto];
int tv = limpServ.GetModosViajesDefecto(RespCirc);
if (tv >= 0)
TipoMv = tv;
if (LimpiezaDef.v_desplazamiento[TipoTto] > 0) if (LimpiezaDef.v_desplazamiento[TipoTto] > 0)
{ {
TextVeloDespl = Convert.ToString(LimpiezaDef.v_desplazamiento[TipoTto]); TextVeloDespl = Convert.ToString(LimpiezaDef.v_desplazamiento[TipoTto]);

View File

@ -602,6 +602,11 @@ namespace OliviaAddInPro
TipoVehic = tto; TipoVehic = tto;
if (TipoVehic >= 0) if (TipoVehic >= 0)
{ {
int tmv =new LimpiezaServ(null).GetModosViajesDefecto(TipoVehic);
if(tmv>=0)
{
TipoMv = tmv;
}
//si también se ha seleccionado tipo de carga, se rellena la lista de capacidades //si también se ha seleccionado tipo de carga, se rellena la lista de capacidades
rellena_capac(); rellena_capac();
} }