Revision 436 org.gvsig.projection.jcrs/trunk/org.gvsig.projection.jcrs/org.gvsig.projection.jcrs.lib/src/main/java/org/gvsig/crs/CrsFactory.java
CrsFactory.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
import java.io.File; |
22 | 22 |
import java.util.TreeMap; |
23 |
import java.util.Vector; |
|
23 | 24 |
|
24 | 25 |
import org.cresques.cts.ICRSFactory; |
25 | 26 |
import org.cresques.cts.IProjection; |
27 |
import org.gdal.osr.SpatialReference; |
|
28 |
|
|
26 | 29 |
import org.gvsig.crs.repository.EpsgRepository; |
27 | 30 |
import org.gvsig.crs.repository.EpsgRepositoryGT; |
28 | 31 |
import org.gvsig.crs.repository.EsriRepository; |
... | ... | |
35 | 38 |
import org.gvsig.crs.repository.UsrRepository; |
36 | 39 |
import org.gvsig.crs.repository.UsrRepositoryGT; |
37 | 40 |
import org.gvsig.tools.dispose.Disposable; |
41 |
|
|
38 | 42 |
import org.slf4j.Logger; |
39 | 43 |
import org.slf4j.LoggerFactory; |
40 | 44 |
|
... | ... | |
43 | 47 |
* la cadena WKT |
44 | 48 |
* |
45 | 49 |
* @author Diego Guerrero Sevilla (diego.guerrero@uclm.es) |
50 |
* @param <E> |
|
46 | 51 |
* |
47 | 52 |
*/ |
48 |
public class CrsFactory implements ICRSFactory { |
|
53 |
public class CrsFactory<E> implements ICRSFactory {
|
|
49 | 54 |
|
50 | 55 |
private static Logger logger = LoggerFactory.getLogger(CrsFactory.class); |
51 | 56 |
static TreeMap data = new TreeMap(); |
... | ... | |
270 | 275 |
epsgDatabaseFile = new File(getDataBaseFolder(), epsgDatabaseFile.getPath()); |
271 | 276 |
} |
272 | 277 |
} |
278 |
|
|
279 |
public IProjection get(String format, String value) { |
|
280 |
if(ICRSFactory.FORMAT_WKT_ESRI.equalsIgnoreCase(format)){ |
|
281 |
SpatialReference sr = new SpatialReference(); |
|
282 |
Vector<String> vector = new Vector<String>(); |
|
283 |
vector.add(value); |
|
284 |
sr.ImportFromESRI(vector); |
|
285 |
sr.MorphFromESRI(); |
|
286 |
// try { |
|
287 |
// String authorityCode = sr.GetAuthorityCode(null); |
|
288 |
// String authorityName = sr.GetAuthorityName(null); |
|
289 |
// |
|
290 |
// int code = 0; |
|
291 |
// if( "EPSG".equalsIgnoreCase(authorityName) ){ |
|
292 |
// code = 1; |
|
293 |
// } else if( "ESRI".equalsIgnoreCase(authorityName) ){ |
|
294 |
// code = 2; |
|
295 |
// |
|
296 |
// } else if( "IAU2000".equalsIgnoreCase(authorityName) ){ |
|
297 |
// code = 3; |
|
298 |
// |
|
299 |
// } else if( "USR".equalsIgnoreCase(authorityName) ){ |
|
300 |
// code = 4; |
|
301 |
// |
|
302 |
// } else { |
|
303 |
// logger.warn("Can't get CRS format '" + format + "' and value '"+value+"', unknow authorityName '"+authorityName+"'."); |
|
304 |
// } |
|
305 |
// return new Crs(Integer.parseInt(authorityCode), code); |
|
306 |
return new Crs(sr); |
|
307 |
// } catch (CrsException e) { |
|
308 |
// logger.warn("Can't get CRS format '" + format + "' and value '"+value+"'.", e); |
|
309 |
// } |
|
310 |
// return null; |
|
311 |
} else if (ICRSFactory.FORMAT_WKT.equalsIgnoreCase(format)) { |
|
312 |
|
|
313 |
return null; |
|
314 |
|
|
315 |
} else if (ICRSFactory.FORMAT_PROJ4.equalsIgnoreCase(format)) { |
|
316 |
|
|
317 |
return null; |
|
318 |
|
|
319 |
} |
|
320 |
return null; |
|
321 |
} |
|
322 |
|
|
323 |
/* (non-Javadoc) |
|
324 |
* @see org.cresques.cts.ICRSFactory#export(java.lang.String, org.cresques.cts.IProjection) |
|
325 |
*/ |
|
326 |
public String export(String format, IProjection proj) { |
|
327 |
// TODO Auto-generated method stub |
|
328 |
return null; |
|
329 |
} |
|
273 | 330 |
} |
Also available in: Unified diff