//**********************************************************************
//
//<copyright>
//
//BBN Technologies
//10 Moulton Street
//Cambridge, MA 02138
//(617) 873-8000
//
//Copyright (C) BBNT Solutions LLC. All rights reserved.
//
//</copyright>
//**********************************************************************
//
//$Source:
///cvs/darwars/ambush/aar/src/com/bbn/ambush/mission/MissionHandler.java,v
//$
//$RCSfile: GeoTIFFImageReader.java,v $
//$Revision: 1.1 $
//$Date: 2007/01/22 15:47:37 $
//$Author: dietrick $
//
//**********************************************************************
package com.bbn.openmap.dataAccess.image.geotiff;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.bbn.openmap.dataAccess.image.ImageReader;
import com.bbn.openmap.dataAccess.image.ImageTile;
/**
* An ImageReader that handles GeoTIFFs.
*
* @author dietrick
*/
public class GeoTIFFImageReader implements ImageReader {
public static Logger logger = Logger.getLogger("com.bbn.openmap.dataAccess.image.geotiff.GeoTIFFImageDecoder");
GeoTIFFFile gtfFile;
public GeoTIFFImageReader(URL fileURL) {
try {
gtfFile = new GeoTIFFFile(fileURL);
} catch (IllegalArgumentException iae) {
logger.warning("Problem creating GeoTIFF from " + fileURL);
iae.printStackTrace();
} catch (MalformedURLException murle) {
} catch (IOException ioe) {
}
}
public ImageTile getImageTile(ImageTile.Cache cache) {
try {
return gtfFile.getImageTile(this, cache);
} catch (NullPointerException npe) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("Problem creating GeoTIFF image (NullPointerException) from "
+ gtfFile);
npe.printStackTrace();
}
} catch (IOException ioe) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("Problem creating GeoTIFF image (IOException) from "
+ gtfFile);
ioe.printStackTrace();
}
}
return null;
}
public ImageTile getImageTile() {
return getImageTile(null);
}
public BufferedImage getBufferedImage() {
try {
return gtfFile.getBufferedImage();
} catch (NullPointerException npe) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("Problem retrieving BufferedImage (NullPointerException) from "
+ gtfFile);
npe.printStackTrace();
}
} catch (IOException ioe) {
if (logger.isLoggable(Level.FINE)) {
logger.fine("Problem retrieving BufferedImage (IOException) from "
+ gtfFile);
ioe.printStackTrace();
}
}
return null;
}
}