Revision 4272 org.gvsig.raster.wmts/trunk/org.gvsig.raster.wmts/org.gvsig.raster.wmts.io/src/main/java/org/gvsig/raster/wmts/io/downloader/WMTSCacheStruct.java
WMTSCacheStruct.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
import java.awt.geom.Point2D; |
25 | 25 |
import java.awt.geom.Rectangle2D; |
26 |
import java.io.File; |
|
27 |
import java.net.URL; |
|
26 | 28 |
import java.util.ArrayList; |
27 | 29 |
import java.util.List; |
28 | 30 |
|
... | ... | |
54 | 56 |
private List<WMTSTileMatrixLimits> tileMatrixSetLimits = null; |
55 | 57 |
private double[] pixelSize = null; |
56 | 58 |
private RasterDataStore store = null; |
57 |
|
|
59 |
|
|
58 | 60 |
public WMTSCacheStruct(RasterDataStore store, WMTSTileMatrixSetLink tileMatrixSetLink) { |
59 | 61 |
this.store = store; |
60 | 62 |
this.tileMatrixSet = tileMatrixSetLink.getTileMatrixSet(); |
61 | 63 |
this.tileMatrixSetLimits = tileMatrixSetLink.getTileMatrixLimits(); |
62 | 64 |
pixelSize = ((WMTSProvider)store.getProvider()).getPixelSizeByLevel(); |
63 |
serverURL = ((WMTSProvider)store.getProvider()).getURIOfFirstProvider(); |
|
65 |
serverURL = ((WMTSProvider)store.getProvider()).getURIOfFirstProvider().getPath();
|
|
64 | 66 |
layerName = ((WMTSDataParameters)store.getParameters()).getLayer().getTitle(); |
65 | 67 |
} |
66 | 68 |
|
... | ... | |
115 | 117 |
if(tileMatrixSetLimits != null && tileMatrixSetLimits.size() > level) { |
116 | 118 |
WMTSTileMatrixLimits l = (WMTSTileMatrixLimits)tileMatrixSetLimits.get(level); |
117 | 119 |
return l.getMinTileRow(); |
118 |
} else
|
|
120 |
} else |
|
119 | 121 |
return 0; |
120 | 122 |
} |
121 | 123 |
|
... | ... | |
158 | 160 |
tile.setLr(lr); |
159 | 161 |
tile.setWidthPx(size[0]); |
160 | 162 |
tile.setHeightPx(size[1]); |
161 |
|
|
162 |
Rectangle2D r = new Rectangle2D.Double(Math.min(ul.getX(), lr.getX()),
|
|
163 |
Math.min(ul.getY(), lr.getY()),
|
|
164 |
Math.abs(ul.getX() - lr.getX()),
|
|
163 |
|
|
164 |
Rectangle2D r = new Rectangle2D.Double(Math.min(ul.getX(), lr.getX()), |
|
165 |
Math.min(ul.getY(), lr.getY()), |
|
166 |
Math.abs(ul.getX() - lr.getX()), |
|
165 | 167 |
Math.abs(ul.getY() - lr.getY())); |
166 | 168 |
int bufWidth = (int)(r.getWidth() / getPixelSizeByLevel(level)); |
167 | 169 |
int bufHeight = (int)(r.getHeight() / getPixelSizeByLevel(level)); |
... | ... | |
169 | 171 |
WMTSStatus status = ((WMTSProvider)store.getProvider()).buildWMTSStatus(r, bufWidth, bufHeight); |
170 | 172 |
tile.setDownloaderParams("WMTSStatus", status); |
171 | 173 |
} catch (RasterDriverException e) { |
172 |
throw new TileBuildException(e);
|
|
174 |
throw new TileBuildException(e); |
|
173 | 175 |
} |
174 |
|
|
176 |
|
|
175 | 177 |
return tile; |
176 | 178 |
} |
177 |
|
|
179 |
|
|
178 | 180 |
public List<Tile> getTileList(Point2D ul, Point2D lr, double mtsPixelRequest) throws TileBuildException { |
179 |
Rectangle2D r = new Rectangle2D.Double(Math.min(ul.getX(), lr.getX()),
|
|
180 |
Math.min(ul.getY(), lr.getY()),
|
|
181 |
Math.abs(ul.getX() - lr.getX()),
|
|
181 |
Rectangle2D r = new Rectangle2D.Double(Math.min(ul.getX(), lr.getX()), |
|
182 |
Math.min(ul.getY(), lr.getY()), |
|
183 |
Math.abs(ul.getX() - lr.getX()), |
|
182 | 184 |
Math.abs(ul.getY() - lr.getY())); |
183 | 185 |
int bufWidth = (int)(r.getWidth() / mtsPixelRequest); |
184 | 186 |
int bufHeight = (int)(r.getHeight() / mtsPixelRequest); |
185 | 187 |
try { |
186 | 188 |
WMTSStatus status = ((WMTSProvider)store.getProvider()).buildWMTSStatus(r, bufWidth, bufHeight); |
187 |
|
|
189 |
|
|
188 | 190 |
//Conversi?n a tiles de la librer?a |
189 | 191 |
List<WMTSTile> tiles = status.getTileList(); |
190 | 192 |
List<Tile> tileList = new ArrayList<Tile>(); |
... | ... | |
200 | 202 |
} |
201 | 203 |
return tileList; |
202 | 204 |
} catch (RasterDriverException e) { |
203 |
throw new TileBuildException(e);
|
|
205 |
throw new TileBuildException(e); |
|
204 | 206 |
} |
205 | 207 |
} |
206 | 208 |
|
... | ... | |
217 | 219 |
|
218 | 220 |
public boolean compare(CacheStruct struct) { |
219 | 221 |
MathUtils mu = RasterLocator.getManager().getMathUtils(); |
220 |
//Compara: n?mero de niveles, tama?o de tile,
|
|
221 |
//anchoXalto de la matriz, tama?o de pixel por nivel,
|
|
222 |
//Compara: n?mero de niveles, tama?o de tile, |
|
223 |
//anchoXalto de la matriz, tama?o de pixel por nivel, |
|
222 | 224 |
//coordenadas de al menos un tile de la matriz |
223 | 225 |
if(struct.getNumberOfLevels() == getNumberOfLevels()) { |
224 | 226 |
for (int i = 0; i < getNumberOfLevels(); i++) { |
225 |
if( struct.getTileSizeByLevel(i)[0] == getTileSizeByLevel(i)[0] &&
|
|
227 |
if( struct.getTileSizeByLevel(i)[0] == getTileSizeByLevel(i)[0] && |
|
226 | 228 |
struct.getTileSizeByLevel(i)[1] == getTileSizeByLevel(i)[1] && |
227 | 229 |
struct.getWorldHeightOfTileMatrixByLevel(i) == getWorldHeightOfTileMatrixByLevel(i) && |
228 | 230 |
struct.getWorldWidthOfTileMatrixByLevel(i) == getWorldWidthOfTileMatrixByLevel(i) && |
... | ... | |
234 | 236 |
} |
235 | 237 |
return false; |
236 | 238 |
} |
237 |
|
|
239 |
|
|
238 | 240 |
private boolean compareExtents(Point2D[] p, Point2D[] p1) { |
239 | 241 |
return (p[0].getX() == p1[0].getX() && p[0].getY() == p1[0].getY() && |
240 | 242 |
p[1].getX() == p1[1].getX() && p[1].getY() == p1[1].getY()); |
... | ... | |
247 | 249 |
return null;*/ |
248 | 250 |
return ((WMTSProvider)store.getProvider()).getSRSCode(); |
249 | 251 |
} |
250 |
|
|
252 |
|
|
251 | 253 |
private String getDimension() { |
252 | 254 |
WMTSDataParameters p = (WMTSDataParameters)(((WMTSProvider)store.getProvider()).getDataParameters()); |
253 | 255 |
String dimension = p.getDimension(); |
Also available in: Unified diff