Revision 3200 org.gvsig.raster.wms/trunk/org.gvsig.raster.wms/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/WMSProvider.java
WMSProvider.java | ||
---|---|---|
56 | 56 |
import org.gvsig.fmap.dal.coverage.exception.QueryException; |
57 | 57 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
58 | 58 |
import org.gvsig.fmap.dal.coverage.exception.RemoteServiceException; |
59 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
|
60 | 59 |
import org.gvsig.fmap.dal.coverage.store.RasterQuery; |
61 | 60 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
62 | 61 |
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer; |
... | ... | |
110 | 109 |
//Only for fixed size. Complete extent and FIXED_SIZE in long side |
111 | 110 |
private File fileLayerPixelSize = null; |
112 | 111 |
private File lastRequest = null; |
113 |
private AbstractRasterProvider lastRequestProvider = null;
|
|
112 |
private AbstractRasterProvider lastRequestProvider = null; |
|
114 | 113 |
|
115 | 114 |
public static void register() { |
116 | 115 |
DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator.getDataManager(); |
... | ... | |
292 | 291 |
|
293 | 292 |
public AffineTransform getAffineTransform() { |
294 | 293 |
WMSDataParameters p = (WMSDataParameters)parameters; |
295 |
Extent e = getExtent(); |
|
296 | 294 |
if(p.isSizeFixed()) { |
295 |
Extent e = getExtent(); // FIXME: it should also be taken from parameters instead of from the full layer extent |
|
297 | 296 |
double psX = e.width() / (p.getWidth() - 1); |
298 | 297 |
double psY = -(e.height() / (p.getHeight() - 1)); |
299 | 298 |
ownTransformation = new AffineTransform( |
... | ... | |
304 | 303 |
e.getULX() - (psX / 2), |
305 | 304 |
e.getULY() - (psY / 2)); |
306 | 305 |
} else { |
307 |
double psX = e.width() / (lastWidthRequest <= 0 ? p.getWidth() : lastWidthRequest); |
|
308 |
double psY = -(e.height() / (lastHeightRequest <= 0 ? p.getHeight() : lastHeightRequest)); |
|
306 |
Rectangle2D bbox = p.getExtent(); |
|
307 |
double psX = bbox.getWidth() / p.getWidth(); |
|
308 |
double psY = -(bbox.getHeight() / p.getHeight()); |
|
309 | 309 |
ownTransformation = new AffineTransform( |
310 | 310 |
psX, |
311 | 311 |
0, |
312 | 312 |
0, |
313 |
psY, |
|
314 |
e.getULX() - (psX / 2), |
|
315 |
e.getULY() - (psY / 2)); |
|
316 |
/*ownTransformation = new AffineTransform( |
|
317 |
p.getExtent().getWidth() / (lastWidthRequest <= 0 ? p.getWidth() : lastWidthRequest) , |
|
318 |
0, |
|
319 |
0, |
|
320 |
-(p.getExtent().getHeight() / (lastHeightRequest <= 0 ? p.getHeight() : lastHeightRequest)), |
|
321 |
p.getExtent().getMinX(), |
|
322 |
p.getExtent().getMinY());*/ |
|
313 |
psY, |
|
314 |
bbox.getX(), |
|
315 |
(bbox.getY()+bbox.getHeight())); // FIXME: check for other CRSs such as 4326 |
|
323 | 316 |
} |
324 | 317 |
externalTransformation = (AffineTransform) ownTransformation.clone(); |
325 | 318 |
return ownTransformation; |
... | ... | |
398 | 391 |
|
399 | 392 |
public double getWidth() { |
400 | 393 |
WMSDataParameters p = (WMSDataParameters)parameters; |
401 |
if(p.isSizeFixed()) { |
|
402 |
return p.getWidth(); |
|
403 |
} |
|
404 |
if (lastWidthRequest <= 0) |
|
405 |
return p.getWidth(); |
|
406 |
if (lastWidthRequest < minTilePrintWidth) |
|
407 |
return minTilePrintWidth; |
|
408 |
return lastWidthRequest; |
|
394 |
return p.getWidth(); |
|
409 | 395 |
} |
410 | 396 |
|
411 | 397 |
public double getHeight() { |
412 | 398 |
WMSDataParameters p = (WMSDataParameters)parameters; |
413 |
if(p.isSizeFixed()) { |
|
414 |
return p.getHeight(); |
|
415 |
} |
|
416 |
if (lastHeightRequest <= 0) |
|
417 |
return p.getHeight(); |
|
418 |
if (lastHeightRequest < minTilePrintHeight) |
|
419 |
return minTilePrintHeight; |
|
420 |
return lastHeightRequest; |
|
399 |
return p.getHeight(); |
|
421 | 400 |
} |
422 | 401 |
|
423 | 402 |
/** |
Also available in: Unified diff