private static VectorLayer CrearCapaTemaAdscripcion(IUnidadGeoEstadistica uge) { if (uge is PlantaEdificio) { PlantaEdificio pe = (PlantaEdificio)uge; //Montar la consulta de los dptos ordenados por superficie _dsTemas = pe.EstadisticaDepartamentosSIGUA(); _capaTemaAdsc = new SharpMap.Layers.VectorLayer(pe.Codigo); SharpMap.Data.Providers.PostGIS proveedorPostgis = new SharpMap.Data.Providers.PostGIS(SIGUANETDesktop.DB.DBUtils.GetPGSQLCnString(), "sig" + pe.Planta.ToString().ToLower(), "gid"); proveedorPostgis.DefinitionQuery = string.Format("codigo like '{0}%' AND actividad <> 93", pe.Codigo); _capaTemaAdsc.DataSource = proveedorPostgis; //Llama a la función delegada para pintar adscripcion CustomTheme generadorEstilos = new SharpMap.Rendering.Thematics.CustomTheme(CrearEstiloPorAdscripcion); VectorStyle estiloPorDefecto = SIGUANETDesktop.ModeloCartografia.Simbologia.Paleta.obtenerEstiloPorDefecto(_paleta); generadorEstilos.DefaultStyle = estiloPorDefecto; _capaTemaAdsc.Theme = generadorEstilos; NuevaEntradaLeyendaTematica(TipoMapa.TemaAdscripcion, _capaTemaAdsc.LayerName, _capaTemaAdsc, "Temático por Adscripción", EntradaLeyendaTematica.TipoOrdenacion.Descendente); return(_capaTemaAdsc); } else { return(null); } }
public static List <Ubicacion> generarListaUbicaciones(DataSet ds) { if (ds.Tables[0].TableName == "Excepcion") { throw new ApplicationException((string)ds.Tables[0].Rows[0][0]); } else { List <Ubicacion> r = new List <Ubicacion>(); foreach (DataRow dr in ds.Tables[0].Rows) { string apellido2 = string.Empty; if (!(dr["apellido2"] is System.DBNull)) { apellido2 = (string)dr["apellido2"]; } Persona p = new Persona((string)dr["nif"], (string)dr["apellido1"], apellido2, (string)dr["nombre"], (bool)dr["espas"], (bool)dr["espdi"], (bool)dr["espdicargo"], (bool)dr["esbecario"], (bool)dr["esexterno"]); Estancia e = new Estancia((string)dr["codigo"]); e.Geometria = (MultiPolygon)SharpMap.Geometries.MultiPolygon.GeomFromText((string)dr["wkt"]); Zona z = new Zona((string)dr["codzona"]); z.Denominacion = (string)dr["denozona"]; Edificio ed = new Edificio(z, (string)dr["codedificio"]); ed.Denominacion = (string)dr["denoedificio"]; PlantaEdificio pe = new PlantaEdificio(ed, (EnumPlantas)System.Enum.Parse(typeof(EnumPlantas), (string)dr["enumplanta"])); pe.Denominacion = (string)dr["denoplanta"]; e.PlantaEdificio = pe; ActividadSIGUA a = new ActividadSIGUA((short)dr["actividad"]); a.Denominacion = (string)dr["denoActividad"]; a.GrupoPropio = new GrupoPropio((string)dr["denogrupo"]); a.GrupoCRUE = new GrupoCRUE((string)dr["denocrue"]); a.GrupoUXXI = new GrupoUXXI((string)dr["denou21"]); DepartamentoSIGUA depsigua = new DepartamentoSIGUA((string)dr["coddpto"]); depsigua.Denominacion = (string)dr["denodpto"]; depsigua.EsCentro = (bool)dr["es_centro"]; depsigua.EsDepartamento = (bool)dr["es_dpto"]; depsigua.EsUnidad = (bool)dr["es_unidad"]; e.Actividad = a; e.Adscripcion = depsigua; if (dr["denoestancia"].GetType() == typeof(System.DBNull)) { e.Denominacion = string.Empty; } else { e.Denominacion = (string)dr["denoestancia"]; } r.Add(new Ubicacion(p, e)); } return(r); } }
public static List <Estancia> generarListaEstancias(DataSet ds) { if (ds.Tables[0].TableName == "Excepcion") { throw new ApplicationException((string)ds.Tables[0].Rows[0][0]); } else { List <Estancia> r = new List <Estancia>(); foreach (DataRow dr in ds.Tables[0].Rows) { Estancia e = new Estancia((string)dr["codigo"]); try { e.Geometria = (MultiPolygon)SharpMap.Geometries.MultiPolygon.GeomFromText((string)dr["wkt"]); } catch (Exception ex) { new SIGUANETDesktopException(ExceptionCategory.DATAInvalidGeometry, "ObjectFactory.generarListaEstancias", ex, e.Codigo); continue; } Zona z = new Zona((string)dr["codzona"]); z.Denominacion = (string)dr["denozona"]; Edificio ed = new Edificio(z, (string)dr["codedificio"]); ed.Denominacion = (string)dr["denoedificio"]; PlantaEdificio pe = new PlantaEdificio(ed, (EnumPlantas)System.Enum.Parse(typeof(EnumPlantas), (string)dr["enumplanta"])); pe.Denominacion = (string)dr["denoplanta"]; e.PlantaEdificio = pe; ActividadSIGUA a = new ActividadSIGUA((short)dr["actividad"]); a.Denominacion = (string)dr["denoActividad"]; a.GrupoPropio = new GrupoPropio((string)dr["denogrupo"]); a.GrupoCRUE = new GrupoCRUE((string)dr["denocrue"]); a.GrupoUXXI = new GrupoUXXI((string)dr["denou21"]); DepartamentoSIGUA depsigua = new DepartamentoSIGUA((string)dr["coddpto"]); depsigua.Denominacion = (string)dr["denodpto"]; depsigua.EsCentro = (bool)dr["es_centro"]; depsigua.EsDepartamento = (bool)dr["es_dpto"]; depsigua.EsUnidad = (bool)dr["es_unidad"]; e.Actividad = a; e.Adscripcion = depsigua; if (dr["denoestancia"].GetType() == typeof(System.DBNull)) { e.Denominacion = string.Empty; } else { e.Denominacion = (string)dr["denoestancia"]; } r.Add(e); } return(r); } }
private static VectorLayer CrearCapaCentroidesEdificio(IUnidadGeoEstadistica uge) { if (uge is PlantaEdificio) { PlantaEdificio pe = (PlantaEdificio)uge; VectorLayer capaCentroidesEdificio = new SharpMap.Layers.VectorLayer(NOMCAPA_CENTROIDES); SharpMap.Data.Providers.PostGIS proveedorPostgis = new SharpMap.Data.Providers.PostGIS(SIGUANETDesktop.DB.DBUtils.GetPGSQLCnString(), "quest_estancias_label", "codigo"); proveedorPostgis.DefinitionQuery = string.Format("codigo like '{0}%'", pe.Codigo); capaCentroidesEdificio.DataSource = proveedorPostgis; return(capaCentroidesEdificio); } else { return(null); } }
private static VectorLayer CrearCapaEdificioMuro(IUnidadGeoEstadistica uge) { if (uge is PlantaEdificio) { PlantaEdificio pe = (PlantaEdificio)uge; VectorLayer capaEdificioMuro = new SharpMap.Layers.VectorLayer(pe.Codigo + "000"); SharpMap.Data.Providers.PostGIS proveedorPostgis = new SharpMap.Data.Providers.PostGIS(SIGUANETDesktop.DB.DBUtils.GetPGSQLCnString(), "sig" + pe.Planta.ToString().ToLower(), "gid"); proveedorPostgis.DefinitionQuery = string.Format("codigo = '{0}000'", pe.Codigo); capaEdificioMuro.DataSource = proveedorPostgis; SimbLayEdificioMuro s = new SimbLayEdificioMuro(); capaEdificioMuro.Enabled = s.visible; capaEdificioMuro.Style = ObtenerEstilo(TipoPaleta.predeterminada, s); NuevaEntradaLeyendaBD(capaEdificioMuro.LayerName, capaEdificioMuro, s.titulo); return(capaEdificioMuro); } else { return(null); } }
private static TreeNode obtenerNodoCampus(PlantaEdificio p, TreeNode nodoUA) { TreeNode nodoCampus = new TreeNode(); bool existe = false; foreach (TreeNode n in nodoUA.Nodes) { Zona candidato = (Zona)n.Tag; if (candidato.Codigo == p.Edificio.Zona.Codigo) { nodoCampus = n; existe = true; } } if (!existe) { nodoCampus.Text = p.Edificio.Zona.Denominacion; nodoCampus.Tag = p.Edificio.Zona; nodoUA.Nodes.Add(nodoCampus); } return(nodoCampus); }
public static TreeNode obtenerNodoEdificio(PlantaEdificio p, TreeNode nodoUA) { TreeNode nodoCampus = obtenerNodoCampus(p, nodoUA); TreeNode nodoEdificio = new TreeNode(); bool existe = false; foreach (TreeNode n in nodoCampus.Nodes) { Edificio candidato = (Edificio)n.Tag; if (candidato.Codigo == p.Edificio.Codigo) { nodoEdificio = n; existe = true; } } if (!existe) { nodoEdificio.Text = string.Format("{0}-{1}", p.Edificio.Codigo, p.Edificio.Denominacion); nodoEdificio.Tag = p.Edificio; nodoCampus.Nodes.Add(nodoEdificio); } return(nodoEdificio); }
public static TreeNode obtenerNodoPlanta(Estancia e, TreeNode nodoUA) { TreeNode nodoEdificio = obtenerNodoEdificio(e, nodoUA); TreeNode nodoPlanta = new TreeNode(); bool existe = false; foreach (TreeNode n in nodoEdificio.Nodes) { PlantaEdificio candidato = (PlantaEdificio)n.Tag; if (candidato.Codigo == e.PlantaEdificio.Codigo) { nodoPlanta = n; existe = true; } } if (!existe) { nodoPlanta.Text = e.PlantaEdificio.Planta.ToString(); nodoPlanta.Tag = e.PlantaEdificio; nodoEdificio.Nodes.Add(nodoPlanta); } return(nodoPlanta); }
private static VectorLayer CrearCapaTemaUsos(IUnidadGeoEstadistica uge) { if (uge is PlantaEdificio) { PlantaEdificio pe = (PlantaEdificio)uge; _capaTemaUsos = new SharpMap.Layers.VectorLayer(pe.Codigo); SharpMap.Data.Providers.PostGIS proveedorPostgis = new SharpMap.Data.Providers.PostGIS(SIGUANETDesktop.DB.DBUtils.GetPGSQLCnString(), "sig" + pe.Planta.ToString().ToLower(), "gid"); proveedorPostgis.DefinitionQuery = string.Format("codigo like '{0}%' AND actividad <> 93", pe.Codigo); _capaTemaUsos.DataSource = proveedorPostgis; CustomTheme generadorEstilos = new SharpMap.Rendering.Thematics.CustomTheme(CrearEstiloPorActividad); VectorStyle estiloPorDefecto = SIGUANETDesktop.ModeloCartografia.Simbologia.Paleta.obtenerEstiloPorDefecto(_paleta); generadorEstilos.DefaultStyle = estiloPorDefecto; _capaTemaUsos.Theme = generadorEstilos; NuevaEntradaLeyendaTematica(TipoMapa.TemaUso, _capaTemaUsos.LayerName, _capaTemaUsos, "Temático por Uso", EntradaLeyendaTematica.TipoOrdenacion.Ascendente); return(_capaTemaUsos); } else { return(null); } }
private void RefrescarMapa(TreeNode nodo) { //Comprueba el nodo que está seleccionado if (nodo.Tag.GetType() == typeof(BaseOrg)) { this.limpiarPropiedades(); this.tpLeyenda.Enabled = false; this.panelLeyenda.Refresh(); this.tpPDF.Enabled = false; this.Preview.SetRenderEvent(null); this.tsbPDFGuardar.Enabled = false; this.tsbPDFImprimir.Enabled = false; this.miVMapa.Visible = false; this.toolStrip1.Enabled = false; } if (nodo.Tag.GetType() == typeof(Zona)) { this.limpiarPropiedades(); this.tpLeyenda.Enabled = false; this.panelLeyenda.Refresh(); this.tpPDF.Enabled = false; this.Preview.SetRenderEvent(null); this.tsbPDFGuardar.Enabled = false; this.tsbPDFImprimir.Enabled = false; this.miVMapa.Visible = false; this.toolStrip1.Enabled = false; } if (nodo.Tag.GetType() == typeof(Edificio)) { this.limpiarPropiedades(); this.tpLeyenda.Enabled = false; this.panelLeyenda.Refresh(); this.tpPDF.Enabled = false; this.Preview.SetRenderEvent(null); this.tsbPDFGuardar.Enabled = false; this.tsbPDFImprimir.Enabled = false; this.miVMapa.Visible = false; this.toolStrip1.Enabled = false; } // Para la planta del edificio if (nodo.Tag.GetType() == typeof(PlantaEdificio)) { PlantaEdificio pe = (PlantaEdificio)nodo.Tag; this.limpiarPropiedades(); this.tpLeyenda.Enabled = true; this.tpPDF.Enabled = true; this.Preview.SetRenderEvent(null); this.tsbPDFGuardar.Enabled = false; this.tsbPDFImprimir.Enabled = false; this.miVMapa.Visible = true; // Crear una lista de geometria a partir de los nodos hijos de PlantaEdificio List <Geometry> lp = new List <Geometry>(); foreach (TreeNode n in nodo.Nodes) { Estancia estHija; if (n.Tag is Estancia) { estHija = (Estancia)n.Tag; lp.Add(estHija.Geometria); } else if (n.Tag is Ubicacion) { estHija = (n.Tag as Ubicacion).Estancia; lp.Add(estHija.Geometria); } } AdminMapas.CrearMapa(this.panelLeyenda.CreateGraphics(), this.Mapa, (IUnidadGeoEstadistica)pe, lp, null, this._tipoMapa, this._tipoPaleta); this.miVMapa.Map = this.Mapa; } // Si es un nodo de estancia if (nodo.Tag.GetType() == typeof(Estancia)) { Estancia est = (Estancia)nodo.Tag; this.actualizarPropiedades(est); this.tpLeyenda.Enabled = true; this.tpPDF.Enabled = true; this.Preview.SetRenderEvent(null); this.tsbPDFGuardar.Enabled = false; this.tsbPDFImprimir.Enabled = false; this.miVMapa.Visible = true; // Selección de elementos de la consulta List <Geometry> lp = new List <Geometry>(); foreach (TreeNode n in nodo.Parent.Nodes) { Estancia estHija = (Estancia)n.Tag; lp.Add(estHija.Geometria); } AdminMapas.CrearMapa(this.panelLeyenda.CreateGraphics(), this.Mapa, (IUnidadGeoEstadistica)est.PlantaEdificio, lp, est, this._tipoMapa, this._tipoPaleta); this.miVMapa.Map = this.Mapa; } // Si es un nodo de ubicacion if (nodo.Tag.GetType() == typeof(Ubicacion)) { Estancia est = (nodo.Tag as Ubicacion).Estancia; this.actualizarPropiedades(est); this.tpLeyenda.Enabled = true; this.miVMapa.Visible = true; // Selección de elementos de la consulta List <Geometry> lp = new List <Geometry>(); foreach (TreeNode n in nodo.Parent.Nodes) { Estancia estHija = (n.Tag as Ubicacion).Estancia; lp.Add(estHija.Geometria); } AdminMapas.CrearMapa(this.panelLeyenda.CreateGraphics(), this.Mapa, (IUnidadGeoEstadistica)est.PlantaEdificio, lp, est, this._tipoMapa, this._tipoPaleta); this.miVMapa.Map = this.Mapa; } }