Revision 13312 trunk/extensions/extWCS/src/com/iver/cit/gvsig/fmap/layers/FLyrWCS.java
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