Revision 4181 org.gvsig.raster.wms/trunk/org.gvsig.raster.wms/org.gvsig.raster.wms.io/src/main/java/org/gvsig/raster/wms/io/downloader/WMSTileServer.java

View differences:

WMSTileServer.java
37 37
import org.slf4j.Logger;
38 38
import org.slf4j.LoggerFactory;
39 39

  
40
/** 
41
* Data server for the tile cache in a WMSProvider 
40
/**
41
* Data server for the tile cache in a WMSProvider
42 42
* @author Nacho Brodin (nachobrodin@gmail.com)
43 43
*/
44 44
public class WMSTileServer implements TileServer {
......
47 47
	private Downloader                 downloader           = null;
48 48
	private RasterDataStore            store                = null;
49 49
	private String                     suffix               = ".tif";
50
	
50

  
51 51
	public WMSTileServer(RasterDataStore store) {
52 52
		this.store = store;
53 53
		this.suffix = ((RasterProvider)store.getProvider()).getFileSuffix();
54 54
	}
55
	
55

  
56 56
	public Downloader getDownloader() {
57 57
		if(downloader == null ||
58 58
		   ((TileDownloaderForWMS)downloader).getTileSize()[0] != TileCacheLibrary.ALTERNATIVE_TILESIZE ||
59 59
		   ((TileDownloaderForWMS)downloader).getTileSize()[1] != TileCacheLibrary.ALTERNATIVE_TILESIZE) {
60 60
			try {
61 61
				downloader = new TileDownloaderForWMS(
62
						store, 
63
						TileCacheLibrary.ALTERNATIVE_TILESIZE, 
62
						store,
63
						TileCacheLibrary.ALTERNATIVE_TILESIZE,
64 64
						TileCacheLibrary.ALTERNATIVE_TILESIZE);
65 65
			} catch (RemoteServiceException e) {
66 66
				return null;
......
72 72
	public CacheStruct getStruct() {
73 73
		if(struct == null) {
74 74
			TileCacheManager  manager = TileCacheLocator.getManager();
75
			
75

  
76 76
			int coordinates = CacheStruct.FLAT;
77 77
			if(store.getProjection() != null)
78 78
				coordinates = (store.getProjection() != null && store.getProjection().isProjected()) ? CacheStruct.FLAT : CacheStruct.GEOGRAFIC;
79 79
			else {
80 80
				Extent e = store.getExtent();
81
				if(e.getULX() >= -180 && e.getULX() <= 180 && e.getLRX() >= -180 && e.getLRX() <= 180 && 
81
				if(e.getULX() >= -180 && e.getULX() <= 180 && e.getLRX() >= -180 && e.getLRX() <= 180 &&
82 82
					e.getULY() >= -90 && e.getULY() <= 90 && e.getLRY() >= -90 && e.getLRY() <= 90) {
83 83
					coordinates = CacheStruct.GEOGRAFIC;
84 84
				}
85 85
			}
86
			
86

  
87 87
			String epsg = null;
88 88
			IProjection proj = store.getProjection();
89 89
			if(proj != null)
90 90
				epsg = proj.getAbrev();
91
			
92
			struct = manager.createCacheStructure(coordinates, 
93
					TileCacheLibrary.DEFAULT_LEVELS, 
94
					store.getExtent().toRectangle2D(), 
95
					Double.POSITIVE_INFINITY,//provider.getCellSize(), 
96
					TileCacheLibrary.ALTERNATIVE_TILESIZE, 
91

  
92
			struct = manager.createCacheStructure(coordinates,
93
					TileCacheLibrary.DEFAULT_LEVELS,
94
					store.getExtent().toRectangle2D(),
95
					Double.POSITIVE_INFINITY,//provider.getCellSize(),
97 96
					TileCacheLibrary.ALTERNATIVE_TILESIZE,
98
					((RasterProvider)store.getProvider()).getURIOfFirstProvider(),
97
					TileCacheLibrary.ALTERNATIVE_TILESIZE,
98
					((RasterProvider)store.getProvider()).getURIOfFirstProvider().getPath(),
99 99
					((WMSProvider)store.getProvider()).getParameters().getLayerQuery(),
100 100
					TileCacheLibrary.DEFAULT_STRUCTURE,
101 101
					RasterLibrary.pathTileCache,
......
105 105
		}
106 106
		return struct;
107 107
	}
108
	
108

  
109 109
	public void setStruct(CacheStruct struct) {
110 110
		if(struct != null) {
111 111
			this.struct = struct;
112 112
			if(struct.getTileSizeByLevel(0) != null) {
113 113
				try {
114
					downloader = new TileDownloaderForWMS(store, 
115
							struct.getTileSizeByLevel(0)[0], 
114
					downloader = new TileDownloaderForWMS(store,
115
							struct.getTileSizeByLevel(0)[0],
116 116
							struct.getTileSizeByLevel(0)[1]);
117 117
				} catch (RemoteServiceException ex) {
118 118
					logger.error("Constructing TileDownloaderForWCS: " + ex.getMessage());
......
120 120
			}
121 121
		}
122 122
	}
123
	
123

  
124 124
	public String getFileSuffix() {
125 125
		return suffix;
126 126
	}
127
	
127

  
128 128
	public void setFileSuffix(String extension) {
129 129
		this.suffix = extension;
130 130
	}

Also available in: Unified diff