Revision 13312 trunk/extensions/extWCS/src/com/iver/cit/gvsig/fmap/layers/FLyrWCS.java

View differences:

FLyrWCS.java
68 68
import org.gvsig.fmap.raster.layers.IRasterLayerActions;
69 69
import org.gvsig.fmap.raster.layers.StatusLayerRaster;
70 70
import org.gvsig.fmap.raster.layers.StatusRasterInterface;
71
import org.gvsig.raster.dataset.FileNotOpenException;
72
import org.gvsig.raster.dataset.InvalidSetViewException;
73
import org.gvsig.raster.dataset.NotSupportedExtensionException;
74
import org.gvsig.raster.dataset.RasterDataset;
75
import org.gvsig.raster.dataset.RasterDriverException;
71 76
import org.gvsig.raster.datastruct.Extent;
72 77
import org.gvsig.raster.datastruct.ViewPortData;
73 78
import org.gvsig.raster.grid.filter.RasterFilterList;
......
252 257
		System.out.println(data);
253 258
		return data;
254 259
	}
260
	
255 261
	/**
256 262
	 * @see com.iver.cit.gvsig.fmap.layers.layerOperations.InfoByPoint#getInfo
257 263
	 */
258
	public XMLItem[] getInfo(Point point, double tolerance, Cancellable cancel ) {
264
	public XMLItem[] getInfo(Point point, double tolerance, Cancellable cancel ) throws ReadDriverException {
259 265
		String data = "<file:"+getName().replaceAll("[^a-zA-Z0-9]","")+">\n";
260 266

  
261 267
		Point2D pReal = getMapContext().getViewPort().toMapPoint(point);
......
288 294
			data += "    RGB=\""+rgb[1]+"  "+rgb[2]+"  "+rgb[3]+"\"\n";
289 295
		data += "    Band_Value=\"";
290 296

  
291
		/*for(int file = 0; file < visualStatus.fileNames.length; file++ ){
292
			GdalFile rf = new GdalFile(getMapContext().getViewPort().getProjection(), visualStatus.fileNames[file]);
293
			Extent ex = rf.getExtent();
294
			if(pReal.getX() >= ex.minX() && pReal.getX() <= ex.maxX() && pReal.getY() >= ex.minY() && pReal.getY() <= ex.maxY()){
295
				if(visualStatus.dataType >= 0 && visualStatus.dataType <= 3){
296
					for(int i = 0; i < visualStatus.bandCount; i++){
297
						Integer value = (Integer)rf.getData((int)px.getX(), (int)px.getY(), i);
298
						if(value != null)
299
							data += value.intValue()+"  ";
297
		try {
298
			for (int file = 0; file < visualStatus.fileNames.length; file++) {
299
				RasterDataset rd = RasterDataset.open(getMapContext().getViewPort().getProjection(), visualStatus.fileNames[file]);
300
				Extent ex = rd.getExtent();
301
				if (pReal.getX() >= ex.minX() && pReal.getX() <= ex.maxX() && pReal.getY() >= ex.minY() && pReal.getY() <= ex.maxY()) {
302
					if (visualStatus.dataType >= 0 && visualStatus.dataType <= 3) {
303
						for (int i = 0; i < visualStatus.bandCount; i++) {
304
							Integer value = (Integer) rd.getData((int) px.getX(), (int) px.getY(), i);
305
							if (value != null)
306
								data += value.intValue() + "  ";
307
						}
300 308
					}
301
				}
302
				if(visualStatus.dataType >= 4){
303
					for(int i = 0; i < visualStatus.bandCount; i++){
304
						Float value = (Float)rf.getData((int)px.getX(), (int)px.getY(), i);
305
						if(value != null)
306
							data += value.floatValue()+"  ";
309
					if (visualStatus.dataType >= 4) {
310
						for (int i = 0; i < visualStatus.bandCount; i++) {
311
							Float value = (Float) rd.getData((int) px.getX(), (int) px.getY(), i);
312
							if (value != null)
313
								data += value.floatValue() + "  ";
314
						}
307 315
					}
308
				}
309
				if(visualStatus.dataType >= 5){
310
					for(int i = 0; i < visualStatus.bandCount; i++){
311
						Double value = (Double)rf.getData((int)px.getX(), (int)px.getY(), i);
312
						if(value != null)
313
							data += value.doubleValue()+"  ";
316
					if (visualStatus.dataType >= 5) {
317
						for (int i = 0; i < visualStatus.bandCount; i++) {
318
							Double value = (Double) rd.getData((int) px.getX(), (int) px.getY(), i);
319
							if (value != null)
320
								data += value.doubleValue() + "  ";
321
						}
314 322
					}
315 323
				}
324
				rd.close();
316 325
			}
317
			rf.close();
318
		}*/
326
		} catch (NotSupportedExtensionException e) {
327
			throw new ReadDriverException("Extensi?n no soportada.", e);
328
		} catch (RasterDriverException e) {
329
			throw new ReadDriverException("Error en la apertura del fichero.", e);
330
		} catch (FileNotOpenException e) {
331
			throw new ReadDriverException("Error en la apertura del fichero.", e);
332
		} catch (InvalidSetViewException e) {
333
			throw new ReadDriverException("Error al asignar la vista.", e);
334
		}
319 335

  
320 336
		data += "\"\n";
321 337
		data += "  />\n";
......
575 591
		load();
576 592
		getRender().setBufferFactory(bufferFactory);
577 593
		
594
		visualStatus.rasterWidth += getMultiRasterDataset().getWidth()[0];
595
		visualStatus.rasterHeight += getMultiRasterDataset().getHeight()[0];
596
		if(getMultiRasterDataset().getExtent().getMin().getX() < visualStatus.rasterMinX)
597
			visualStatus.rasterMinX = getMultiRasterDataset().getExtent().getMin().getX();
598
		if(getMultiRasterDataset().getExtent().getMin().getY() < visualStatus.rasterMinY)
599
			visualStatus.rasterMinY = getMultiRasterDataset().getExtent().getMin().getY();
600
		if(getMultiRasterDataset().getExtent().getMax().getX() > visualStatus.rasterMaxX)
601
			visualStatus.rasterMaxX = getMultiRasterDataset().getExtent().getMax().getX();
602
		if(getMultiRasterDataset().getExtent().getMax().getY() > visualStatus.rasterMaxY)
603
			visualStatus.rasterMaxY = getMultiRasterDataset().getExtent().getMax().getY();
604
		visualStatus.bandCount = getMultiRasterDataset().getBandCount();
605
		visualStatus.dataType = getMultiRasterDataset().getDataType()[0];
606
		
578 607
		//Como el raster se carga a cada zoom el render se crea nuevamente y la lista de
579 608
		//filtros siempre estar? vacia a cada visualizaci?n. Para evitarlo tenemos que
580 609
		//guardar la lista de filtro aplicada en la visualizaci?n anterior.
......
905 934
	public boolean isActionEnabled(int action) {
906 935
		if(action == IRasterLayerActions.ZOOM_PIXEL_RESOLUTION)
907 936
			return false;
937
		if(action == IRasterLayerActions.FLYRASTER_BAR_TOOLS)
938
			return false;
908 939
		return super.isActionEnabled(action);
909 940
	}
910 941
}

Also available in: Unified diff