Statistics
| Revision:

root / org.gvsig.jcrs / libJCRS / src / org / gvsig / crs / ogr / Esri2wkt.java @ 38

History | View | Annotate | Download (1.81 KB)

1
package org.gvsig.crs.ogr;
2

    
3
import org.gvsig.crs.CrsWkt;
4

    
5
public class Esri2wkt {
6

    
7
        CrsWkt datos = null;
8
        String cadWKT = "";
9
        String[] param_name = null;
10
        String[] param_value = null;
11
        
12
        public Esri2wkt(String wkt) {
13
                datos = new CrsWkt(wkt);                
14
                param_name = datos.getParam_name();
15
                param_value = datos.getParam_value();
16
        }
17
        
18
        /**
19
         * Formacion de la cadena wkt con los nombres correctos de las proyecciones
20
         * de esri para la libreria proj4.
21
         * @return
22
         */
23
        public String getWkt(){
24
                String proj = getNameProjectionWkt(datos.getProjection());
25
                                
26
                cadWKT = "PROJCS[\""+ datos.getProjcs()+"\", GEOGCS[\"" + datos.getGeogcs() + "\", DATUM[\""+ datos.getDatumName() +
27
                "\", SPHEROID[\""+ datos.getSpheroid()[0] + "\", "+ datos.getSpheroid()[1] + ", "+ datos.getSpheroid()[2] +"]], " +
28
                "PRIMEM[\""+ datos.getPrimen()[0] + "\", "+ datos.getPrimen()[1] +"], UNIT[\""+ datos.getUnit()[0] + "\", " + (Math.PI/180) +
29
                "]], PROJECTION[\""+ proj + "\"], ";
30
                        
31
                /*
32
                 * falta la parte de los par?metros... metodo para nombres...
33
                 */
34
                for (int i= 0; i< param_name.length;i++){
35
                        cadWKT += "PARAMETER[\""+param_name[i]+"\", " + param_value[i]+ "], ";
36
                }
37
                
38
                cadWKT += "UNIT[\""+ datos.getUnit_p()[0] + "\", 1.0], ";
39
                cadWKT += "AUTHORITY[\""+ datos.getAuthority()[0] + "\", " + datos.getAuthority()[1] + "]]";
40
                                
41
                return cadWKT;
42
        }
43
        
44
        /** 
45
         * Metodo auxiliar para el cambio del nombre de la proyeccion.
46
         */        
47
        private String getNameProjectionWkt(String projection) {
48
                                
49
                if (projection.equals("Lambert_Conformal_Conic")){
50
                        projection = "Lambert_Conformal_Conic_1SP";
51
                        for (int i = 0; i < param_name.length; i++) {                                
52
                                if (param_name[i].equals("Standard_Parallel_2")) {
53
                                        projection = "Lambert_Conformal_Conic_2SP";
54
                                }
55
                        }                        
56
                }                                
57
                return projection;
58
        }
59
}