From 3f57544e9d494eb7ac1e44ff260fc897c8e401cd Mon Sep 17 00:00:00 2001 From: Gerardo Date: Tue, 12 Mar 2024 12:43:13 +0100 Subject: [PATCH] Modos de viaje --- Helper/HelperGdb.cs | 4 +-- Model/ComunDef.cs | 2 ++ Model/OliviaConfMV.cs | 7 ++++- Model/OliviaConfNW.cs | 2 ++ Model/OliviaDef.cs | 1 + Services/ConfigServ.cs | 30 +++++++++++-------- Services/EjecServ.cs | 15 ++++++++-- Services/LanzaSrv/LanzaLimpSrv.cs | 1 + Services/LanzaSrv/LanzaRecoSrv.cs | 1 + Services/LimpiezaServ.cs | 30 ++++++++++++++++++- Services/RecogidaServ.cs | 10 ++++++- View/Limpieza/PaneLimpiezaSub1.xaml | 2 +- .../Limpieza/PaneLimpiezaSub1ViewModel.cs | 4 ++- .../Recogida/PaneRecogidaSub1ViewModel.cs | 5 ++++ 14 files changed, 91 insertions(+), 23 deletions(-) diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs index 6894abd..206a6a6 100644 --- a/Helper/HelperGdb.cs +++ b/Helper/HelperGdb.cs @@ -1445,7 +1445,7 @@ namespace OliviaAddInPro.Helper if (!System.IO.Directory.Exists(outpath)) System.IO.Directory.CreateDirectory(outpath); FeatureClass fc = null; - bool debug = true; + bool debug = false; ///////////////////////////////////////////////////////// //Prepara una where_clause con las entidades que cumplen el filtro //Abre la featureclass @@ -2755,7 +2755,7 @@ namespace OliviaAddInPro.Helper /* * Renombra un campo de la feature class dada */ - public static bool AddFieldsSync(string fcname, FieldToAdd[] fields) + public static bool AddFieldsSync(string fcname, FieldToAdd[] fields) { bool res = false; diff --git a/Model/ComunDef.cs b/Model/ComunDef.cs index d8cc04e..966191f 100644 --- a/Model/ComunDef.cs +++ b/Model/ComunDef.cs @@ -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_ele_f = "_elev_f"; //altura from 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 }; diff --git a/Model/OliviaConfMV.cs b/Model/OliviaConfMV.cs index b2ed2be..6b39117 100644 --- a/Model/OliviaConfMV.cs +++ b/Model/OliviaConfMV.cs @@ -15,11 +15,16 @@ namespace OliviaAddInPro.Model nombre = "default"; filtro_omitir = ""; campo_prioridad = "0"; - + vehiculo_def_reco = -1; + vehiculo_def_lim = -1; } public string nombre { get; set; } public string filtro_omitir { get; set; } public string campo_prioridad { get; set; } + + public int vehiculo_def_reco { get; set; } + public int vehiculo_def_lim { get; set; } + } } diff --git a/Model/OliviaConfNW.cs b/Model/OliviaConfNW.cs index 62b3577..837e793 100644 --- a/Model/OliviaConfNW.cs +++ b/Model/OliviaConfNW.cs @@ -25,5 +25,7 @@ namespace OliviaAddInPro.Model public bool comprueba_elevacion { get; set; } public bool revisa_topologia { get; set; } public bool revisa_conjunciones { get; set; } + public bool revisa_angulos { get; set; } + public string campo_angulos { get; set; } } } diff --git a/Model/OliviaDef.cs b/Model/OliviaDef.cs index 443cdba..25ec0ed 100644 --- a/Model/OliviaDef.cs +++ b/Model/OliviaDef.cs @@ -164,6 +164,7 @@ namespace OliviaAddInPro.Model public const string GG_elev = "elevacion"; public const string GG_topo = "reviTopo"; public const string GG_conj = "reviConj"; + public const string GG_angu = "reviAng"; /** * Define las propiedades de limpieza a enviar a oliviatasks */ diff --git a/Services/ConfigServ.cs b/Services/ConfigServ.cs index b7c1cb5..7626306 100644 --- a/Services/ConfigServ.cs +++ b/Services/ConfigServ.cs @@ -402,18 +402,20 @@ namespace OliviaAddInPro.Services c.ListaNw = new List(); c.ListaNw.Add(new OliviaConfNW() { - nombre= "TomTom", - campo_velocidad= "$feature.KPH", - campo_nombre= "$feature.NAME", - campo_peatonal= "IIf( $feature.FOW == 14 || $feature.ONEWAY == 'N', 1, 0)", - campo_sentidoFT= "IIF($feature.ONEWAY== 'FT' || $feature.ONEWAY == '', 1 , 0)", - campo_sentidoTf= "IIF($feature.ONEWAY == 'TF' || $feature.ONEWAY == '', 1, 0)", - campo_elevacion_from= "$feature.F_ELEV", - campo_elevacion_to= "$feature.T_ELEV", - comprueba_elevacion =true, - revisa_topologia=false, - revisa_conjunciones = false - }); + nombre = "TomTom", + campo_velocidad = "$feature.KPH", + campo_nombre = "$feature.NAME", + campo_peatonal = "IIf( $feature.FOW == 14 || $feature.ONEWAY == 'N', 1, 0)", + campo_sentidoFT = "IIF($feature.ONEWAY== 'FT' || $feature.ONEWAY == '', 1 , 0)", + campo_sentidoTf = "IIF($feature.ONEWAY == 'TF' || $feature.ONEWAY == '', 1, 0)", + campo_elevacion_from = "$feature.F_ELEV", + campo_elevacion_to = "$feature.T_ELEV", + comprueba_elevacion = true, + revisa_topologia = false, + revisa_conjunciones = false, + revisa_angulos = false, + campo_angulos = "0" + }); ; c.ListaNw.Add(new OliviaConfNW() { nombre = "StreetMapPremiun", @@ -426,7 +428,9 @@ namespace OliviaAddInPro.Services campo_elevacion_to = "IIf( $feature.T_ZLEV != null, $feature.T_ZLEV, 0)", comprueba_elevacion = 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(); c.ListaMV.Add(new OliviaConfMV() diff --git a/Services/EjecServ.cs b/Services/EjecServ.cs index 0f712e5..02833c0 100644 --- a/Services/EjecServ.cs +++ b/Services/EjecServ.cs @@ -344,7 +344,7 @@ namespace OliviaAddInPro.Services var where = String.Empty; if (!String.IsNullOrEmpty(ComunDef.configMV.filtro_omitir)) { - where = "not(" + ComunDef.configMV.filtro_omitir + ")"; + where = ComunDef.configMV.filtro_omitir; } filtroEspacial = HelperGdb.CreateFiler(where, geom_export); if (filtroEspacial == null) @@ -381,6 +381,7 @@ namespace OliviaAddInPro.Services OliviaGlob.Paths.PathNW_c = OliviaGlob.Paths.DirData + com.NombreShpExportNw_C; if (ComunDef.CamposNW.config.revisa_conjunciones) { + filtroEspacial = HelperGdb.CreateFiler(String.Empty, geom_export); 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)) { @@ -412,7 +413,7 @@ namespace OliviaAddInPro.Services } bool EstandarizaCamposNW(string pathNW) { - HelperGdb.FieldToAdd[] fields = new HelperGdb.FieldToAdd[8]; + HelperGdb.FieldToAdd[] fields = new HelperGdb.FieldToAdd[9]; //campo SECTOR int i = 0; fields[i].Name = ComunDef.CamposNW.cons_kph; @@ -461,7 +462,12 @@ namespace OliviaAddInPro.Services fields[i].Alias = ComunDef.CamposNW.cons_name; fields[i].Tipo = "TEXT"; 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)) @@ -485,6 +491,9 @@ namespace OliviaAddInPro.Services if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_evit, ComunDef.configMV.campo_prioridad)) return false; + + if (!HelperGdb.CalculateFieldsSync(pathNW, ComunDef.CamposNW.cons_angulo, ComunDef.CamposNW.config.campo_angulos)) + return false; return true; } /** diff --git a/Services/LanzaSrv/LanzaLimpSrv.cs b/Services/LanzaSrv/LanzaLimpSrv.cs index bd83a15..f285676 100644 --- a/Services/LanzaSrv/LanzaLimpSrv.cs +++ b/Services/LanzaSrv/LanzaLimpSrv.cs @@ -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_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_angu + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_angulos ? 1 : 0) + " " + //campos del dbf de limpieza para leer GeneralDef.EjecGeoParamSep + GeneralDef.GAA_obser + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_observ + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GAA_anch_tip + GeneralDef.EjecGeoParamIgual + LimpiezaDef.Campos.consulta_anch_tip + " " + diff --git a/Services/LanzaSrv/LanzaRecoSrv.cs b/Services/LanzaSrv/LanzaRecoSrv.cs index d56052d..5db2441 100644 --- a/Services/LanzaSrv/LanzaRecoSrv.cs +++ b/Services/LanzaSrv/LanzaRecoSrv.cs @@ -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_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_angu + GeneralDef.EjecGeoParamIgual + (ComunDef.CamposNW.config.revisa_angulos ? 1 : 0) + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GR_lateral + GeneralDef.EjecGeoParamIgual + reco.TipoLate + " " + //mima de la nw GeneralDef.EjecGeoParamSep + GeneralDef.GTO_mima_xmin + GeneralDef.EjecGeoParamIgual + reco.MimaNw.XMin + " " + diff --git a/Services/LimpiezaServ.cs b/Services/LimpiezaServ.cs index 0959bbe..e65c70e 100644 --- a/Services/LimpiezaServ.cs +++ b/Services/LimpiezaServ.cs @@ -34,7 +34,7 @@ namespace OliviaAddInPro.Services public Respuesta Ejecuta(ModosEjec modo) { 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]; } @@ -126,6 +126,34 @@ namespace OliviaAddInPro.Services res.AddRange(conf.ListaMV.Select(c => c.nombre)); return res; } + public int GetModosViajesDefecto(int vehiculo) + { + + var conf = ConfigServ.Serv.Leer(); + var res = new ObservableCollection(); + 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(); + 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 */ diff --git a/Services/RecogidaServ.cs b/Services/RecogidaServ.cs index df8df10..4fc557c 100644 --- a/Services/RecogidaServ.cs +++ b/Services/RecogidaServ.cs @@ -70,7 +70,15 @@ namespace OliviaAddInPro.Services { 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; string nombFileAmbs = string.Empty; diff --git a/View/Limpieza/PaneLimpiezaSub1.xaml b/View/Limpieza/PaneLimpiezaSub1.xaml index 7f50632..2678e53 100644 --- a/View/Limpieza/PaneLimpiezaSub1.xaml +++ b/View/Limpieza/PaneLimpiezaSub1.xaml @@ -37,7 +37,7 @@ VerticalAlignment="Top" Width="260" SelectionChanged="comboBox_mv_SelectionChanged" SelectedIndex="{Binding Path=TipoMv, Mode = TwoWay}"/>