Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libJCRS / src-test / es / idr / projection / test / TestProj4.java @ 38897

History | View | Annotate | Download (2.35 KB)

1
package es.idr.projection.test;
2

    
3
import java.awt.geom.Point2D;
4

    
5
import org.cresques.cts.ICoordTrans;
6
import org.gvsig.crs.CrsException;
7
import org.gvsig.crs.CrsFactory;
8
import org.gvsig.crs.ICrs;
9

    
10
public class TestProj4 {
11
        
12
        
13
        /**
14
         * @param args
15
         */
16
        public static void main(String[] args) {
17
                try {                        
18

    
19
                        System.out.println("java.library.path:"+System.getProperty("java.library.path"));
20
                        System.out.println("PROJ_LIB:"+System.getenv("PROJ_LIB"));
21
                                        
22
                    String strEpsgCodeSrc, strEpsgCodeDest;
23
                    // He tenido que incluir un mecanismo para valores concretos de parametros
24
                    strEpsgCodeSrc="EPSG:23030";  // ED50 UTM 30
25
                    strEpsgCodeDest="EPSG:25830";  // ETRS89 UTM 30 
26
                    ICrs crs=null;
27
                    //CoordinateReferenceSystem source;
28
                    //source = CRS.decode(strEpsgCode);
29
                crs = new CrsFactory().getCRS(strEpsgCodeSrc); 
30
                    
31
                System.out.println(crs.getWKT());                
32
                        System.out.println(crs.getProj4String()); //proj4.exportToProj4(crs));
33
                        
34
                        ICrs crs2 = new CrsFactory().getCRS(strEpsgCodeDest);
35
                        
36
                        // Origen= 40 grados lat y -1 grado longitud en ED50
37
                        Point2D.Double ptOrig = new Point2D.Double(670733.214,4429748.958); 
38
                        
39
                        // Segun la calculadora de IGN, deber?a dar
40
                        // 670623.740, 4429540.085 en ETRS89
41
                        
42
                        Point2D ptDest;
43
                        ICoordTrans cTrans = crs.getCT(crs2);
44
                        Point2D p = cTrans.convert(ptOrig, null);
45
                        System.out.println("pOrig=" + ptOrig + " pDest=" + p.toString());
46
                        
47
                        System.out.println("Code: " + crs2.getProj4String());
48
                        
49
                        crs.setTransformationParams("+nadgrids=sped2et.gsb", null);
50
                        ICoordTrans cTrans2 = crs.getCT(crs2);
51
                        ptDest = cTrans2.convert(ptOrig, null);
52
                        System.out.println("Con rejilla: pOrig=" + ptOrig + " pDest=" + ptDest.toString());
53
                        System.out.println("Deber?a dar: 670623.740, 4429540.085 en ETRS89");
54
                        System.out.println("Code orig: " + crs.getProj4String());
55

    
56
                        ptOrig.setLocation(731720, 4371764); // En el puerto de Valencia 
57
                        ptDest = cTrans2.convert(ptOrig, null);
58
                        System.out.println("Con rejilla: pOrig=" + ptOrig + " pDest=" + ptDest.toString() + " Segun IGN: 731610, 4371554");
59
                        System.out.println(cTrans2.getPOrig().getFullCode() + "-> " + cTrans2.getPDest().getFullCode());
60

    
61
                                
62
                                        
63
                } catch (CrsException e) {
64
                        // TODO Auto-generated catch block
65
                        e.printStackTrace();
66
                }
67
        }
68
        
69
}