Revision 6492
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider/src/main/java/org/gvsig/raster/gdal/provider/AbstractRasterGdalStoreProvider.java | ||
---|---|---|
28 | 28 |
import org.cresques.cts.IProjection; |
29 | 29 |
import org.gdal.gdal.Dataset; |
30 | 30 |
import org.gdal.gdal.Driver; |
31 |
import org.slf4j.Logger; |
|
32 |
import org.slf4j.LoggerFactory; |
|
33 |
|
|
31 | 34 |
import org.gvsig.fmap.dal.DataStoreNotification; |
32 | 35 |
import org.gvsig.fmap.dal.DataStoreParameters; |
33 | 36 |
import org.gvsig.fmap.dal.FileHelper; |
... | ... | |
37 | 40 |
import org.gvsig.fmap.dal.exception.OpenException; |
38 | 41 |
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor; |
39 | 42 |
import org.gvsig.fmap.dal.raster.api.BandDescriptor; |
43 |
import org.gvsig.fmap.dal.raster.api.BandQuery; |
|
40 | 44 |
import org.gvsig.fmap.dal.raster.api.RasterQuery; |
41 | 45 |
import org.gvsig.fmap.dal.raster.spi.AbstractRasterStoreProvider; |
42 | 46 |
import org.gvsig.fmap.dal.resource.spi.ResourceConsumer; |
... | ... | |
66 | 70 |
import org.gvsig.tools.locator.LocatorException; |
67 | 71 |
import org.gvsig.tools.task.SimpleTaskStatus; |
68 | 72 |
import org.gvsig.tools.task.TaskStatusManager; |
69 |
import org.slf4j.Logger; |
|
70 |
import org.slf4j.LoggerFactory; |
|
71 | 73 |
|
72 | 74 |
/** |
73 | 75 |
* Provider for Raster GDAL files |
... | ... | |
210 | 212 |
@Override |
211 | 213 |
public Buffer createBuffer(RasterQuery rasterQuery) throws BufferException { |
212 | 214 |
|
213 |
BufferManager bufferManager=BufferLocator.getBufferManager(); |
|
214 |
Buffer buffer = |
|
215 |
bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(), |
|
216 |
bandDataTypes, this.bandNoDatas, this.projection, envelope, this.pageManagers); |
|
215 |
BufferManager bufferManager = BufferLocator.getBufferManager(); |
|
217 | 216 |
|
217 |
Buffer buffer = null; |
|
218 |
|
|
219 |
if (rasterQuery != null && !rasterQuery.getBands().isEmpty()) { |
|
220 |
List<BandQuery> bands; |
|
221 |
bands = rasterQuery.getBands(); |
|
222 |
int bandDataTypes[]; |
|
223 |
bandDataTypes = new int[bands.size()]; |
|
224 |
NoData[] bandNoDatas = new NoData[bands.size()]; |
|
225 |
List<PageManager> pageManagers = new ArrayList<PageManager>(); |
|
226 |
|
|
227 |
int i=0; |
|
228 |
for (BandQuery bandQuery : bands) { |
|
229 |
int band = bandQuery.getBand(); |
|
230 |
bandDataTypes[i] = this.bandDataTypes[band]; |
|
231 |
bandNoDatas[i] = this.bandNoDatas[band]; |
|
232 |
pageManagers.add(this.pageManagers.get(band)); |
|
233 |
i++; |
|
234 |
} |
|
235 |
buffer = |
|
236 |
bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(), bandDataTypes, |
|
237 |
bandNoDatas, this.projection, envelope, pageManagers); |
|
238 |
} else { |
|
239 |
buffer = |
|
240 |
bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(), this.bandDataTypes, |
|
241 |
this.bandNoDatas, this.projection, this.envelope, this.pageManagers); |
|
242 |
} |
|
243 |
|
|
218 | 244 |
return buffer; |
219 | 245 |
} |
220 | 246 |
|
Also available in: Unified diff