source: ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/generationRaster/ServiceRaster.java @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

  • Property svn:executable set to *
File size: 5.7 KB
Line 
1package org.medias.eccad.metier.generationRaster;
2
3
4import java.util.HashMap;
5import java.util.Map;
6
7
8import org.medias.eccad.helpers.LoggerPerso;
9import org.medias.eccad.helpers.SpringBeanFactory;
10import org.medias.eccad.metier.generationRaster.colorMap.ColorMapping;
11import org.medias.eccad.metier.statistique.GrapheCGI;
12import org.medias.eccad.metier.traducteur.TraducteurStat;
13import org.medias.eccad.modele.ColorTab;
14import org.medias.eccad.modele.Grille;
15import org.medias.eccad.modele.StatReponse;
16import org.medias.eccad.modele.Zone;
17import org.medias.eccad.persistance.dao.ColorTabDAO;
18import org.medias.eccad.persistance.dao.GrilleDAO;
19import org.medias.eccad.persistance.exception.PersistanceException;
20import org.medias.eccad.presentation.traducteur.TraducteurCarte;
21import org.springframework.beans.factory.xml.XmlBeanFactory;
22
23public class ServiceRaster implements IntServiceRaster {
24        private XmlBeanFactory xmlbean;
25       
26        //private GenerateurMapRaster    gen_carte     = null;
27        private GenerateurLegendRaster gen_legend    = null;
28        private GenerateurWorldFile    gen_worldfile = null;
29        private ColorMapping           colormap      = null;
30       
31        /**
32         * Constructeur par défaut
33         *
34         */
35        public ServiceRaster() {
36                LoggerPerso.log(ServiceRaster.class, LoggerPerso.DEBUG, "création du service");
37                xmlbean = SpringBeanFactory.getXmlFactory();
38                gen_worldfile = (GenerateurWorldFile) xmlbean.getBean("worldfile");
39                colormap = (ColorMapping) xmlbean.getBean("colormap");
40               
41                //gen_carte = new GenerateurRasterImg();
42                gen_legend = new GenerateurLegendeImg();
43        }
44
45        /**
46         * Permet la création de l'image représentant la légende
47         */
48        public String genereLegend(long id_grille, long id_colormap, String fichier) {
49                colormap = getColorMap(id_colormap);
50                InformationLegend info_legend = new InformationLegend();
51               
52                gen_legend.genereLegendVertical(colormap, info_legend.getLegendText(id_grille, colormap.getColorTable()), info_legend.getInfoSup(id_grille));
53                gen_legend.enregistreLegend(fichier+".legend.png");
54                return fichier+".legend.png";
55        }
56
57       
58        /**
59         * Demande au CGI eccad de générer un raster pour la grille passée en paramêtre.
60         */
61        public StatReponse genereRaster(long id_grille, long id_colormap, Zone zone) {
62                LoggerPerso.log(ServiceRaster.class, LoggerPerso.DEBUG,"-------------------------  **********************************++++++++++++++++++++++ ");
63                float centerValue = 0, centerLat = 0, centerLon = 0;
64                String requete = "";
65                GrilleDAO grilleDAO = (GrilleDAO) xmlbean.getBean("grilleDAO");
66                Grille grille = null;
67               
68                try {grille = grilleDAO.getGrille(id_grille);}catch (PersistanceException e) {LoggerPerso.log(ServiceRaster.class, LoggerPerso.ERROR, "ERROR generateRaster " + e.getM_message(), e);}
69               
70                GrapheCGI rasterdao = new GrapheCGI();
71                Map<String, String> critere = new HashMap<String, String>();
72                if (zone != null)
73                {
74                        //*************************//
75                       
76                        String northbcN =  zone.getNorthbcN().replace(",",".");
77                        String southbcN = zone.getSouthbcN().replace(",",".");
78                        String eastbcN = zone.getEastbcN().replace(",",".");
79                        String westbcN = zone.getWestbcN().replace(",",".");
80
81                        LoggerPerso.log(ServiceRaster.class, LoggerPerso.DEBUG,"-------------------------   "+ northbcN);
82                       
83                        critere.put("lat-max", northbcN);
84                        critere.put("lat-min", southbcN);
85                        critere.put("lon-max", eastbcN);
86                        critere.put("lon-min", westbcN);
87                       
88                        critere.put("beg-date", grille.getDate().toString());
89                        critere.put("end-date", grille.getDate().toString());
90                        TraducteurStat traducteur = new TraducteurStat();
91                        requete = traducteur.encodeCritere(critere, grille.getId_param(), grille.getId_produit(), id_colormap, "getGridRaster", id_grille);
92                        StatReponse reponse = traducteur.getReponse(rasterdao.getStatistique(requete));
93                        centerValue = reponse.getCenter();
94                        centerLat   = reponse.getCenterLat();
95                        centerLon   = reponse.getCenterLon();
96                }
97
98                LoggerPerso.log(ServiceRaster.class, LoggerPerso.DEBUG,"-------------------------  **********************************++++++++++++++++++++++ ");
99               
100                critere.put("lat-max", "90");
101                critere.put("lat-min", "-90");
102                critere.put("lon-max", "180");
103                critere.put("lon-min", "-180");
104               
105                critere.put("beg-date", grille.getDate().toString());
106                critere.put("end-date", grille.getDate().toString());
107                TraducteurStat traducteur = new TraducteurStat();
108                requete = traducteur.encodeCritere(critere, grille.getId_param(), grille.getId_produit(), id_colormap, "getGridRaster", id_grille);
109                StatReponse reponse = traducteur.getReponse(rasterdao.getStatistique(requete));
110                if (zone != null)
111                {
112                        reponse.setCenter(centerValue);
113                        reponse.setCenterLat(centerLat);
114                        reponse.setCenterLon(centerLon);
115                }
116               
117                //String result = rasterdao.getRaster(infoconnect.getDb_url().trim(), infoconnect.getDb_name().trim(), infoconnect.getDb_login().trim(), (int)id_grille, (int)id_colormap);
118                return reponse;
119        }
120       
121        /**
122         * Interroge la base de données pour obtenir la table de couleur de la grille
123         *
124         * @param colormapid l'identifiant de la colormap
125         * @return la table de couleur par défaut
126         */
127        private ColorMapping getColorMap(long colormapid) {
128                ColorTabDAO colorDAO = (ColorTabDAO) xmlbean.getBean("colorTabDAO");
129               
130                ColorTab colortab = null;
131               
132                try {
133                        colortab = colorDAO.getColorMapByID(colormapid);
134                } catch (PersistanceException e) {
135                        e.printStackTrace();
136                }
137               
138                colormap.setColorTable(colortab);
139                return colormap;
140        }
141       
142        /*
143         * Getter and Setter
144         */
145
146        public GenerateurLegendRaster getGen_legend() {
147                return gen_legend;
148        }
149
150        public void setGen_legend(GenerateurLegendRaster gen_legend) {
151                this.gen_legend = gen_legend;
152        }
153
154        public GenerateurWorldFile getGen_worldfile() {
155                return gen_worldfile;
156        }
157
158        public void setGen_worldfile(GenerateurWorldFile gen_worldfile) {
159                this.gen_worldfile = gen_worldfile;
160        }
161
162
163}
Note: See TracBrowser for help on using the repository browser.