Revision 2426

View differences:

org.gvsig.raster.wms/branches/org.gvsig.raster.wms_dataaccess_refactoring/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/WMSProvider.java
698 698

  
699 699
		RasterQuery q = RasterLocator.getManager().createQuery();
700 700
		q.setAreaOfInterest();
701
		q.setDrawableBands(getColorInterpretation().buildRenderBands());
701
		if(getColorInterpretation() != null)
702
			q.setDrawableBands(getColorInterpretation().buildRenderBands());
702 703
		if(store.getBandCount() > 3)
703 704
			q.forceARGBRequest();
704 705
		else 
org.gvsig.raster.wcs/branches/org.gvsig.raster.wcs_dataaccess_refactoring/org.gvsig.raster.wcs.io/src/main/java/org/gvsig/raster/wcs/io/WCSProvider.java
36 36
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
37 37
import org.gvsig.metadata.MetadataLocator;
38 38
import org.gvsig.raster.cache.tile.provider.TileServer;
39
import org.gvsig.raster.impl.buffer.DefaultRasterQuery;
39 40
import org.gvsig.raster.impl.buffer.SpiRasterQuery;
40 41
import org.gvsig.raster.impl.datastruct.BandListImpl;
41 42
import org.gvsig.raster.impl.datastruct.DatasetBandImpl;
......
653 654
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
654 655
			DefaultRasterStore store = new DefaultRasterStore();
655 656
			store.setProvider(driver);
657
			query.createBuffer(store);
656 658
			store.query((RasterQuery)query);
657 659
		} catch (ProviderNotRegisteredException e) {
658 660
			throw new RasterDriverException("Error building GdalDriver", e);
......
664 666
		
665 667
	}
666 668
	
667
	/*public void getWindow(Extent ex, int bufWidth, int bufHeight, 
668
			BandList bandList, TileListener listener, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
669

  
670
		Buffer raster = DefaultRasterManager.getInstance().createBuffer(getDataType()[0], bufWidth, bufHeight, 3, true);
671
		getWindow(ex, bufWidth, bufHeight, bandList, raster, true, null);
672
		raster.setDataExtent(ex.toRectangle2D());
673

  
674
		TileCacheManager m = TileCacheLocator.getManager();
675
		org.gvsig.raster.cache.tile.Tile t = m.createTile(-1, 0, 0);
676
		t.setData(new Object[]{raster});
677
		t.setUl(new Point2D.Double(ex.getULX(), ex.getULY()));
678
		t.setLr(new Point2D.Double(ex.getLRX(), ex.getLRY()));
679
		t.setDownloaderParams("AffineTransform", getAffineTransform());
680
		t.setDownloaderParams("Tiling", new Boolean(false));
681
		try {
682
			listener.tileReady(t);
683
		} catch (TileGettingException e) {
684
			throw new RasterDriverException("Error throwing a tile", e);
685
		}
686

  
687
		//listener.nextBuffer(raster, null, new ExtentImpl(minX, minY, maxX, maxY), getAffineTransform(), null, false);
688
		listener.endReading();
689

  
690
	}*/
691

  
692
	/*public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf, TaskStatus status) 
693
		throws ProcessInterruptedException, RasterDriverException {
694
		Rectangle2D bBox = ex.toRectangle2D();
695
		WCSStatus wcsStatus = loadWCSStatus(bBox);
696
		
697
		lastRequest = downloadFile(wcsStatus, ex.getULX(), ex.getULY(), ex.getLRX(), ex.getLRY(), rasterBuf.getWidth(), rasterBuf.getHeight());
698
		
699
		if (lastRequest == null) {
700
			return rasterBuf;
701
		}
702
		
703
		try {
704
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
705
			
706
			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
707
			String serverName = bandList.getBand(0).getFileName();
708
			for (int i = 0; i < bandList.getBandCount(); i++) {
709
				bandList.getBand(i).setFileName(lastRequest.getPath());
710
			}
711
			
712
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
713
			q.setAreaOfInterest(ex);
714
			q.setBandList(bandList);
715
			q.setBuffer(rasterBuf);
716
			Buffer buf = driver.getDataSet(q);
717
			
718
			for (int i = 0; i < bandList.getBandCount(); i++) {
719
				bandList.getBand(i).setFileName(serverName);
720
			}
721
			driver.close();
722
			return buf;
723
		} catch (ProviderNotRegisteredException e) {
724
			throw new RasterDriverException("Error building GdalDriver", e);
725
		} catch (InitializeException e) {
726
			throw new RasterDriverException("Error building GdalDriver", e);
727
		}
728
	}*/
