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

View differences:

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