Revision 8120 trunk/libraries/libCq CMS for java.old/src/org/cresques/cts/ProjectionPool.java

View differences:

ProjectionPool.java
23 23
 */
24 24
package org.cresques.cts;
25 25

  
26
import java.util.ArrayList;
27
import java.util.Iterator;
28
import java.util.Map;
29
import java.util.TreeMap;
30

  
26 31
import org.cresques.cts.gt2.CSDatum;
27 32
import org.cresques.cts.gt2.CSGaussPt;
28 33
import org.cresques.cts.gt2.CSLambertCC;
34
import org.cresques.cts.gt2.CSMercator;
29 35
import org.cresques.cts.gt2.CSUTM;
30 36
import org.cresques.cts.gt2.CoordSys;
31 37

  
32
import java.util.ArrayList;
33
import java.util.Iterator;
34
import java.util.Map;
35
import java.util.TreeMap;
36 38

  
37

  
38 39
/**
39 40
 * Pool de proyeccions (cs+datum) conocidas.
40 41
 * @author "Luis W. Sevilla" <sevilla_lui@gva.es>
41 42
 */
42
public class ProjectionPool {
43
public class ProjectionPool implements ICRSFactory {
43 44
    static TreeMap data = null;
44 45

  
45 46
    static {
......
75 76
        cs.setAbrev("EPSG:4247"); // PSAD 56 'Loma Quintana'
76 77
        data.put(cs.getAbrev(), cs);
77 78

  
79
        cs = (new CSUTM(CSDatum.ntfParis, 30)).toGeo();
80
        cs.setAbrev("EPSG:4807"); // NTF Paris
81
        data.put(cs.getAbrev(), cs);
82

  
83
        cs = (new CSUTM(CSDatum.etrs89, 30)).toGeo();
84
        cs.setAbrev("EPSG:4258"); // ETRS 89
85
        data.put(cs.getAbrev(), cs);
78 86
        for (int i = 1; i <= 60; i++) {
79 87
            String huso = Integer.toString(i);
80 88

  
......
89 97
            cs = new CSUTM(CSDatum.ed50, i);
90 98
            cs.setAbrev("EPSG:230" + huso);
91 99
            data.put(cs.getAbrev(), cs);
92
        }
100
            if (i>2 && i<=23) {
101
                cs = new CSUTM(CSDatum.nad27, i);
102
                cs.setAbrev("EPSG:267" + huso);
103
                data.put(cs.getAbrev(), cs);
93 104

  
94
        for (int i = 3; i <= 23; i++) {
95
            String huso = Integer.toString(i);
96

  
97
            if (i < 10) {
98
                huso = "0" + huso;
105
                cs = new CSUTM(CSDatum.nad83, i);
106
                cs.setAbrev("EPSG:269" + huso);
107
                data.put(cs.getAbrev(), cs);
99 108
            }
100

  
101
            cs = new CSUTM(CSDatum.nad27, i);
102
            cs.setAbrev("EPSG:267" + huso);
103
            data.put(cs.getAbrev(), cs);
104

  
105
            cs = new CSUTM(CSDatum.nad83, i);
106
            cs.setAbrev("EPSG:269" + huso);
107
            data.put(cs.getAbrev(), cs);
109
            if (i>27 && i<39) {
110
                cs = new CSUTM(CSDatum.etrs89, i);
111
                cs.setAbrev("EPSG:258" + huso);
112
                data.put(cs.getAbrev(), cs);
113
            }
108 114
        }
109 115

  
110 116
        cs = CSGaussPt.hgd73;
......
183 189
         * EPSG:31467 - Gau?-Kr?ger band 3
184 190
         * EPSG:4314  - DHDN
185 191
         */
192
        /*
193
         * 27572=PROJCS["NTF (Paris) / Lambert zone II",
194
             GEOGCS["NTF (Paris)",
195
                    DATUM["Nouvelle_Triangulation_Francaise_Paris",
196
                          SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936269,
197
                                   AUTHORITY["EPSG","7011"]],
198
                          TOWGS84[-168,-60,320,0,0,0,0],
199
                          AUTHORITY["EPSG","6807"]],
200
                    PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],
201
                    UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],
202
                    AUTHORITY["EPSG","4807"]],
203
             PROJECTION["Lambert_Conformal_Conic_1SP"],
204
                        PARAMETER["latitude_of_origin",52],
205
                        PARAMETER["central_meridian",0],
206
                        PARAMETER["scale_factor",0.99987742],
207
                        PARAMETER["false_easting",600000],
208
                        PARAMETER["false_northing",2200000],
209
                        UNIT["metre",1,AUTHORITY["EPSG","9001"]],
210
                        AUTHORITY["EPSG","27572"]]
211
         */
212

  
213
        cs = new CSLambertCC(CSDatum.ntfParis, 0, 46.79999999999995, 0.99987742, 600000, 2200000);
214
        cs.setAbrev("EPSG:27572");
215
        data.put(cs.getAbrev(), cs);
216
        
217
        cs = new CSLambertCC(CSDatum.ntfParis, 0, 52, 0.99987742, 600000, 2200000);
218
        cs.setAbrev("EPSG:27582");
219
        data.put(cs.getAbrev(), cs);
220
        /*
221
         * # RGF93
222
         * <4171> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
223
         * # RGF93 / Lambert-93
224
         */
225
        cs = (new CSUTM(CSDatum.rgf93, 30)).toGeo();
226
        cs.setAbrev("EPSG:4171"); // NTF Paris
227
        data.put(cs.getAbrev(), cs);
228
        /*
229
         *  <2154> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3
230
         *  +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0
231
         *  +units=m +no_defs  <>
232
         */
233
        cs = new CSLambertCC(CSDatum.rgf93, 3.0, 46.5, 49.0, 44.0, 700000.0, 6600000.0);
234
        cs.setAbrev("EPSG:2154");
235
        data.put(cs.getAbrev(), cs);
236

  
237
        cs = new CSMercator(CSDatum.wgs84);
238
        cs.setAbrev("EPSG:54004");
239
        data.put(cs.getAbrev(), cs);
240
        cs.setAbrev("EPSG:9804");
241
        data.put(cs.getAbrev(), cs);
242
        
243
        // Lo que faltaba: ?planetas!
244
        cs = (new CSUTM(CSDatum.moon, 30)).toGeo();
245
        cs.setAbrev("IAU2000:30100"); // Moon
246
        data.put(cs.getAbrev(), cs);
247

  
248
        cs = (new CSUTM(CSDatum.mars, 30)).toGeo();
249
        cs.setAbrev("IAU2000:49900"); // Mars
250
        data.put(cs.getAbrev(), cs);
251
        
252
        /*
253
         * CRSs argentinos.
254
         * coordenadas geograficas
255
			PosGAr 4172 
256
			PosGAr98 4190
257
			
258
			coordenadas proyectadas
259
			POSGAR 94/Argentina 1 22191 
260
			POSGAR 94/Argentina 2 22192
261
			POSGAR 94/Argentina 3 22193
262
			POSGAR 94/Argentina 4 22194
263
			POSGAR 94/Argentina 5 22195
264
			POSGAR 94/Argentina 6 22196
265
			POSGAR 94/Argentina 7 22197
266
			
267
			POSGAR 98/Argentina 1 22181
268
			POSGAR 98/Argentina 2 22182
269
			POSGAR 98/Argentina 3 22183
270
			POSGAR 98/Argentina 4 22184
271
			POSGAR 98/Argentina 5 22185
272
			POSGAR 98/Argentina 6 22186
273
			POSGAR 98/Argentina 7 22187
274
			
275
			4221 GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
276
			
277
			22191	EPSG	22191	PROJCS["Argentina_Zone_1",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-72],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-72 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=intl +units=m
278
			22192	EPSG	22192	PROJCS["Argentina_Zone_2",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-69],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m
279
			22193	EPSG	22193	PROJCS["Argentina_Zone_3",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-66],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-66 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=intl +units=m
280
			22194	EPSG	22194	PROJCS["Argentina_Zone_4",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-63],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-63 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=intl +units=m
281
			22195	EPSG	22195	PROJCS["Argentina_Zone_5",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-60],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-60 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=intl +units=m
282
			22196	EPSG	22196	PROJCS["Argentina_Zone_6",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-57],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-57 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=intl +units=m
283
			22197	EPSG	22197	PROJCS["Argentina_Zone_7",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-54],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1]]	+proj=tmerc +lat_0=-90 +lon_0=-54 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=intl +units=m
284

  
285
         */
286
        cs = new CoordSys(CSDatum.posgar);
287
        cs.setAbrev("EPSG:4172"); // Posgar
288
        data.put(cs.getAbrev(), cs);
289
        
290
        cs = new CoordSys(
291
			"GEOGCS[\"GCS_Campo_Inchauspe\"," +
292
				"DATUM[\"D_Campo_Inchauspe\"," +
293
					"SPHEROID[\"International_1924\",6378388,297],"+
294
					"TOWGS84[0,0,0,0,0,0,0]]," +
295
				"PRIMEM[\"Greenwich\",0]," +
296
				"UNIT[\"Degree\",0.017453292519943295]]");
297
        cs.setAbrev("EPSG:4221"); // Campo Inchauspe
298
        data.put(cs.getAbrev(), cs);
299
        
300
       for (int i=1; i<=7; i++) {
301
	        cs = new CoordSys(
302
	        	"PROJCS[\"Argentina_Zone_"+i+"\"," +
303
	        		"GEOGCS[\"GCS_Campo_Inchauspe\"," +
304
	        			"DATUM[\"D_Campo_Inchauspe\"," +
305
		        			"SPHEROID[\"International_1924\",6378388,297],"+
306
		        			"TOWGS84[0,0,0,0,0,0,0]]," +
307
		        		"PRIMEM[\"Greenwich\",0]," +
308
		        		"UNIT[\"Degree\",0.017453292519943295]]," +
309
		        	"PROJECTION[\"Transverse_Mercator\"]," +
310
		        	"PARAMETER[\"False_Easting\",1500000]," +
311
		        	"PARAMETER[\"False_Northing\",0]," +
312
		        	"PARAMETER[\"Central_Meridian\","+(-75+3*i)+"]," +
313
		        	"PARAMETER[\"Scale_Factor\",1]," +
314
		        	"PARAMETER[\"Latitude_Of_Origin\",-90]," +
315
		        	"UNIT[\"Meter\",1]]");
316
	        cs.setAbrev("EPSG:2219"+i); // Posgar
317
	        data.put(cs.getAbrev(), cs);
318
        }
319
       
320
       /*
321
        * pendiente de a?adir:
322
        *     *
323

  
324
      EPSG 3003: Montemario / Italy Zone 1 - Pendiente de a?adir
325
    *
326

  
327
      EPSG 4149: CH1903 - Pendiente de a?adir
328

  
329
        */
186 330
    }
187 331

  
188 332
    /**
......
199 343
     * @param name abreviatura de la proyecccion (i.e. EPSG:23030)
200 344
     * @return Proyeccion si existe
201 345
     */
202
    public static IProjection get(String name) {
346
    public IProjection get(String name) {
203 347
        IProjection proj = null;
204 348

  
205 349
        if (ProjectionPool.data.containsKey(name)) {
......
228 372
    }
229 373

  
230 374
    /**
375
     * LWS ?obsoleto?
231 376
     * Devuelve una proyeccion a partir de un codig epsg.
232 377
     * @param name codigo de la proyecccion (i.e. 23030)
233 378
     * @return Proyeccion si existe
234
     */
379
     * /
235 380
    private static IProjection getByEpsg(String code) {
236 381
        IProjection proj = get("EPSG:" + code);
237 382

  
238 383
        return proj;
239
    }
384
    }*/
240 385
}

Also available in: Unified diff