Merge remote-tracking branch 'origin/Elena/reco' into develop
# Conflicts: # Model/Limpieza.cs # Services/EjecServ.csConfiguracionSimplificada
commit
14321508ad
|
|
@ -25,10 +25,8 @@ namespace OliviaAddInPro
|
||||||
{
|
{
|
||||||
protected override void OnClick()
|
protected override void OnClick()
|
||||||
{
|
{
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
OliviaGlob.progrDialog= new ProgressDialog(
|
|
||||||
"Procesando", "Canceled", 100, false);
|
|
||||||
if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno)
|
if (OliviaGlob.TipoEjec == TiposEjecucion.Ninguno)
|
||||||
{
|
{
|
||||||
///Comprueba que existe la red navegable configurada
|
///Comprueba que existe la red navegable configurada
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,6 @@ namespace OliviaAddInPro
|
||||||
{
|
{
|
||||||
protected override void OnClick()
|
protected override void OnClick()
|
||||||
{
|
{
|
||||||
OliviaGlob.progrDialog = new ProgressDialog(
|
|
||||||
"Procesando", "Canceled", 100, false);
|
|
||||||
if (OliviaGlob.TipoEjec==TiposEjecucion.Ninguno)
|
if (OliviaGlob.TipoEjec==TiposEjecucion.Ninguno)
|
||||||
{
|
{
|
||||||
///Comprueba que existe la red navegable configurada
|
///Comprueba que existe la red navegable configurada
|
||||||
|
|
|
||||||
|
|
@ -779,7 +779,7 @@ namespace OliviaAddInPro.Helper
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool ExportShp2(string pathLayerIn, SpatialQueryFilter filter, string nameShp, string outpath, CancelableProgressorSource cps)
|
public static bool ExportShp2(string pathLayerIn, SpatialQueryFilter filter, string nameShp, string outpath, CancelableProgressorSource cps, int incmax=100)
|
||||||
{
|
{
|
||||||
if (!System.IO.Directory.Exists(outpath))
|
if (!System.IO.Directory.Exists(outpath))
|
||||||
System.IO.Directory.CreateDirectory(outpath);
|
System.IO.Directory.CreateDirectory(outpath);
|
||||||
|
|
@ -796,7 +796,7 @@ namespace OliviaAddInPro.Helper
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
List<long> ids = new List<long>();
|
List<long> ids = new List<long>();
|
||||||
cps.Status = "Aplicando filtro espacial a exportación";
|
|
||||||
//Añade a la lista los ids que cumplen el filtro espacial
|
//Añade a la lista los ids que cumplen el filtro espacial
|
||||||
using (RowCursor cursor = fc.Search(filter))
|
using (RowCursor cursor = fc.Search(filter))
|
||||||
{
|
{
|
||||||
|
|
@ -818,10 +818,10 @@ namespace OliviaAddInPro.Helper
|
||||||
string whereClause = GetWhereClauseFromIds(ids);
|
string whereClause = GetWhereClauseFromIds(ids);
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
///Exporta
|
///Exporta
|
||||||
cps.Status = "Exportando datos";
|
|
||||||
string[] args = { pathLayerIn, outpath, nameShp, whereClause };
|
string[] args = { pathLayerIn, outpath, nameShp, whereClause };
|
||||||
// execute the tool
|
// execute the tool
|
||||||
|
uint valini = cps.Value;
|
||||||
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args,
|
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args,
|
||||||
null, cps.CancellationTokenSource.Token,
|
null, cps.CancellationTokenSource.Token,
|
||||||
|
|
||||||
|
|
@ -837,10 +837,7 @@ namespace OliviaAddInPro.Helper
|
||||||
case "OnProgressMessage":
|
case "OnProgressMessage":
|
||||||
{
|
{
|
||||||
string msg = string.Format("{0}: {1}", new object[] { event_name, (string)o });
|
string msg = string.Format("{0}: {1}", new object[] { event_name, (string)o });
|
||||||
Debug.WriteLine(msg);
|
Debug.WriteLine(msg); ;
|
||||||
;
|
|
||||||
//System.Windows.MessageBox.Show(msg);
|
|
||||||
//_cts.Cancel();
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -848,11 +845,11 @@ namespace OliviaAddInPro.Helper
|
||||||
{
|
{
|
||||||
string msg2 = string.Format("{0}: {1} %", new object[] { event_name, (int)o });
|
string msg2 = string.Format("{0}: {1} %", new object[] { event_name, (int)o });
|
||||||
Debug.WriteLine(msg2);
|
Debug.WriteLine(msg2);
|
||||||
var av = (int)0;
|
var av = (int)o;
|
||||||
if (av > 0)
|
if (av > 0)
|
||||||
{
|
{
|
||||||
cps.Value = (uint)(80 * av * 0.2);
|
cps.Value += (uint)((float)av/100*Math.Min(incmax, cps.Max-valini));
|
||||||
}
|
}
|
||||||
// if ((int)o < 0)
|
// if ((int)o < 0)
|
||||||
//System.Windows.MessageBox.Show(msg2);
|
//System.Windows.MessageBox.Show(msg2);
|
||||||
//_cts.Cancel();
|
//_cts.Cancel();
|
||||||
|
|
@ -860,8 +857,22 @@ namespace OliviaAddInPro.Helper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).Result;
|
}).Result;
|
||||||
cps.Status = "Finalizando exportacion";
|
|
||||||
|
|
||||||
|
if (gpResult.IsCanceled)
|
||||||
|
{
|
||||||
|
cps.CancellationTokenSource.Cancel();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(gpResult.IsFailed)
|
||||||
|
{
|
||||||
|
string msg;
|
||||||
|
if (gpResult.ErrorMessages != null)
|
||||||
|
msg = gpResult.ErrorMessages.First().Text;
|
||||||
|
else
|
||||||
|
msg = "Errores en la exportación";
|
||||||
|
OutStr = "Error: " + msg;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
@ -946,7 +957,6 @@ namespace OliviaAddInPro.Helper
|
||||||
*/
|
*/
|
||||||
cps.Status = "Guardando geometria a shp";
|
cps.Status = "Guardando geometria a shp";
|
||||||
|
|
||||||
//var progSrc = new CancelableProgressorSource();
|
|
||||||
string[] args = { pathLayerIn, outpath };
|
string[] args = { pathLayerIn, outpath };
|
||||||
// execute the tool
|
// execute the tool
|
||||||
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", args,
|
IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToShapefile_conversion", args,
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using ArcGIS.Desktop.Internal.Framework.Controls;
|
||||||
using ArcGIS.Desktop.Framework.Dialogs;
|
using ArcGIS.Desktop.Framework.Dialogs;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using ArcGIS.Desktop.Framework.Threading.Tasks;
|
||||||
|
|
||||||
namespace OliviaAddInPro.Helper
|
namespace OliviaAddInPro.Helper
|
||||||
{
|
{
|
||||||
|
|
@ -79,5 +80,28 @@ namespace OliviaAddInPro.Helper
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MyCancelableProgressorSource
|
||||||
|
{
|
||||||
|
public CancelableProgressorSource _ProgrSrc;
|
||||||
|
public MyCancelableProgressorSource(ProgressDialog prodlg)
|
||||||
|
{
|
||||||
|
_ProgrSrc = new CancelableProgressorSource(prodlg);
|
||||||
|
_ProgrSrc.Max = 100;
|
||||||
|
}
|
||||||
|
public void Init(string stat)
|
||||||
|
{
|
||||||
|
_ProgrSrc.Value = 0;
|
||||||
|
_ProgrSrc.Status = stat;
|
||||||
|
}
|
||||||
|
public void IncMessage(uint inc, string mes)
|
||||||
|
{
|
||||||
|
if ((_ProgrSrc.Value + inc) < _ProgrSrc.Max)
|
||||||
|
_ProgrSrc.Value += inc;
|
||||||
|
_ProgrSrc.Message = mes;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,14 +51,15 @@ namespace OliviaAddInPro.Model
|
||||||
public Limpieza()
|
public Limpieza()
|
||||||
{
|
{
|
||||||
Serv = new LimpiezaServ(this);
|
Serv = new LimpiezaServ(this);
|
||||||
LanzaSrv = new LanzaLimpSrv();
|
LanzaSrv = new LanzaLimpSrv();
|
||||||
ProceSrv = new ProcesoEjecServ();
|
ProceSrv = new ProcesoEjecServ();
|
||||||
|
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TareaRes Ejecuta(ModosEjec modo, CancelableProgressorSource cps)
|
public TareaRes Ejecuta(ModosEjec modo)
|
||||||
{
|
{
|
||||||
TareaRes res = null;
|
TareaRes res = null;
|
||||||
res = Serv.Ejecuta(modo, cps);
|
res = Serv.Ejecuta(modo);
|
||||||
if (!res.Errores)
|
if (!res.Errores)
|
||||||
{
|
{
|
||||||
var res1=LanzaSrv.ejec(this, modo, TipoTtoStr);
|
var res1=LanzaSrv.ejec(this, modo, TipoTtoStr);
|
||||||
|
|
@ -68,7 +69,7 @@ namespace OliviaAddInPro.Model
|
||||||
ProceSrv.Puerto = conf.Puerto;
|
ProceSrv.Puerto = conf.Puerto;
|
||||||
ProceSrv.Ip = conf.Ip;
|
ProceSrv.Ip = conf.Ip;
|
||||||
|
|
||||||
res1 = ProceSrv.start(LanzaSrv.str_cfg, cps);
|
res1 = ProceSrv.start(LanzaSrv.str_cfg, ProgrSrc._ProgrSrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res1.HasError)
|
if (res1.HasError)
|
||||||
|
|
@ -80,16 +81,13 @@ namespace OliviaAddInPro.Model
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
public async void EjecutaAsync(ModosEjec modo, CancelableProgressorSource cps, Action<TareaRes> ffin)
|
public async void EjecutaAsync(ModosEjec modo, Action<TareaRes> ffin)
|
||||||
{
|
{
|
||||||
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
||||||
{
|
{
|
||||||
cps.Status = "Procesando";
|
var res = Ejecuta(modo);
|
||||||
cps.Value = 0;
|
|
||||||
var res = Ejecuta(modo, cps);
|
|
||||||
ffin(res);
|
ffin(res);
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -75,9 +75,9 @@ namespace OliviaAddInPro.Model
|
||||||
public static string ftclass_ejes; //<Nombre de la capa de ejes de carretera
|
public static string ftclass_ejes; //<Nombre de la capa de ejes de carretera
|
||||||
public static string ftclass_muni; //<Nombre de la capa de municipios de TOMTOM
|
public static string ftclass_muni; //<Nombre de la capa de municipios de TOMTOM
|
||||||
};
|
};
|
||||||
private static TiposEjecucion tipoEjec = TiposEjecucion.Ninguno;
|
private static TiposEjecucion tipoEjec;
|
||||||
public static Limpieza limp = new Limpieza();
|
public static Limpieza limp;
|
||||||
private static Recogida reco = new Recogida();
|
private static Recogida reco;
|
||||||
|
|
||||||
#region Properties
|
#region Properties
|
||||||
public static TiposEjecucion TipoEjec
|
public static TiposEjecucion TipoEjec
|
||||||
|
|
@ -102,9 +102,11 @@ namespace OliviaAddInPro.Model
|
||||||
|
|
||||||
public static void Inicia()
|
public static void Inicia()
|
||||||
{
|
{
|
||||||
|
tipoEjec = TiposEjecucion.Ninguno;
|
||||||
IniDefault();
|
IniDefault();
|
||||||
LimpiezaDef.iniciaLimpDef();
|
LimpiezaDef.iniciaLimpDef();
|
||||||
RecogidaDef.iniciaRecoDef();
|
RecogidaDef.iniciaRecoDef();
|
||||||
|
progrDialog = new ProgressDialog("Procesando", Resource1.String_cancel_progreso, 100, false);
|
||||||
limp = new Limpieza();
|
limp = new Limpieza();
|
||||||
reco = new Recogida();
|
reco = new Recogida();
|
||||||
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,7 @@ namespace OliviaAddInPro.Model
|
||||||
/**
|
/**
|
||||||
* grados en º de giro del vehículo
|
* grados en º de giro del vehículo
|
||||||
*/
|
*/
|
||||||
public int GiroVehic { get; set; } = 0;
|
public int GiroVehic { get; set; } = 0;
|
||||||
/**
|
|
||||||
* Coordenadas de la planta de descarga
|
|
||||||
*/
|
|
||||||
public Coordinate2D CoordsPlanta { get; set; } = new Coordinate2D(0, 0);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
|
@ -76,23 +72,22 @@ namespace OliviaAddInPro.Model
|
||||||
public Recogida()
|
public Recogida()
|
||||||
{
|
{
|
||||||
Serv = new RecogidaServ(this);
|
Serv = new RecogidaServ(this);
|
||||||
|
ProgrSrc = new MyCancelableProgressorSource(OliviaGlob.progrDialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public TareaRes Ejecuta(ModosEjec modo, CancelableProgressorSource cps)
|
public TareaRes Ejecuta(ModosEjec modo)
|
||||||
{
|
{
|
||||||
TareaRes res = null;
|
TareaRes res = null;
|
||||||
res = Serv.Ejecuta(modo, cps);
|
res = Serv.Ejecuta(modo);
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
public async void EjecutaAsync(ModosEjec modo, CancelableProgressorSource cps, Action<TareaRes> ffin)
|
public async void EjecutaAsync(ModosEjec modo, Action<TareaRes> ffin)
|
||||||
{
|
{
|
||||||
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
||||||
{
|
{
|
||||||
cps.Status = "Procesando";
|
var res = Ejecuta(modo);
|
||||||
cps.Value = 0;
|
|
||||||
var res = Ejecuta(modo, cps);
|
|
||||||
ffin(res);
|
ffin(res);
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using ArcGIS.Core.Geometry;
|
using ArcGIS.Core.Geometry;
|
||||||
using ArcGIS.Desktop.Internal.Layouts.Utilities;
|
using ArcGIS.Desktop.Internal.Layouts.Utilities;
|
||||||
|
using OliviaAddInPro.Helper;
|
||||||
|
|
||||||
namespace OliviaAddInPro.Model
|
namespace OliviaAddInPro.Model
|
||||||
{
|
{
|
||||||
|
|
@ -61,6 +62,10 @@ namespace OliviaAddInPro.Model
|
||||||
* Coordenadas de la instalación
|
* Coordenadas de la instalación
|
||||||
*/
|
*/
|
||||||
public Coordinate2D CoordsInstal { get; set; } = new Coordinate2D(0, 0);
|
public Coordinate2D CoordsInstal { get; set; } = new Coordinate2D(0, 0);
|
||||||
|
/**
|
||||||
|
* Coordenadas de la planta de descarga, solo hace falta para recogida
|
||||||
|
*/
|
||||||
|
public Coordinate2D CoordsPlanta { get; set; } = new Coordinate2D(0, 0);
|
||||||
/**
|
/**
|
||||||
* Buffer para la exportación, en metros
|
* Buffer para la exportación, en metros
|
||||||
*/
|
*/
|
||||||
|
|
@ -121,5 +126,10 @@ namespace OliviaAddInPro.Model
|
||||||
set { err_str = value;}
|
set { err_str = value;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Para la ventana de progreso
|
||||||
|
*/
|
||||||
|
public MyCancelableProgressorSource ProgrSrc;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,15 @@ namespace OliviaAddInPro {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Busca una cadena traducida similar a Se ha cancelado la operación.
|
||||||
|
/// </summary>
|
||||||
|
internal static string String_cancel_progreso {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("String_cancel_progreso", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Busca una cadena traducida similar a General.
|
/// Busca una cadena traducida similar a General.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,9 @@
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
|
<data name="String_cancel_progreso" xml:space="preserve">
|
||||||
|
<value>Se ha cancelado la operación</value>
|
||||||
|
</data>
|
||||||
<data name="String_ConfigGeneralView" xml:space="preserve">
|
<data name="String_ConfigGeneralView" xml:space="preserve">
|
||||||
<value>General</value>
|
<value>General</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
||||||
|
|
@ -37,17 +37,18 @@ namespace OliviaAddInPro.Services
|
||||||
* Modo 0, sectorizar
|
* Modo 0, sectorizar
|
||||||
* Modo 1, planificar
|
* Modo 1, planificar
|
||||||
*/
|
*/
|
||||||
public bool LanzaEjec(ModosEjec modo, CancelableProgressorSource cps, out string ErrStr)
|
public bool LanzaEjec(ModosEjec modo, out string ErrStr)
|
||||||
{
|
{
|
||||||
ErrStr = string.Empty;
|
ErrStr = string.Empty;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
com.ProgrSrc.Init("Exportando datos");
|
||||||
//Comprueba que tiene las columnas necesarias para planificar
|
//Comprueba que tiene las columnas necesarias para planificar
|
||||||
if ((modo == ModosEjec.Planifica) && !CompruebaPlanif())
|
if ((modo == ModosEjec.Planifica) && !CompruebaPlanif())
|
||||||
{
|
{
|
||||||
ErrStr = "En la capa de ámbitos seleccionada no se encuentran columnas de SECTOR y/o SECUENCIA, necesarias para planificar";
|
ErrStr = "En la capa de ámbitos seleccionada no se encuentran columnas de SECTOR y/o SECUENCIA, necesarias para planificar";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Cuenta las filas que cumplen la consulta
|
//Cuenta las filas que cumplen la consulta
|
||||||
int nelems = HelperGdb.GetNumElems(com.CapaElems, com.ConsultaAmbs);
|
int nelems = HelperGdb.GetNumElems(com.CapaElems, com.ConsultaAmbs);
|
||||||
|
|
@ -57,7 +58,7 @@ namespace OliviaAddInPro.Services
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cps.Status = "Exportando geometria";
|
com.ProgrSrc.IncMessage(0, "Exportando geometria");
|
||||||
|
|
||||||
//Obtiene la geometría que envuelve a los ámbitos
|
//Obtiene la geometría que envuelve a los ámbitos
|
||||||
Geometry geom_export = null;
|
Geometry geom_export = null;
|
||||||
|
|
@ -82,23 +83,26 @@ namespace OliviaAddInPro.Services
|
||||||
//se consigue el tiempo en este instante para añadirlo a los nombres de los archivos de salida (shapefiles)
|
//se consigue el tiempo en este instante para añadirlo a los nombres de los archivos de salida (shapefiles)
|
||||||
fechaHora = DateTime.Now.ToString("yyyyMMdd_Hmmss");
|
fechaHora = DateTime.Now.ToString("yyyyMMdd_Hmmss");
|
||||||
//Pone nombre al shape en función de los ámbitos, el tratamiento, y los polígonos + timestamp
|
//Pone nombre al shape en función de los ámbitos, el tratamiento, y los polígonos + timestamp
|
||||||
com.NombreShpExport = prefNameExport + com.NombreShpExp_PrefTto +"_" + fechaHora + extShp;
|
com.NombreShpExport = prefNameExport + com.NombreShpExp_PrefTto + "_" + fechaHora + extShp;
|
||||||
|
|
||||||
|
com.ProgrSrc.IncMessage(10, "Exportando ámbitos de trabajo");
|
||||||
|
|
||||||
//exporta los datos de entrada
|
//exporta los datos de entrada
|
||||||
if (!HelperGdb.ExportShp2(com.CapaElems, filtroEspacial, com.NombreShpExport, OliviaGlob.Paths.DirData, cps))
|
if (!HelperGdb.ExportShp2(com.CapaElems, filtroEspacial, com.NombreShpExport, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc, 40))
|
||||||
//if (!HelperGdb.ExportShp(com.CapaElems, filtroEspacial, com.NombreShpExport, OliviaGlob.Paths.DirData, cps, out ErrStr))
|
|
||||||
{
|
{
|
||||||
ErrStr = "Error al exportar los ámbitos: "+ HelperGdb.OutStr;
|
ErrStr = "Error al exportar los ámbitos: " + HelperGdb.OutStr;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (com.ProgrSrc._ProgrSrc.CancellationTokenSource.IsCancellationRequested)
|
||||||
|
{
|
||||||
|
ErrStr = Resource1.String_cancel_progreso;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//Guarda el nombre
|
//Guarda el nombre
|
||||||
OliviaGlob.Paths.PathData = OliviaGlob.Paths.DirData + com.NombreShpExport;
|
OliviaGlob.Paths.PathData = OliviaGlob.Paths.DirData + com.NombreShpExport;
|
||||||
if(cps.CancellationTokenSource.IsCancellationRequested)
|
|
||||||
{
|
com.ProgrSrc.IncMessage(50, "Preparando exportación de red navegable");
|
||||||
ErrStr = "Se ha cancelado la operación";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
cps.Value = 80;
|
|
||||||
//hace intersecciones espaciales en caso de ámbitos lineales para quitar los que tienen más parte fuera de la zona que dentro
|
//hace intersecciones espaciales en caso de ámbitos lineales para quitar los que tienen más parte fuera de la zona que dentro
|
||||||
//REVISAR
|
//REVISAR
|
||||||
/*if (((com.GeomNiv != null) || (com.GeomZon != null)) &&
|
/*if (((com.GeomNiv != null) || (com.GeomZon != null)) &&
|
||||||
|
|
@ -113,76 +117,80 @@ namespace OliviaAddInPro.Services
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
//comprueba, si hay restricciones de circulación y hay instalación, que la instalación no está en ellas
|
//comprueba, si hay restricciones de circulación y hay instalación, que la instalación no está en ellas
|
||||||
if (!com.CoordsInstal.IsEmpty && (com.CoordsInstal.X!=0) && (com.GeomRestr != null))
|
if (!com.CoordsInstal.IsEmpty && (com.CoordsInstal.X != 0) && (com.GeomRestr != null))
|
||||||
{
|
{
|
||||||
Respuesta<bool> resp = HelperGdb.IsPtoInGeom(com.CoordsInstal, com.GeomRestr);
|
Respuesta<bool> resp = HelperGdb.IsPtoInGeom(com.CoordsInstal, com.GeomRestr);
|
||||||
if (!resp.Value && resp.HasError)
|
if (!resp.Value && resp.HasError)
|
||||||
{
|
{
|
||||||
ErrStr = "Error al comprobar si la instalación está contenida en el polígono de restricciones: " + resp.Error.ElementAt(0);
|
ErrStr = "Error al comprobar si la instalación está contenida en el polígono de restricciones: " + resp.Error.ElementAt(0);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if(resp.Value) //sí está contenido en las restricciones
|
else if (resp.Value) //sí está contenido en las restricciones
|
||||||
{
|
{
|
||||||
ErrStr = "Error, la instalación está en la zona restringida a la circulación ";
|
ErrStr = "Error, la instalación está en la zona restringida a la circulación ";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
if (cps.CancellationTokenSource.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
ErrStr = "Se ha cancelado la operación";
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
//exporta la red navegable (buffer, le quita las restr...)
|
//exporta la red navegable (buffer, le quita las restr...)
|
||||||
//se obtiene la geometría a intersecar con la red, que será la que contiene
|
//se obtiene la geometría a intersecar con la red, que será la que contiene
|
||||||
//a todos los ámbitos y la instalación, ampliada un buffer, mayor si hay
|
//a todos los ámbitos y la instalación, ampliada un buffer, mayor si hay
|
||||||
//restricciones de circulación
|
//restricciones de circulación
|
||||||
Geometry geom_aux = HelperGdb.BufferGeom(geom_export, com.BuffExport).Value;
|
geom_export = HelperGdb.BufferGeom(geom_export, com.BuffExport).Value;
|
||||||
if(geom_aux==null)
|
if (geom_export == null)
|
||||||
{
|
{
|
||||||
ErrStr = "Error al añadir buffer a la geometría";
|
ErrStr = "Error al añadir buffer a la geometría";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//quita las restricciones
|
//quita las restricciones
|
||||||
geom_aux = HelperGdb.QuitaGeom(geom_aux, com.GeomRestr);
|
if (com.GeomRestr != null)
|
||||||
if (geom_aux == null)
|
|
||||||
{
|
{
|
||||||
ErrStr = "Error al intersecar con las restricciones.";
|
geom_export = HelperGdb.QuitaGeom(geom_export, com.GeomRestr);
|
||||||
return false;
|
if (geom_export == null)
|
||||||
}
|
|
||||||
geom_export = geom_aux;
|
|
||||||
//////////////////////////////////////////////////////////////
|
|
||||||
//comprueba si la geometría de exportación contiene a la instalación
|
|
||||||
if (!com.CoordsInstal.IsEmpty && (com.CoordsInstal.X != 0))
|
|
||||||
{
|
|
||||||
Respuesta<bool> resp = HelperGdb.IsPtoInGeom(com.CoordsInstal, geom_export);
|
|
||||||
if (!resp.Value) //si no lo contiene
|
|
||||||
{
|
{
|
||||||
//ha ido mal
|
ErrStr = "Error al intersecar con las restricciones.";
|
||||||
if (resp.HasError)
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
//comprueba si la geometría de exportación contiene a la instalación y a la planta de descarga
|
||||||
|
Coordinate2D[] coords = { com.CoordsInstal, com.CoordsPlanta };
|
||||||
|
for (int i = 0; i < coords.Length; i++)
|
||||||
|
{
|
||||||
|
if (!coords[i].IsEmpty && (coords[i].X != 0))
|
||||||
|
{
|
||||||
|
Respuesta<bool> resp = HelperGdb.IsPtoInGeom(coords[i], geom_export);
|
||||||
|
if (!resp.Value) //si no lo contiene
|
||||||
{
|
{
|
||||||
ErrStr = "Error al comprobar si la instalación está contenida en el polígono de exportación: " + resp.Error.ElementAt(0);
|
//ha ido mal
|
||||||
return false;
|
if (resp.HasError)
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//amplía la geom
|
|
||||||
Respuesta<ArcGIS.Core.Geometry.Geometry> respGeom = HelperGdb.AddPtoInGeom(com.CoordsInstal, geom_export);
|
|
||||||
if (respGeom.Value == null)
|
|
||||||
{
|
{
|
||||||
//ha ido mal
|
ErrStr = "Error al comprobar si la instalación está contenida en el polígono de exportación: " + resp.Error.ElementAt(0);
|
||||||
if (resp.HasError)
|
|
||||||
ErrStr = resp.Error.ElementAt(0);
|
|
||||||
else
|
|
||||||
ErrStr = "Error al incluir punto de instalación en polígono de exportación.";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//actualiza la geometría
|
else
|
||||||
geom_export = respGeom.Value;
|
{
|
||||||
|
//amplía la geom
|
||||||
|
Respuesta<ArcGIS.Core.Geometry.Geometry> respGeom = HelperGdb.AddPtoInGeom(coords[i], geom_export);
|
||||||
|
if (respGeom.Value == null)
|
||||||
|
{
|
||||||
|
//ha ido mal
|
||||||
|
if (resp.HasError)
|
||||||
|
ErrStr = resp.Error.ElementAt(0);
|
||||||
|
else
|
||||||
|
ErrStr = "Error al incluir punto de instalación en polígono de exportación.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//actualiza la geometría
|
||||||
|
geom_export = respGeom.Value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Hace el filtro con la geometría final
|
//Hace el filtro con la geometría final
|
||||||
filtroEspacial = HelperGdb.CreateFiler(String.Empty, geom_export);
|
filtroEspacial = HelperGdb.CreateFiler(String.Empty, geom_export);
|
||||||
if (filtroEspacial == null)
|
if (filtroEspacial == null)
|
||||||
|
|
@ -191,22 +199,22 @@ namespace OliviaAddInPro.Services
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
//Prepara naombre de exportación
|
com.ProgrSrc.IncMessage(60, "Exportando red navegable");
|
||||||
|
|
||||||
|
//Prepara nombre de exportación
|
||||||
com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp;
|
com.NombreShpExportNw = prefNameExportNw + fechaHora + extShp;
|
||||||
//exporta los datos de entrada
|
//exporta los datos de entrada
|
||||||
string capaNw =OliviaGlob.Paths.PathGdbNw;
|
string capaNw =System.IO.Path.Combine(OliviaGlob.Paths.PathGdbNw, OliviaGlob.Capas.ftclass_ejes);
|
||||||
//if (!HelperGdb.ExportShp(capaNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, cps, out ErrStr))
|
if (!HelperGdb.ExportShp2(capaNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc,40))
|
||||||
if (!HelperGdb.ExportShp2(capaNw, filtroEspacial, com.NombreShpExportNw, OliviaGlob.Paths.DirData, cps))
|
|
||||||
{
|
{
|
||||||
ErrStr = "Error al exportar la red navegable: " + HelperGdb.OutStr;
|
ErrStr = "Error al exportar la red navegable: " + HelperGdb.OutStr;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//guarda los nombres del shape
|
//guarda los nombres del shape
|
||||||
OliviaGlob.Paths.PathNW = OliviaGlob.Paths.DirData + com.NombreShpExportNw;
|
OliviaGlob.Paths.PathNW = OliviaGlob.Paths.DirData + com.NombreShpExportNw;
|
||||||
|
if (com.ProgrSrc._ProgrSrc.CancellationTokenSource.IsCancellationRequested)
|
||||||
if (cps.CancellationTokenSource.IsCancellationRequested)
|
|
||||||
{
|
{
|
||||||
ErrStr = "Se ha cancelado la operación";
|
ErrStr = Resource1.String_cancel_progreso;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace OliviaAddInPro.Services
|
||||||
* Modo 0, sectorizar
|
* Modo 0, sectorizar
|
||||||
* Modo 1, planificar
|
* Modo 1, planificar
|
||||||
*/
|
*/
|
||||||
public TareaRes Ejecuta(ModosEjec modo, CancelableProgressorSource cps)
|
public TareaRes Ejecuta(ModosEjec modo)
|
||||||
{
|
{
|
||||||
var res = new TareaRes()
|
var res = new TareaRes()
|
||||||
{
|
{
|
||||||
|
|
@ -35,10 +35,10 @@ namespace OliviaAddInPro.Services
|
||||||
data = null,
|
data = null,
|
||||||
msg = ""
|
msg = ""
|
||||||
};
|
};
|
||||||
|
MyCancelableProgressorSource cps = limp.ProgrSrc;
|
||||||
|
|
||||||
com = (TratamientoComun)limp;
|
com = (TratamientoComun)limp;
|
||||||
string nombFileAmbs = string.Empty;
|
string nombFileAmbs = string.Empty;
|
||||||
cps.Status = "Preparando filtro para la exportacion";
|
|
||||||
//Prepara consulta
|
//Prepara consulta
|
||||||
ErrStr = string.Empty;
|
ErrStr = string.Empty;
|
||||||
if (!PreparaConsulta(out nombFileAmbs))
|
if (!PreparaConsulta(out nombFileAmbs))
|
||||||
|
|
@ -46,15 +46,14 @@ namespace OliviaAddInPro.Services
|
||||||
res.msg= "No se ha seleccionado una consulta válida" + limp.ConsultaAmbs;
|
res.msg= "No se ha seleccionado una consulta válida" + limp.ConsultaAmbs;
|
||||||
res.Errores = true;
|
res.Errores = true;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
cps.Value = 5;
|
|
||||||
|
|
||||||
//Prepara nombre
|
//Prepara nombre
|
||||||
limp.NombreShpExp_PrefTto = "T" + limp.TipoTto.ToString("00") + nombFileAmbs + DameStrPoligs();
|
limp.NombreShpExp_PrefTto = "T" + limp.TipoTto.ToString("00") + nombFileAmbs + DameStrPoligs();
|
||||||
|
|
||||||
string msg = "";
|
string msg = "";
|
||||||
//comienza ejecucion
|
//comienza ejecucion
|
||||||
if(!LanzaEjec(ModosEjec.Sectoriza, cps, out msg))
|
if(!LanzaEjec(modo, out msg))
|
||||||
{
|
{
|
||||||
res.Errores = true;
|
res.Errores = true;
|
||||||
res.msg = msg;
|
res.msg = msg;
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ namespace OliviaAddInPro.Services
|
||||||
public RecogidaServ(Recogida _reco)
|
public RecogidaServ(Recogida _reco)
|
||||||
{
|
{
|
||||||
reco = _reco;
|
reco = _reco;
|
||||||
|
RellenaFiltrosReco();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -60,7 +61,7 @@ namespace OliviaAddInPro.Services
|
||||||
* Modo 0, sectorizar
|
* Modo 0, sectorizar
|
||||||
* Modo 1, planificar
|
* Modo 1, planificar
|
||||||
*/
|
*/
|
||||||
public TareaRes Ejecuta(ModosEjec modo, CancelableProgressorSource cps)
|
public TareaRes Ejecuta(ModosEjec modo)
|
||||||
{
|
{
|
||||||
var res = new TareaRes()
|
var res = new TareaRes()
|
||||||
{
|
{
|
||||||
|
|
@ -71,7 +72,7 @@ namespace OliviaAddInPro.Services
|
||||||
|
|
||||||
com = (TratamientoComun)reco;
|
com = (TratamientoComun)reco;
|
||||||
string nombFileAmbs = string.Empty;
|
string nombFileAmbs = string.Empty;
|
||||||
cps.Status = "Preparando filtro para la exportacion";
|
|
||||||
//Prepara consulta
|
//Prepara consulta
|
||||||
ErrStr = string.Empty;
|
ErrStr = string.Empty;
|
||||||
|
|
||||||
|
|
@ -80,8 +81,7 @@ namespace OliviaAddInPro.Services
|
||||||
res.msg = "No se ha seleccionado una consulta válida" + reco.ConsultaAmbs;
|
res.msg = "No se ha seleccionado una consulta válida" + reco.ConsultaAmbs;
|
||||||
res.Errores = true;
|
res.Errores = true;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
cps.Value = 10;
|
|
||||||
|
|
||||||
//Prepara nombre
|
//Prepara nombre
|
||||||
//Pone nombre al shape en función de los ámbitos, el tratamiento, y los polígonos + timestamp
|
//Pone nombre al shape en función de los ámbitos, el tratamiento, y los polígonos + timestamp
|
||||||
|
|
@ -89,7 +89,7 @@ namespace OliviaAddInPro.Services
|
||||||
|
|
||||||
string msg = "";
|
string msg = "";
|
||||||
//comienza ejecucion
|
//comienza ejecucion
|
||||||
if (!LanzaEjec(ModosEjec.Sectoriza, cps, out msg))
|
if (!LanzaEjec(modo, out msg))
|
||||||
{
|
{
|
||||||
res.Errores = true;
|
res.Errores = true;
|
||||||
res.msg = msg;
|
res.msg = msg;
|
||||||
|
|
|
||||||
|
|
@ -173,8 +173,7 @@ namespace OliviaAddInPro
|
||||||
string err = "";
|
string err = "";
|
||||||
|
|
||||||
|
|
||||||
OliviaGlob.progrDialog.Show();
|
OliviaGlob.progrDialog.Show();
|
||||||
var progSrc = new CancelableProgressorSource(OliviaGlob.progrDialog);
|
|
||||||
|
|
||||||
if (!Lee(out err))
|
if (!Lee(out err))
|
||||||
{
|
{
|
||||||
|
|
@ -183,7 +182,7 @@ namespace OliviaAddInPro
|
||||||
}
|
}
|
||||||
|
|
||||||
Action<TareaRes> ac = finEjecuta;
|
Action<TareaRes> ac = finEjecuta;
|
||||||
OliviaGlob.Limp.EjecutaAsync(modo, progSrc, ac);
|
OliviaGlob.Limp.EjecutaAsync(modo, ac);
|
||||||
}
|
}
|
||||||
public void finEjecuta(TareaRes res)
|
public void finEjecuta(TareaRes res)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -224,8 +224,7 @@ namespace OliviaAddInPro
|
||||||
public void Ejecuta(OliviaAddInPro.Services.ModosEjec modo)
|
public void Ejecuta(OliviaAddInPro.Services.ModosEjec modo)
|
||||||
{
|
{
|
||||||
string err = "";
|
string err = "";
|
||||||
OliviaGlob.progrDialog.Show();
|
OliviaGlob.progrDialog.Show();
|
||||||
var progSrc = new CancelableProgressorSource(OliviaGlob.progrDialog);
|
|
||||||
if (!Lee(out err))
|
if (!Lee(out err))
|
||||||
{
|
{
|
||||||
HelperGlobal.ponMsg(err);
|
HelperGlobal.ponMsg(err);
|
||||||
|
|
@ -233,7 +232,7 @@ namespace OliviaAddInPro
|
||||||
}
|
}
|
||||||
|
|
||||||
Action<TareaRes> ac = finEjecuta;
|
Action<TareaRes> ac = finEjecuta;
|
||||||
OliviaGlob.Reco.EjecutaAsync(modo, progSrc, ac);
|
OliviaGlob.Reco.EjecutaAsync(modo, ac);
|
||||||
|
|
||||||
}
|
}
|
||||||
public void finEjecuta(TareaRes res)
|
public void finEjecuta(TareaRes res)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue