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

View differences:

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