svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.projection / org.gvsig.projection.cresques / org.gvsig.projection.cresques.impl / src / main / java / org / cresques / impl / cts / ProjectionPool.java @ 40559
History | View | Annotate | Download (16.5 KB)
1 | 40559 | jjdelcerro | /**
|
---|---|---|---|
2 | * gvSIG. Desktop Geographic Information System.
|
||
3 | 40455 | jjdelcerro | *
|
4 | 40559 | jjdelcerro | * Copyright (C) 2007-2013 gvSIG Association.
|
5 | 40455 | jjdelcerro | *
|
6 | * This program is free software; you can redistribute it and/or
|
||
7 | * modify it under the terms of the GNU General Public License
|
||
8 | 40559 | jjdelcerro | * as published by the Free Software Foundation; either version 3
|
9 | 40455 | jjdelcerro | * of the License, or (at your option) any later version.
|
10 | *
|
||
11 | * This program is distributed in the hope that it will be useful,
|
||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | *
|
||
16 | * You should have received a copy of the GNU General Public License
|
||
17 | * along with this program; if not, write to the Free Software
|
||
18 | 40559 | jjdelcerro | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 | * MA 02110-1301, USA.
|
||
20 | 40455 | jjdelcerro | *
|
21 | 40559 | jjdelcerro | * For any additional information, do not hesitate to contact us
|
22 | * at info AT gvsig.com, or visit our website www.gvsig.com.
|
||
23 | 40455 | jjdelcerro | */
|
24 | package org.cresques.impl.cts; |
||
25 | |||
26 | import java.util.ArrayList; |
||
27 | import java.util.Iterator; |
||
28 | import java.util.Map; |
||
29 | import java.util.TreeMap; |
||
30 | |||
31 | import org.cresques.cts.ICRSFactory; |
||
32 | import org.cresques.cts.IProjection; |
||
33 | import org.cresques.impl.cts.gt2.CSDatum; |
||
34 | import org.cresques.impl.cts.gt2.CSGaussPt; |
||
35 | import org.cresques.impl.cts.gt2.CSLambertCC; |
||
36 | import org.cresques.impl.cts.gt2.CSMercator; |
||
37 | import org.cresques.impl.cts.gt2.CSUTM; |
||
38 | import org.cresques.impl.cts.gt2.CoordSys; |
||
39 | |||
40 | |||
41 | /**
|
||
42 | * Pool de proyeccions (cs+datum) conocidas.
|
||
43 | * @author "Luis W. Sevilla" <sevilla_lui@gva.es>
|
||
44 | */
|
||
45 | public class ProjectionPool implements ICRSFactory { |
||
46 | static TreeMap data = null; |
||
47 | |||
48 | static {
|
||
49 | CoordSys cs = null;
|
||
50 | data = new TreeMap(); |
||
51 | |||
52 | cs = (new CSUTM(CSDatum.wgs84, 30)).toGeo(); |
||
53 | cs.setAbrev("EPSG:4326"); // WGS84 (World Geodesic Datum) |
||
54 | data.put(cs.getAbrev(), cs); |
||
55 | data.put("CRS:84", cs); // CRS:84 = EPSG:4326 |
||
56 | |||
57 | cs = (new CSUTM(CSDatum.ed50, 30)).toGeo(); |
||
58 | cs.setAbrev("EPSG:4230"); // Datum Europeu Internacional ED50 |
||
59 | data.put(cs.getAbrev(), cs); |
||
60 | |||
61 | cs = (new CSUTM(CSDatum.d73, 30)).toGeo(); |
||
62 | cs.setAbrev("EPSG:4274"); // Datum 73 de Lisboa |
||
63 | data.put(cs.getAbrev(), cs); |
||
64 | |||
65 | cs = (new CSUTM(CSDatum.nad27, 30)).toGeo(); |
||
66 | cs.setAbrev("EPSG:4267"); // NAD 27 |
||
67 | data.put(cs.getAbrev(), cs); |
||
68 | |||
69 | cs = (new CSUTM(CSDatum.nad83, 30)).toGeo(); |
||
70 | cs.setAbrev("EPSG:4269"); // NAD 83 |
||
71 | data.put(cs.getAbrev(), cs); |
||
72 | |||
73 | cs = (new CSUTM(CSDatum.lomaQuintana, 30)).toGeo(); |
||
74 | cs.setAbrev("EPSG:4288"); // PSAD 56 'Loma Quintana' |
||
75 | data.put(cs.getAbrev(), cs); |
||
76 | |||
77 | cs = (new CSUTM(CSDatum.laCanoa, 30)).toGeo(); |
||
78 | cs.setAbrev("EPSG:4247"); // PSAD 56 'Loma Quintana' |
||
79 | data.put(cs.getAbrev(), cs); |
||
80 | |||
81 | cs = (new CSUTM(CSDatum.ntfParis, 30)).toGeo(); |
||
82 | cs.setAbrev("EPSG:4807"); // NTF Paris |
||
83 | data.put(cs.getAbrev(), cs); |
||
84 | |||
85 | cs = (new CSUTM(CSDatum.etrs89, 30)).toGeo(); |
||
86 | cs.setAbrev("EPSG:4258"); // ETRS 89 |
||
87 | data.put(cs.getAbrev(), cs); |
||
88 | for (int i = 1; i <= 60; i++) { |
||
89 | String huso = Integer.toString(i); |
||
90 | |||
91 | if (i < 10) { |
||
92 | huso = "0" + huso;
|
||
93 | } |
||
94 | |||
95 | cs = new CSUTM(CSDatum.wgs84, i);
|
||
96 | cs.setAbrev("EPSG:326" + huso);
|
||
97 | data.put(cs.getAbrev(), cs); |
||
98 | |||
99 | cs = new CSUTM(CSDatum.ed50, i);
|
||
100 | cs.setAbrev("EPSG:230" + huso);
|
||
101 | data.put(cs.getAbrev(), cs); |
||
102 | if (i>2 && i<=23) { |
||
103 | cs = new CSUTM(CSDatum.nad27, i);
|
||
104 | cs.setAbrev("EPSG:267" + huso);
|
||
105 | data.put(cs.getAbrev(), cs); |
||
106 | |||
107 | cs = new CSUTM(CSDatum.nad83, i);
|
||
108 | cs.setAbrev("EPSG:269" + huso);
|
||
109 | data.put(cs.getAbrev(), cs); |
||
110 | } |
||
111 | if (i>27 && i<39) { |
||
112 | cs = new CSUTM(CSDatum.etrs89, i);
|
||
113 | cs.setAbrev("EPSG:258" + huso);
|
||
114 | data.put(cs.getAbrev(), cs); |
||
115 | } |
||
116 | } |
||
117 | |||
118 | cs = CSGaussPt.hgd73; |
||
119 | cs.setAbrev("EPSG:27492"); // Projec??o Gauss do Datum 73 de Lisboa (no EPSG found) |
||
120 | data.put(cs.getAbrev(), cs); |
||
121 | |||
122 | cs = new CSUTM(CSDatum.d73, 29); |
||
123 | cs.setAbrev("EPSG:27429"); // Projec??o Gauss do Datum 73 de Lisboa (no EPSG found) |
||
124 | data.put(cs.getAbrev(), cs); |
||
125 | |||
126 | for (int i = 18; i <= 21; i++) { |
||
127 | String huso = Integer.toString(i); |
||
128 | |||
129 | if (i < 10) { |
||
130 | huso = "0" + huso;
|
||
131 | } |
||
132 | |||
133 | cs = new CSUTM(CSDatum.laCanoa, i);
|
||
134 | cs.setAbrev("EPSG:247" + huso);
|
||
135 | data.put(cs.getAbrev(), cs); |
||
136 | } |
||
137 | |||
138 | for (int i = 16; i <= 22; i++) { |
||
139 | String huso = Integer.toString(i); |
||
140 | // Psad56 Ecuador
|
||
141 | cs = new CSUTM(CSDatum.lomaQuintana, i);
|
||
142 | cs.setAbrev("EPSG:288" + huso);
|
||
143 | data.put(cs.getAbrev(), cs); |
||
144 | cs = new CSUTM(CSDatum.lomaQuintana, i, "S"); |
||
145 | cs.setAbrev("EPSG:288" + (i+60) ); |
||
146 | data.put(cs.getAbrev(), cs); |
||
147 | } |
||
148 | |||
149 | // cs = new CSLambertCC(CSDatum.nad27, -105D, 49D, 49D, 77D, 0, 0);
|
||
150 | // cs.setAbrev("LCCCan");
|
||
151 | // data.put(cs.getAbrev(), cs);
|
||
152 | /* Para el server WMS de canad?:
|
||
153 | * EPSG:42101
|
||
154 | * EPSG:42304
|
||
155 | * EPSG:4269
|
||
156 | */
|
||
157 | /*
|
||
158 | * 42101,PROJCS["WGS 84 / LCC Canada",
|
||
159 | * GEOGCS["WGS 84",DATUM["WGS_1984",
|
||
160 | * SPHEROID["WGS_1984",6378137,298.257223563]],
|
||
161 | * PRIMEM["Greenwich",0],UNIT["Decimal_Degree",0.0174532925199433]],
|
||
162 | *
|
||
163 | * PROJECTION["Lambert_Conformal_Conic_2SP"],
|
||
164 | * PARAMETER["central_meridian",-95.0],
|
||
165 | * PARAMETER["latitude_of_origin",0],
|
||
166 | * PARAMETER["standard_parallel_1",49.0],
|
||
167 | * PARAMETER["standard_parallel_2",77.0],
|
||
168 | * PARAMETER["false_easting",0.0],
|
||
169 | * PARAMETER["false_northing",-8000000.0],
|
||
170 | * UNIT["Meter",1],AUTHORITY["EPSG","42101"]]
|
||
171 | */
|
||
172 | cs = new CSLambertCC(CSDatum.wgs84, -95, 0, 49, 77, 0, -8000000.0); |
||
173 | cs.setAbrev("EPSG:42101");
|
||
174 | data.put(cs.getAbrev(), cs); |
||
175 | |||
176 | /* 42304,PROJCS["NAD83 / NRCan LCC Canada",
|
||
177 | * GEOGCS["NAD83",DATUM["North_American_Datum_1983",
|
||
178 | * SPHEROID["GRS_1980",6378137,298.257222101]],
|
||
179 | * PRIMEM["Greenwich",0],
|
||
180 | * UNIT["Decimal_Degree",0.0174532925199433]],
|
||
181 | *
|
||
182 | * PROJECTION["Lambert_Conformal_Conic_2SP"],
|
||
183 | * PARAMETER["central_meridian",-95.0],
|
||
184 | * PARAMETER["latitude_of_origin",49.0],
|
||
185 | * PARAMETER["standard_parallel_1",49.0],
|
||
186 | * PARAMETER["standard_parallel_2",77.0],
|
||
187 | * PARAMETER["false_easting",0.0],
|
||
188 | * PARAMETER["false_northing",0.0],
|
||
189 | * UNIT["Meter",1],AUTHORITY["EPSG","42304"]]
|
||
190 | */
|
||
191 | cs = new CSLambertCC(CSDatum.nad83, -95, 49, 49, 77, 0, 0); |
||
192 | cs.setAbrev("EPSG:42304");
|
||
193 | data.put(cs.getAbrev(), cs); |
||
194 | |||
195 | /*
|
||
196 | * EPSG:26915 - NAD83 / UTM zone 15N
|
||
197 | * EPSG:31466 - Gau?-Kr?ger band 2
|
||
198 | * EPSG:31467 - Gau?-Kr?ger band 3
|
||
199 | * EPSG:4314 - DHDN
|
||
200 | */
|
||
201 | /*
|
||
202 | * 27572=PROJCS["NTF (Paris) / Lambert zone II",
|
||
203 | GEOGCS["NTF (Paris)",
|
||
204 | DATUM["Nouvelle_Triangulation_Francaise_Paris",
|
||
205 | SPHEROID["Clarke 1880 (IGN)",6378249.2,293.4660212936269,
|
||
206 | AUTHORITY["EPSG","7011"]],
|
||
207 | TOWGS84[-168,-60,320,0,0,0,0],
|
||
208 | AUTHORITY["EPSG","6807"]],
|
||
209 | PRIMEM["Paris",2.33722917,AUTHORITY["EPSG","8903"]],
|
||
210 | UNIT["grad",0.01570796326794897,AUTHORITY["EPSG","9105"]],
|
||
211 | AUTHORITY["EPSG","4807"]],
|
||
212 | PROJECTION["Lambert_Conformal_Conic_1SP"],
|
||
213 | PARAMETER["latitude_of_origin",52],
|
||
214 | PARAMETER["central_meridian",0],
|
||
215 | PARAMETER["scale_factor",0.99987742],
|
||
216 | PARAMETER["false_easting",600000],
|
||
217 | PARAMETER["false_northing",2200000],
|
||
218 | UNIT["metre",1,AUTHORITY["EPSG","9001"]],
|
||
219 | AUTHORITY["EPSG","27572"]]
|
||
220 | */
|
||
221 | |||
222 | cs = new CSLambertCC(CSDatum.ntfParis, 0, 46.79999999999995, 0.99987742, 600000, 2200000); |
||
223 | cs.setAbrev("EPSG:27572");
|
||
224 | data.put(cs.getAbrev(), cs); |
||
225 | |||
226 | cs = new CSLambertCC(CSDatum.ntfParis, 0, 52, 0.99987742, 600000, 2200000); |
||
227 | cs.setAbrev("EPSG:27582");
|
||
228 | data.put(cs.getAbrev(), cs); |
||
229 | /*
|
||
230 | * # RGF93
|
||
231 | * <4171> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <>
|
||
232 | * # RGF93 / Lambert-93
|
||
233 | */
|
||
234 | cs = (new CSUTM(CSDatum.rgf93, 30)).toGeo(); |
||
235 | cs.setAbrev("EPSG:4171"); // NTF Paris |
||
236 | data.put(cs.getAbrev(), cs); |
||
237 | /*
|
||
238 | * <2154> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3
|
||
239 | * +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0
|
||
240 | * +units=m +no_defs <>
|
||
241 | */
|
||
242 | cs = new CSLambertCC(CSDatum.rgf93, 3.0, 46.5, 49.0, 44.0, 700000.0, 6600000.0); |
||
243 | cs.setAbrev("EPSG:2154");
|
||
244 | data.put(cs.getAbrev(), cs); |
||
245 | |||
246 | cs = new CSMercator(CSDatum.wgs84);
|
||
247 | cs.setAbrev("EPSG:54004");
|
||
248 | data.put(cs.getAbrev(), cs); |
||
249 | cs.setAbrev("EPSG:9804");
|
||
250 | data.put(cs.getAbrev(), cs); |
||
251 | |||
252 | // Lo que faltaba: ?planetas!
|
||
253 | cs = (new CSUTM(CSDatum.moon, 30)).toGeo(); |
||
254 | cs.setAbrev("IAU2000:30100"); // Moon |
||
255 | data.put(cs.getAbrev(), cs); |
||
256 | |||
257 | cs = (new CSUTM(CSDatum.mars, 30)).toGeo(); |
||
258 | cs.setAbrev("IAU2000:49900"); // Mars |
||
259 | data.put(cs.getAbrev(), cs); |
||
260 | |||
261 | /*
|
||
262 | * CRSs argentinos.
|
||
263 | * coordenadas geograficas
|
||
264 | PosGAr 4172
|
||
265 | PosGAr98 4190
|
||
266 | |||
267 | coordenadas proyectadas
|
||
268 | POSGAR 94/Argentina 1 22191
|
||
269 | POSGAR 94/Argentina 2 22192
|
||
270 | POSGAR 94/Argentina 3 22193
|
||
271 | POSGAR 94/Argentina 4 22194
|
||
272 | POSGAR 94/Argentina 5 22195
|
||
273 | POSGAR 94/Argentina 6 22196
|
||
274 | POSGAR 94/Argentina 7 22197
|
||
275 | |||
276 | POSGAR 98/Argentina 1 22181
|
||
277 | POSGAR 98/Argentina 2 22182
|
||
278 | POSGAR 98/Argentina 3 22183
|
||
279 | POSGAR 98/Argentina 4 22184
|
||
280 | POSGAR 98/Argentina 5 22185
|
||
281 | POSGAR 98/Argentina 6 22186
|
||
282 | POSGAR 98/Argentina 7 22187
|
||
283 | |||
284 | 4221 GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
|
||
285 | |||
286 | 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
|
||
287 | 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
|
||
288 | 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
|
||
289 | 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
|
||
290 | 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
|
||
291 | 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
|
||
292 | 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
|
||
293 | |||
294 | */
|
||
295 | cs = new CoordSys(CSDatum.posgar);
|
||
296 | cs.setAbrev("EPSG:4172"); // Posgar |
||
297 | data.put(cs.getAbrev(), cs); |
||
298 | |||
299 | cs = new CoordSys(
|
||
300 | "GEOGCS[\"GCS_Campo_Inchauspe\"," +
|
||
301 | "DATUM[\"D_Campo_Inchauspe\"," +
|
||
302 | "SPHEROID[\"International_1924\",6378388,297],"+
|
||
303 | "TOWGS84[0,0,0,0,0,0,0]]," +
|
||
304 | "PRIMEM[\"Greenwich\",0]," +
|
||
305 | "UNIT[\"Degree\",0.017453292519943295]]");
|
||
306 | cs.setAbrev("EPSG:4221"); // Campo Inchauspe |
||
307 | data.put(cs.getAbrev(), cs); |
||
308 | |||
309 | for (int i=1; i<=7; i++) { |
||
310 | cs = new CoordSys(
|
||
311 | "PROJCS[\"Argentina_Zone_"+i+"\"," + |
||
312 | "GEOGCS[\"GCS_Campo_Inchauspe\"," +
|
||
313 | "DATUM[\"D_Campo_Inchauspe\"," +
|
||
314 | "SPHEROID[\"International_1924\",6378388,297],"+
|
||
315 | "TOWGS84[0,0,0,0,0,0,0]]," +
|
||
316 | "PRIMEM[\"Greenwich\",0]," +
|
||
317 | "UNIT[\"Degree\",0.017453292519943295]]," +
|
||
318 | "PROJECTION[\"Transverse_Mercator\"]," +
|
||
319 | "PARAMETER[\"False_Easting\",1500000]," +
|
||
320 | "PARAMETER[\"False_Northing\",0]," +
|
||
321 | "PARAMETER[\"Central_Meridian\","+(-75+3*i)+"]," + |
||
322 | "PARAMETER[\"Scale_Factor\",1]," +
|
||
323 | "PARAMETER[\"Latitude_Of_Origin\",-90]," +
|
||
324 | "UNIT[\"Meter\",1]]");
|
||
325 | cs.setAbrev("EPSG:2219"+i); // Posgar |
||
326 | data.put(cs.getAbrev(), cs); |
||
327 | } |
||
328 | |||
329 | /*
|
||
330 | * pendiente de a?adir:
|
||
331 | *
|
||
332 | * EPSG 3003: Montemario / Italy Zone 1 - Pendiente de a?adir
|
||
333 | * EPSG 4149: CH1903 - Pendiente de a?adir
|
||
334 | * Ecuador:
|
||
335 | * PSAD56, Geo, UTM 16/17S,16/17N
|
||
336 | */
|
||
337 | } |
||
338 | |||
339 | /**
|
||
340 | * Mete una nueva proyeccion en la Pool.
|
||
341 | * @param name abreviatura de la proyecccion (i.e. EPSG:23030)
|
||
342 | * @param proj Proyeccion
|
||
343 | */
|
||
344 | public static void add(String name, IProjection proj) { |
||
345 | data.put(name, proj); |
||
346 | } |
||
347 | |||
348 | /**
|
||
349 | * Devuelve una proyeccion a partir de una cadena.
|
||
350 | * @param name abreviatura de la proyecccion (i.e. EPSG:23030)
|
||
351 | * @return Proyeccion si existe
|
||
352 | */
|
||
353 | public IProjection get(String name) { |
||
354 | IProjection proj = null;
|
||
355 | |||
356 | if (ProjectionPool.data.containsKey(name)) {
|
||
357 | proj = (IProjection) ProjectionPool.data.get(name); |
||
358 | } else {
|
||
359 | // Consultation to remote EPSG database
|
||
360 | // if (right)
|
||
361 | // buil new IProjection from GML
|
||
362 | // else
|
||
363 | System.err.println("ProjectionPool: Key '" + name + "' not set."); |
||
364 | } |
||
365 | |||
366 | return proj;
|
||
367 | } |
||
368 | |||
369 | public static Iterator iterator() { |
||
370 | ArrayList projs = new ArrayList(); |
||
371 | |||
372 | Iterator iter = data.entrySet().iterator();
|
||
373 | |||
374 | while (iter.hasNext()) {
|
||
375 | projs.add(((Map.Entry) iter.next()).getValue());
|
||
376 | } |
||
377 | |||
378 | return projs.iterator();
|
||
379 | } |
||
380 | |||
381 | public boolean doesRigurousTransformations() { |
||
382 | return false; |
||
383 | } |
||
384 | } |