362 lines
18 KiB
C#
362 lines
18 KiB
C#
using ArcGIS.Desktop.Internal.Core;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using OliviaAddInPro.Services;
|
|
using ArcGIS.Core.Geometry;
|
|
|
|
namespace OliviaAddInPro.Model
|
|
{
|
|
[Flags]
|
|
/**
|
|
* 2 primeros bit indican si es nada (0), limp (1), reco(2), u otros (3)
|
|
* 3er bit indica si es config
|
|
* 4º bit indica ejec
|
|
*/
|
|
public enum TiposEjecucion
|
|
{
|
|
Ninguno = 0,
|
|
Limp=1,
|
|
Reco=2,
|
|
Config = 4, //está configurando por primera vez
|
|
Ejec=8,//está ejecutando por primera vez
|
|
Config2=16,//está configurando después de haber planificado ya al menos una primera vez
|
|
Ejec2=32,//está ejecutando después de haber planificado ya al menos una primera vez
|
|
Maqueta =64,
|
|
Conifg=128,
|
|
}
|
|
static class OliviaGlob
|
|
{
|
|
/**
|
|
* Paths de la configuración
|
|
*/
|
|
public struct Paths
|
|
{
|
|
public static string PathWork; //<Path del directorio de trabajo
|
|
public static string PathCfg; //<Path de la configuración general
|
|
public static string PathExeOlivia; //<Path del ejecutable de OliviaTask
|
|
public static string PathTemp; //<Path temporal de generación de archivos intermedios
|
|
public static string DirData; //<Dir donde están los shapefiles data y nw
|
|
public static string PathData; //<Path del shp con datos a planificar, ya filtrados e intersecados con las zonas y niveles
|
|
public static string PathNW; //<Path del shp con la red navegable
|
|
public static string PathCartela; //<Path de la cartela que se emplea como plantilla para la generación de mapas en formato PDF
|
|
//paths GDBs
|
|
public static string PathGdbGen; //<Path de la gdb general de la que se extraen los datos de interés
|
|
public static string PathGdbNw; //<Path de la gdb referente a la red de carreteras de TOMTOM
|
|
public static string PathSimbVSM; //<Path de la galeria de estilos aplicada por VSM
|
|
public static string PathSimbESRI; //<Path de la galeria de estilos de ESRI
|
|
};
|
|
|
|
private static TiposEjecucion tipoEjec = TiposEjecucion.Ninguno;
|
|
private static Limpieza limp = new Limpieza();
|
|
|
|
#region Properties
|
|
public static TiposEjecucion TipoEjec
|
|
{
|
|
get { return tipoEjec; }
|
|
set { tipoEjec = value; }
|
|
}
|
|
public static Limpieza Limp
|
|
{
|
|
get { return limp; }
|
|
set { limp = value; }
|
|
}
|
|
public static EjecServ Serv { get; } = new EjecServ();
|
|
public static SpatialReference SpatRef { get; set; } = null;
|
|
|
|
#endregion Properties
|
|
|
|
public static void Inicia()
|
|
{
|
|
IniDefault();
|
|
LimpiezaDef.iniciaLimpDef();
|
|
limp = new Limpieza();
|
|
SpatRef = ArcGIS.Core.Geometry.SpatialReferenceBuilder.CreateSpatialReference(GeneralDef.SpatRefDef);
|
|
}
|
|
|
|
public static bool IsLimp()
|
|
{
|
|
return (OliviaGlob.TipoEjec & TiposEjecucion.Limp) == TiposEjecucion.Limp;
|
|
}
|
|
public static bool IsReco()
|
|
{
|
|
return (OliviaGlob.TipoEjec & TiposEjecucion.Reco) == TiposEjecucion.Reco;
|
|
}
|
|
public static bool IsConfig2()
|
|
{
|
|
return (OliviaGlob.TipoEjec & TiposEjecucion.Config2) == TiposEjecucion.Config2;
|
|
}
|
|
/**
|
|
* Habilita Sh=true
|
|
* o Deshabilita sh=false
|
|
* el pane correspondiente
|
|
*/
|
|
public static void ShowHidePane(bool sh)
|
|
{
|
|
if (OliviaGlob.IsLimp())
|
|
{
|
|
if (sh)
|
|
{
|
|
DockpaneLimpiezaViewModel.Show();
|
|
}
|
|
else
|
|
{
|
|
DockpaneLimpiezaViewModel.Hide_();
|
|
}
|
|
}
|
|
else if (OliviaGlob.IsReco())
|
|
{
|
|
if (sh)
|
|
{
|
|
DockpaneRecogidaViewModel.Show();
|
|
}
|
|
else
|
|
{
|
|
DockpaneRecogidaViewModel.Hide_();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Inicializa los nombres por defecto de las variables, para debug por si no hay instalador
|
|
*/
|
|
public static void IniDefault()
|
|
{
|
|
var c = ConfigServ.Serv.Leer();
|
|
Paths.PathWork = c.path_work;
|
|
Paths.PathExeOlivia = c.path_exe;
|
|
Paths.DirData = c.path_data;
|
|
Paths.PathTemp = c.path_temp;
|
|
c.PathCartela = c.PathCartela;
|
|
|
|
Paths.PathGdbGen = c.PathGdbGen;
|
|
Paths.PathGdbNw = c.red_carreteras;
|
|
Paths.PathSimbVSM = c.PathSimbVSM;
|
|
Paths.PathSimbESRI = c.PathSimbESRI;
|
|
//puerto = c.puerto;
|
|
//buff_export = c.buffer_export;
|
|
|
|
///////////////////////////////////////
|
|
//Capas, consultas y filtros GENERALES
|
|
/*Capas.ftclass_ejes = c.eje_via;
|
|
Capas.ftclass_zonas = "SubNiveles";
|
|
Capas.ftclass_restri = "TomTom_Q4_2015___rs";
|
|
Capas.ftclass_muni = c.municipios;*/
|
|
|
|
///////////////////////////////////////
|
|
//Capas, consultas, atributos y filtros de LIMPIEZA
|
|
LimpiezaDef.Capas.ftclass_niveles = "a2_Niveles_Limpieza";
|
|
LimpiezaDef.Capas.ftclass_cont = "a_Contendores";
|
|
LimpiezaDef.Capas.ftclass_mobi = "a_Mobiliario";
|
|
LimpiezaDef.Capas.ftclass_limp_mec = "b_LimpMececanica";
|
|
LimpiezaDef.Capas.ftclass_instala = "c_Instalaciones";
|
|
|
|
LimpiezaDef.Campos.consulta_entidad = c.cons_tip_ent;
|
|
LimpiezaDef.Campos.consulta_mecan = c.cons_mecaniz;
|
|
LimpiezaDef.Campos.consulta_observ = c.cons_obser;
|
|
LimpiezaDef.Campos.consulta_anch_tip = c.cons_anch_tip;
|
|
LimpiezaDef.Campos.consulta_tipolo = c.cons_tipolo;
|
|
LimpiezaDef.Campos.consulta_sector = c.consulta_sector;
|
|
LimpiezaDef.Campos.consulta_secuen = c.consulta_secuen;
|
|
|
|
LimpiezaDef.Atributos.atr_esca = c.atr_esca;
|
|
LimpiezaDef.Atributos.atr_fuent = c.atr_fuent;
|
|
LimpiezaDef.Atributos.atr_infan = c.atr_infan;
|
|
LimpiezaDef.Atributos.atr_pape = c.atr_pape;
|
|
LimpiezaDef.Atributos.atr_paso_niv = c.atr_paso_niv;
|
|
LimpiezaDef.Atributos.atr_pipi = c.atr_pipi;
|
|
LimpiezaDef.Atributos.atr_sane = c.atr_sane;
|
|
LimpiezaDef.Atributos.atr_acera = c.atr_acera;
|
|
LimpiezaDef.Atributos.atr_aparc = c.atr_aparc;
|
|
LimpiezaDef.Atributos.atr_bord = c.atr_bord;
|
|
LimpiezaDef.Atributos.atr_hoja = c.atr_hoja;
|
|
LimpiezaDef.Atributos.atr_peat = c.atr_peat;
|
|
LimpiezaDef.Atributos.atr_terri = c.atr_terri;
|
|
LimpiezaDef.Atributos.atr_ocio = c.atr_ocio;
|
|
LimpiezaDef.Atributos.atr_org_ofi = c.atr_org_ofi;
|
|
LimpiezaDef.Atributos.atr_parq = c.atr_parq;
|
|
LimpiezaDef.Atributos.atr_park = c.atr_park;
|
|
LimpiezaDef.Atributos.atr_play = c.atr_play;
|
|
LimpiezaDef.Atributos.atr_polid = c.atr_polid;
|
|
LimpiezaDef.Atributos.atr_turis = c.atr_turis;
|
|
LimpiezaDef.Atributos.atr_solar = c.atr_solar;
|
|
LimpiezaDef.Atributos.atr_suelo = c.atr_suelo;
|
|
LimpiezaDef.Atributos.atr_ap_lin = c.atr_ap_lin;
|
|
LimpiezaDef.Atributos.atr_ap_bat = c.atr_ap_bat;
|
|
|
|
//para el grupo PARAMETROS de LIMPIEZA
|
|
LimpiezaDef.Parametros.t_ttoM = c.t_tratamiento_max;
|
|
LimpiezaDef.Parametros.t_ttom = c.t_tratamiento_min;
|
|
LimpiezaDef.Parametros.v_despM = c.v_desplaz_max;
|
|
LimpiezaDef.Parametros.v_despm = c.v_desplaz_min;
|
|
LimpiezaDef.Parametros.t_cardescM = c.t_carga_desc_max;
|
|
LimpiezaDef.Parametros.t_cardescm = c.t_carga_desc_min;
|
|
LimpiezaDef.Parametros.t_cardesc = c.t_carga_desc;
|
|
LimpiezaDef.Parametros.t_despM = c.t_carga_desc_max;
|
|
LimpiezaDef.Parametros.t_despm = c.t_carga_desc_min;
|
|
LimpiezaDef.Parametros.t_desp = c.t_desplaz;
|
|
LimpiezaDef.Parametros.t_convM = c.t_convenio_max;
|
|
LimpiezaDef.Parametros.t_convm = c.t_convenio_min;
|
|
LimpiezaDef.Parametros.t_conv = c.t_convenio;
|
|
LimpiezaDef.Parametros.t_descansoM = c.t_descanso_max;
|
|
LimpiezaDef.Parametros.t_descansom = c.t_descanso_min;
|
|
LimpiezaDef.Parametros.t_descanso = c.t_descanso;
|
|
LimpiezaDef.Parametros.h_inicio = c.hora_inicio;
|
|
LimpiezaDef.Parametros.ancho_viaM = c.ancho_via_max;
|
|
LimpiezaDef.Parametros.ancho_viam = c.ancho_via_min;
|
|
LimpiezaDef.Parametros.ancho_via = c.ancho_via;
|
|
LimpiezaDef.Parametros.ttoBarMan = c.t_tratamiento_BarMan;
|
|
LimpiezaDef.Parametros.ttoBarManMant = c.t_tratamiento_BarManMant;
|
|
LimpiezaDef.Parametros.ttoBarMMot = c.t_tratamiento_BarMMot;
|
|
LimpiezaDef.Parametros.ttoBarMC = c.t_tratamiento_BarMC;
|
|
LimpiezaDef.Parametros.ttoBarMAP = c.t_tratamiento_BarMAP;
|
|
LimpiezaDef.Parametros.ttoBarMix = c.t_tratamiento_BarMix;
|
|
LimpiezaDef.Parametros.ttoBalMan = c.t_tratamiento_BalMan;
|
|
LimpiezaDef.Parametros.ttoBalMC = c.t_tratamiento_BalMC;
|
|
LimpiezaDef.Parametros.ttoBalMAP = c.t_tratamiento_BalMAP;
|
|
LimpiezaDef.Parametros.ttoBalMix = c.t_tratamiento_BalMix;
|
|
LimpiezaDef.Parametros.ttoBL = c.t_tratamiento_BL;
|
|
LimpiezaDef.Parametros.ttoCH = c.t_tratamiento_CH;
|
|
LimpiezaDef.Parametros.ttoVPap = c.t_tratamiento_VPap;
|
|
LimpiezaDef.Parametros.ttoLPap = c.t_tratamiento_LPap;
|
|
LimpiezaDef.Parametros.ttoLC = c.t_tratamiento_LC;
|
|
LimpiezaDef.Parametros.ttoLZI = c.t_tratamiento_LZI;
|
|
LimpiezaDef.Parametros.ttoLPip = c.t_tratamiento_LPip;
|
|
LimpiezaDef.Parametros.ttoLS = c.t_tratamiento_LS;
|
|
LimpiezaDef.Parametros.vdespBarMan = c.v_desp_BarMan;
|
|
LimpiezaDef.Parametros.vdespBarManMant = c.v_desp_BarManMant;
|
|
LimpiezaDef.Parametros.vdespBarMMot = c.v_desp_BarMMot;
|
|
LimpiezaDef.Parametros.vdespBarMC = c.v_desp_BarMC;
|
|
LimpiezaDef.Parametros.vdespBarMAP = c.v_desp_BarMAP;
|
|
LimpiezaDef.Parametros.vdespBarMix = c.v_desp_BarMix;
|
|
LimpiezaDef.Parametros.vdespBalMan = c.v_desp_BalMan;
|
|
LimpiezaDef.Parametros.vdespBalMC = c.v_desp_BalMC;
|
|
LimpiezaDef.Parametros.vdespBalMAP = c.v_desp_BalMAP;
|
|
LimpiezaDef.Parametros.vdespBalMix = c.v_desp_BalMix;
|
|
LimpiezaDef.Parametros.vdespBL = c.v_desp_BL;
|
|
LimpiezaDef.Parametros.vdespCH = c.v_desp_CH;
|
|
LimpiezaDef.Parametros.vdespVPap = c.v_desp_VPap;
|
|
LimpiezaDef.Parametros.vdespLPap = c.v_desp_LPap;
|
|
LimpiezaDef.Parametros.vdespLC = c.v_desp_LC;
|
|
LimpiezaDef.Parametros.vdespLZI = c.v_desp_LZI;
|
|
LimpiezaDef.Parametros.vdespLPip = c.v_desp_LPip;
|
|
LimpiezaDef.Parametros.vdespLS = c.v_desp_LS;
|
|
LimpiezaDef.Parametros.umbral_reco = 80;
|
|
|
|
LimpiezaDef.OtrosParam.giro_max = c.Giro_max_vehiculo;
|
|
LimpiezaDef.OtrosParam.anch_peat = c.Ancho_peat_def;
|
|
LimpiezaDef.OtrosParam.anch_ace = c.Ancho_acera_def;
|
|
LimpiezaDef.OtrosParam.anch_aplin = c.Ancho_ap_lin_def;
|
|
LimpiezaDef.OtrosParam.anch_apbat = c.Ancho_ap_bat_def;
|
|
LimpiezaDef.OtrosParam.anch_bordlib = c.Ancho_bord_lib_def;
|
|
LimpiezaDef.OtrosParam.desv_max = c.Desv_max;
|
|
LimpiezaDef.OtrosParam.desv_max_abs = c.Desv_max_abs;
|
|
|
|
///////////////////////////////////////
|
|
//Capas, consultas, atributos y filtros de RECOGIDA
|
|
/*
|
|
RecogidaDef.campos_def.cons_id = RecogidaDef.campos.cons_id = "OBJECTID";
|
|
RecogidaDef.campos_def.cons_nomrec = RecogidaDef.campos.cons_nomrec = "NOMB_TIP_REC";
|
|
RecogidaDef.campos_def.cons_lateral = RecogidaDef.campos.cons_lateral = "LATERALIDAD";
|
|
RecogidaDef.campos_def.cons_fracc = RecogidaDef.campos.cons_fracc = "FRACCION";
|
|
RecogidaDef.campos_def.cons_capac = RecogidaDef.campos.cons_capac = "CAPACIDAD";
|
|
RecogidaDef.campos_def.cons_uds = RecogidaDef.campos.cons_uds = "UNIDADES";
|
|
RecogidaDef.campos_def.cons_kgrec = RecogidaDef.campos.cons_kgrec = "KGRECO";
|
|
RecogidaDef.kgrec_cont = RecogidaDef.kgrec_cont = 200;
|
|
|
|
//Rellena los tipos de fracción
|
|
RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Organica] = "Organica";
|
|
RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Resto] = "Resto";
|
|
RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Envases] = "Envases";
|
|
RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Papel] = "PapelCarton";
|
|
RecogidaDef.tipos_fracc_str[(int)RecogidaDef.TiposFracción.Vidrio] = "Vidrio";
|
|
//Rellena los tipos de carga
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Trasera] = "Carga Trasera";
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Lateral] = "Carga Lateral";
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Superior] = "Carga Superior";
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Bilateral] = "Carga Bilateral";
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.BolseoPtaPta] = "Bolseo";
|
|
RecogidaDef.tipos_carg_str[(int)RecogidaDef.TiposCarga.Lavado] = "Lavado de cont";
|
|
|
|
RecogidaDef.Parametros.t_vaciM = 40000;
|
|
RecogidaDef.Parametros.t_vacim = 0;
|
|
RecogidaDef.Parametros.t_llegsalM = 40000;
|
|
RecogidaDef.Parametros.t_llegsalm = 0;
|
|
RecogidaDef.Parametros.t_llegsal = 5;
|
|
RecogidaDef.Parametros.t_descM = 40000;
|
|
RecogidaDef.Parametros.t_descm = 0;
|
|
RecogidaDef.Parametros.t_desc = 40;
|
|
RecogidaDef.Parametros.t_convM = 40000;
|
|
RecogidaDef.Parametros.t_convm = 0;
|
|
RecogidaDef.Parametros.t_conv = 60 * 8;
|
|
RecogidaDef.Parametros.t_descansoM = 40000;
|
|
RecogidaDef.Parametros.t_descansom = 0;
|
|
RecogidaDef.Parametros.t_descanso = 30;
|
|
RecogidaDef.Parametros.h_inicio = 420;
|
|
RecogidaDef.Parametros.dens_vehi_org = 500;
|
|
RecogidaDef.Parametros.dens_vehi_res = 500;
|
|
RecogidaDef.Parametros.dens_vehi_env = 120;
|
|
RecogidaDef.Parametros.dens_vehi_pap = 250;
|
|
RecogidaDef.Parametros.dens_vehi_vid = 350;
|
|
RecogidaDef.Parametros.dens_vehi_otr = 100;
|
|
RecogidaDef.Parametros.dens_cont_org = 150;
|
|
RecogidaDef.Parametros.dens_cont_res = 100;
|
|
RecogidaDef.Parametros.dens_cont_env = 28;
|
|
RecogidaDef.Parametros.dens_cont_pap = 90;
|
|
RecogidaDef.Parametros.dens_cont_vid = 250;
|
|
RecogidaDef.Parametros.dens_cont_otr = 100;
|
|
RecogidaDef.Parametros.anch_vehi_3 = 2.4;
|
|
RecogidaDef.Parametros.anch_vehi_2 = 2.2;
|
|
RecogidaDef.Parametros.anch_vehi_s = 2;
|
|
RecogidaDef.Parametros.rad_giro_3 = 175;
|
|
RecogidaDef.Parametros.rad_giro_2 = 175;
|
|
RecogidaDef.Parametros.rad_giro_s = 175;
|
|
RecogidaDef.Parametros.t_vaci_tra = 30;
|
|
RecogidaDef.Parametros.t_vaci_lat = 90;
|
|
RecogidaDef.Parametros.t_vaci_sup = 180;
|
|
RecogidaDef.Parametros.t_vaci_bi = 100;
|
|
RecogidaDef.Parametros.t_vaci_bol = 5;
|
|
RecogidaDef.Parametros.t_vaci_lav = 60;
|
|
RecogidaDef.Parametros.t_vaci_otr = 60;
|
|
RecogidaDef.Parametros.kgmaxM = 20000;
|
|
RecogidaDef.Parametros.kgmaxm = 0;
|
|
RecogidaDef.Parametros.carga_maxM = 100;
|
|
RecogidaDef.Parametros.carga_maxm = 50;
|
|
|
|
//Atributos LATERALIDAD
|
|
RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Ambos] = "Ambos";
|
|
RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Dcha] = "Derecha";
|
|
RecogidaDef.tipos_lateralidad[(int)RecogidaDef.Lateralidad.Izqda] = "Izquierda";
|
|
|
|
//Campos de SENSORES
|
|
RecogidaDef.campos_def.cons_id_sens = RecogidaDef.campos.cons_id_sens = "OBJECTID";
|
|
RecogidaDef.campos_def.cons_url_sens = RecogidaDef.campos.cons_url_sens = "http://localiza.info/Utilidades/APIManager.aspx";
|
|
RecogidaDef.campos_def.cons_fecha_sens = RecogidaDef.campos.cons_fecha_sens = "2000-01-01T00:00:00";
|
|
RecogidaDef.campos_def.cons_fechaf_sens = RecogidaDef.campos.cons_fechaf_sens = "2050-01-01T00:00:00";
|
|
|
|
//Campos de CSV
|
|
RecogidaDef.campos_def.cons_id_csv = RecogidaDef.campos.cons_id_csv = "Nº";
|
|
RecogidaDef.campos_def.cons_llen_csv = RecogidaDef.campos.cons_llen_csv = "Lectura";
|
|
RecogidaDef.campos_def.cons_fecha_csv = RecogidaDef.campos.cons_fecha_csv = "Fecha";
|
|
RecogidaDef.campos_def.cons_fechai_csv = RecogidaDef.campos.cons_fechai_csv = "01/01/2000 0:01";
|
|
RecogidaDef.campos_def.cons_fechaf_csv = RecogidaDef.campos.cons_fechaf_csv = "01/01/2049 0:00";
|
|
|
|
//Campos de la red navegable que se leen
|
|
ComunDef.CamposNW.cons_onew = "ONEWAY";
|
|
ComunDef.CamposNW.cons_kph = "KPH";
|
|
ComunDef.CamposNW.cons_fow = "FOW";
|
|
ComunDef.CamposNW.cons_name = "NAME";
|
|
//Atributos de la red navegable que se leen
|
|
ComunDef.AtributosNW.atr_TF = "TF";
|
|
ComunDef.AtributosNW.atr_FT = "FT";
|
|
ComunDef.AtributosNW.atr_N = "N";
|
|
ComunDef.AtributosNW.atr_pedes = "14";
|
|
|
|
//Nombre de simbolos VSM
|
|
RecogidaDef.rellena_simbrec_vsm();*/
|
|
}
|
|
}
|
|
}
|