コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
        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;
            }
        }