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
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