diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs index 989b35d..85d35ca 100644 --- a/Helper/HelperGdb.cs +++ b/Helper/HelperGdb.cs @@ -1036,6 +1036,7 @@ namespace OliviaAddInPro.Helper return ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run((Func)(() => { geomIni = GetGeomUnique(fclss, filter); + geomIni = GeometryEngine.Instance.ConvexHull(geomIni); return geomIni; })); } @@ -1046,8 +1047,9 @@ namespace OliviaAddInPro.Helper public static ArcGIS.Core.Geometry.Geometry GetGeomConvexHullSync(FeatureClass fclss, ArcGIS.Core.Data.QueryFilter filter) { ArcGIS.Core.Geometry.Geometry geomIni = null; - geomIni = GetGeomUnique(fclss, filter); - return geomIni; + geomIni = GetGeomUnique(fclss, filter); + geomIni = GeometryEngine.Instance.ConvexHull(geomIni); + return geomIni; } /* * A partir de una capa recorre todos los elementos que cumplen el filtro y los une en una única geometría @@ -1323,11 +1325,12 @@ namespace OliviaAddInPro.Helper return false; } List ids = new List(); - + + ///////////////////////////////////////////////////////// //Añade a la lista los ids que cumplen el filtro espacial using (RowCursor cursor = fc.Search(filter)) { - while (cursor.MoveNext()) + while (cursor.MoveNext() && !cps.Getcancelled()) { using (Feature feature = (Feature)cursor.Current) { @@ -1340,6 +1343,12 @@ namespace OliviaAddInPro.Helper OutStr = "Error al aplicar filtro espacial en exportación"; return false; } + ///////////////////////////////////////////////////////// + if (cps.Getcancelled()) + { + OutStr = Resource1.String_cancel_progreso; + return false; + } //convierte la lista de ids a string para la clause de la forma //(id1, id2, id3..) string whereClause = GetWhereClauseFromIds(ids); @@ -1354,7 +1363,7 @@ namespace OliviaAddInPro.Helper } var environments = Geoprocessing.MakeEnvironmentArray(outputCoordinateSystem: sr); //SpatialReferenceBuilder.CreateSpatialReference(3857) - double valini = cps.GetProgress(); ; + double valini = cps.GetProgress(); IGPResult gpResult = Geoprocessing.ExecuteToolAsync("FeatureClassToFeatureClass_conversion", args, environments, null, @@ -1560,8 +1569,9 @@ namespace OliviaAddInPro.Helper Respuesta resp = new Respuesta(); try { - ArcGIS.Core.Geometry.Geometry geom_convexhull = GeometryEngine.Instance.ConvexHull(geom); - ArcGIS.Core.Geometry.Polygon poli = (ArcGIS.Core.Geometry.Polygon)geom_convexhull; + //ArcGIS.Core.Geometry.Geometry geom_convexhull = GeometryEngine.Instance.ConvexHull(geom); + //ArcGIS.Core.Geometry.Polygon poli = (ArcGIS.Core.Geometry.Polygon)geom_convexhull; + ArcGIS.Core.Geometry.Polygon poli = (ArcGIS.Core.Geometry.Polygon)geom; bool contains = GeometryEngine.Instance.Contains(poli, pto.ToMapPoint()); resp.Value = contains; return resp; diff --git a/Services/EjecServ.cs b/Services/EjecServ.cs index afc757c..cc57172 100644 --- a/Services/EjecServ.cs +++ b/Services/EjecServ.cs @@ -125,10 +125,10 @@ namespace OliviaAddInPro.Services //Pone nombre al shape en función de los ámbitos, el tratamiento, y los polígonos + timestamp com.NombreShpExport = PREF_NAME_EXPORT + com.NombreShpExp_PrefTto + "_" + fechaHora + EXT_SHP; - com.ProgrSrc.IncMessage(10, "Exportando ámbitos de trabajo"); + com.ProgrSrc.IncMessage(10, "Exportando ámbitos de trabajo");//10% //exporta los datos de entrada - if (!HelperGdb.ExportShp2(com.CapaElems, filtroEspacial, com.NombreShpExport, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc, null, 40)) + if (!HelperGdb.ExportShp2(com.CapaElems, filtroEspacial, com.NombreShpExport, OliviaGlob.Paths.DirData, com.ProgrSrc._ProgrSrc, null, 50)) { ErrStr = "Error al exportar los ámbitos: " + HelperGdb.OutStr; return false; @@ -161,7 +161,7 @@ namespace OliviaAddInPro.Services } /////////////////////////////////////////////////////////////////////// /// - com.ProgrSrc.IncMessage(10, "Preparando exportación de red navegable");//50% + com.ProgrSrc.IncMessage(40, "Preparando exportación de red navegable");//50% //hace intersecciones espaciales en caso de ámbitos lineales para quitar los que tienen más parte fuera de la zona que dentro //REVISAR @@ -316,6 +316,8 @@ namespace OliviaAddInPro.Services ErrStr = Resource1.String_cancel_progreso; return false; } + + com.ProgrSrc.IncMessage(40, "Finalizada Exportación. Conectando con Olivia Tasks.");//100% } catch (Exception ex) { diff --git a/Services/LanzaSrv/LanzaOlvServ.cs b/Services/LanzaSrv/LanzaOlvServ.cs index 7ddbf6f..789b31c 100644 --- a/Services/LanzaSrv/LanzaOlvServ.cs +++ b/Services/LanzaSrv/LanzaOlvServ.cs @@ -99,7 +99,7 @@ namespace OliviaAddInPro.Services.LanzaSrv GeneralDef.EjecGeoParamSep + GeneralDef.GG_port + GeneralDef.EjecGeoParamIgual + OliviaGlob.Conexion.Puerto + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_tout + GeneralDef.EjecGeoParamIgual + OliviaGlob.Conexion.TiempoOutSocket + " " + GeneralDef.EjecGeoParamSep + GeneralDef.GG_pt + GeneralDef.EjecGeoParamIgual + OliviaGlob.Paths.PathTemp + " " + - GeneralDef.EjecGeoParamSep + GeneralDef.GG_pcfg + GeneralDef.EjecGeoParamIgual + OliviaGlob.Paths.PathCfg + "D:\\Proyectos\\Olivia\\Instal2.0\\cfg.ini"; + GeneralDef.EjecGeoParamSep + GeneralDef.GG_pcfg + GeneralDef.EjecGeoParamIgual + OliviaGlob.Paths.PathCfg + " "; pfi = new ProcessStartInfo(OliviaGlob.Paths.PathExeOlivia, args); pfi.UseShellExecute = false;