729

  
730
	/*public Buffer getWindow(double ulx, double uly, double w, double h, 
731
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
732
		Rectangle2D bBox = new Rectangle2D.Double(ulx, uly, w, h);
733
		WCSStatus wcsStatus = loadWCSStatus(bBox);
734
		
735
		lastRequest = downloadFile(wcsStatus, ulx, uly, ulx + w, uly - h, rasterBuf.getWidth(), rasterBuf.getHeight());
736
		
737
		if (lastRequest == null) {
738
			return rasterBuf;
739
		}
740
		
741
		try {
742
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
743
			
744
			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
745
			String serverName = bandList.getBand(0).getFileName();
746
			for (int i = 0; i < bandList.getBandCount(); i++) {
747
				bandList.getBand(i).setFileName(lastRequest.getPath());
748
			}
749
			
750
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
751
			q.setAreaOfInterest(ulx, uly, w, h);
752
			q.setBandList(bandList);
753
			q.setBuffer(rasterBuf);
754
			q.setAdjustToExtent(adjustToExtent);
755
			
756
			Buffer buf = driver.getDataSet(q);
757
			
758
			for (int i = 0; i < bandList.getBandCount(); i++) {
759
				bandList.getBand(i).setFileName(serverName);
760
			}
761
			driver.close();
762
			return buf;
763
		} catch (ProviderNotRegisteredException e) {
764
			throw new RasterDriverException("Error building GdalDriver", e);
765
		} catch (InitializeException e) {
766
			throw new RasterDriverException("Error building GdalDriver", e);
767
		}
768
	}*/
769

  
770
	/*public Buffer getWindow(Extent extent, int bufWidth, int bufHeight, 
771
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
772
		WCSDataParametersImpl p = (WCSDataParametersImpl)parameters;
773
		Rectangle2D bBox = null;
774
		p.setWidth(bufWidth);
775
		p.setHeight(bufHeight);
776
		
777
		bBox = extent.toRectangle2D();
778
		
779
		//extent.toRectangle2D();//new Rectangle2D.Double(ulx, lry, Math.abs(lrx - ulx), Math.abs(lry - uly));
780
		WCSStatus wcsStatus = loadWCSStatus(bBox);
781
		lastRequest = downloadFile(wcsStatus, extent.getULX(), extent.getULY(), extent.getLRX(), extent.getLRY(), rasterBuf.getWidth(), rasterBuf.getHeight());
782
		
783
		if (lastRequest == null) {
784
			return rasterBuf;
785
		}
786
		
787
		try {
788
			AbstractRasterProvider driver = DefaultProviderServices.loadProvider(new File(lastRequest.getPath()));
789
			
790
			//El nombre de fichero que ha puesto en el bandList es el del servidor y no el del fichero en disco
791
			String serverName = bandList.getBand(0).getFileName();
792
			for (int i = 0; i < bandList.getBandCount(); i++) {
793
				bandList.getBand(i).setFileName(lastRequest.getPath());
794
			}
795
			
796
			DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery();
797
			q.setAreaOfInterest(extent, bufWidth, bufHeight);
798
			q.setBandList(bandList);
799
			q.setBuffer(rasterBuf);
800
			q.setAdjustToExtent(adjustToExtent);
801
			
802
			Buffer buf = driver.getDataSet(q);
803

  
804
			for (int i = 0; i < bandList.getBandCount(); i++) {
805
				bandList.getBand(i).setFileName(serverName);
806
			}
807
			driver.close();
808
			return buf;
809
		} catch (ProviderNotRegisteredException e) {
810
			throw new RasterDriverException("Error building GdalDriver", e);
811
		} catch (InitializeException e) {
812
			throw new RasterDriverException("Error building GdalDriver", e);
813
		}
814
	}*/
815
	
816 669
	/**
817 670
	 * When a WCS provider is opened the information of data type and number of bands is not
818 671
	 * available. Only after the first time a raster has been downloaded it can be know.

Also available in: Unified diff