Revision 6665
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster.wms2/org.gvsig.raster.wms2.provider/src/main/java/org/gvsig/raster/wms/provider/WMSRasterProvider.java | ||
---|---|---|
6 | 6 |
import java.io.File; |
7 | 7 |
import java.io.IOException; |
8 | 8 |
import java.net.URL; |
9 |
import java.util.ArrayList; |
|
10 | 9 |
import java.util.HashMap; |
11 | 10 |
import java.util.Iterator; |
12 | 11 |
import java.util.List; |
... | ... | |
32 | 31 |
import org.gvsig.fmap.dal.exception.OpenException; |
33 | 32 |
import org.gvsig.fmap.dal.exception.ReadException; |
34 | 33 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
35 |
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor; |
|
36 |
import org.gvsig.fmap.dal.raster.api.BandDescriptor; |
|
37 | 34 |
import org.gvsig.fmap.dal.raster.api.BandQuery; |
38 | 35 |
import org.gvsig.fmap.dal.raster.api.RasterQuery; |
39 | 36 |
import org.gvsig.fmap.dal.raster.spi.AbstractRasterStoreProvider; |
37 |
import org.gvsig.fmap.dal.raster.spi.BandDescriptorServices; |
|
40 | 38 |
import org.gvsig.fmap.dal.resource.spi.ResourceProvider; |
41 | 39 |
import org.gvsig.fmap.dal.spi.DataStoreProviderServices; |
42 | 40 |
import org.gvsig.fmap.geom.Geometry.DIMENSIONS; |
... | ... | |
61 | 59 |
import org.gvsig.remoteclient.wms.WMSClient; |
62 | 60 |
import org.gvsig.remoteclient.wms.WMSStatus; |
63 | 61 |
import org.gvsig.remoteclient.wms.WMSStyle; |
62 |
import org.gvsig.tools.dataTypes.DataTypes; |
|
64 | 63 |
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException; |
65 | 64 |
import org.gvsig.tools.locator.LocatorException; |
66 | 65 |
|
... | ... | |
168 | 167 |
|
169 | 168 |
for (BandQuery bandQuery : bands) { |
170 | 169 |
int band = bandQuery.getBand(); |
171 |
bandDataTypes[band] = BufferManager.TYPE_BYTE;
|
|
170 |
bandDataTypes[band] = this.getBandDescriptor(band).getDataType();
|
|
172 | 171 |
bandNoData[band] = null; |
173 | 172 |
} |
174 | 173 |
} else { |
... | ... | |
176 | 175 |
bandDataTypes = new int[bands]; |
177 | 176 |
bandNoData = new NoData[bands]; |
178 | 177 |
for (int i = 0; i < bands; i++) { |
179 |
bandDataTypes[i] = BufferManager.TYPE_BYTE;
|
|
178 |
bandDataTypes[i] = this.getBandDescriptor(i).getDataType();
|
|
180 | 179 |
bandNoData[i] = null; |
181 | 180 |
} |
182 | 181 |
} |
... | ... | |
231 | 230 |
} |
232 | 231 |
|
233 | 232 |
@Override |
234 |
public BandInfo getBandInfo(int band) { |
|
235 |
BufferManager manager = BufferLocator.getBufferManager(); |
|
236 |
switch (band) { |
|
237 |
case 0: |
|
238 |
return manager.createBandInfo(band, "RED", "RED", BufferManager.TYPE_BYTE, null); |
|
239 |
case 1: |
|
240 |
return manager.createBandInfo(band, "GREEN", "GREEN", BufferManager.TYPE_BYTE, null); |
|
241 |
case 2: |
|
242 |
return manager.createBandInfo(band, "BLUE", "BLUE", BufferManager.TYPE_BYTE, null); |
|
243 |
case 3: |
|
244 |
return manager.createBandInfo(band, "ALPHA", "ALPHA", BufferManager.TYPE_BYTE, null); |
|
245 |
} |
|
246 |
return null; |
|
247 |
} |
|
233 |
public BandDescriptorServices getBandDescriptor(int band) { |
|
234 |
BandDescriptorServices descriptor = super.getBandDescriptor(band); |
|
235 |
switch (band) { |
|
236 |
case 0: |
|
237 |
descriptor.setName("RED"); |
|
238 |
descriptor.setDescription("RED"); |
|
239 |
descriptor.setDataType(BufferManager.TYPE_BYTE); |
|
240 |
case 1: |
|
241 |
descriptor.setName("GREEN"); |
|
242 |
descriptor.setDescription("GREEN"); |
|
243 |
descriptor.setDataType(BufferManager.TYPE_BYTE); |
|
244 |
case 2: |
|
245 |
descriptor.setName("BLUE"); |
|
246 |
descriptor.setDescription("BLUE"); |
|
247 |
descriptor.setDataType(BufferManager.TYPE_BYTE); |
|
248 |
case 3: |
|
249 |
descriptor.setName("ALPHA"); |
|
250 |
descriptor.setDescription("ALPHA"); |
|
251 |
descriptor.setDataType(BufferManager.TYPE_BYTE); |
|
252 |
} |
|
253 |
return descriptor; |
|
248 | 254 |
|
249 |
@Override |
|
250 |
public BandDescriptor getBandDescriptor(int band) { |
|
251 |
if (band > this.getBands()) { |
|
252 |
throw new IllegalArgumentException("Invalid band"); |
|
253 |
} |
|
254 |
// FIXME: Si convertimos cualquier raster a un buffer RGBA, esto no |
|
255 |
// ser?a correcto |
|
256 |
return getStoreServices().createBandDescriptor(band, new ArrayList<BandAttributeDescriptor>()); |
|
257 | 255 |
} |
258 | 256 |
|
259 | 257 |
@Override |
... | ... | |
279 | 277 |
|
280 | 278 |
@Override |
281 | 279 |
public void open() throws OpenException { |
282 |
|
|
280 |
for(int i=0; i<getBands(); i++){ |
|
281 |
this.getBandDescriptor(i).setDataType(DataTypes.BYTE); |
|
282 |
} |
|
283 | 283 |
} |
284 | 284 |
|
285 | 285 |
@Override |
Also available in: Unified diff