Revision 8842 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.wmts/org.gvsig.wmts.provider/src/main/java/org/gvsig/wmts/provider/WMTSRasterProvider.java
WMTSRasterProvider.java | ||
---|---|---|
34 | 34 |
import java.util.Iterator; |
35 | 35 |
import java.util.List; |
36 | 36 |
import java.util.Map; |
37 |
import java.util.Set; |
|
37 | 38 |
import java.util.SortedSet; |
38 | 39 |
import java.util.TreeSet; |
39 | 40 |
import java.util.Map.Entry; |
... | ... | |
91 | 92 |
import org.gvsig.raster.wmts.ogc.struct.WMTSTileMatrix; |
92 | 93 |
import org.gvsig.raster.wmts.ogc.struct.WMTSTileMatrixSet; |
93 | 94 |
import org.gvsig.tools.dataTypes.DataTypes; |
95 |
import org.gvsig.tools.dispose.Disposable; |
|
94 | 96 |
import org.gvsig.tools.dispose.DisposeUtils; |
95 | 97 |
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException; |
98 |
import org.gvsig.tools.exception.BaseException; |
|
96 | 99 |
import org.gvsig.tools.locator.LocatorException; |
97 | 100 |
|
98 | 101 |
/** |
... | ... | |
136 | 139 |
private void initParams() throws InitializeException { |
137 | 140 |
WMTSRasterProviderParameters parameters = (WMTSRasterProviderParameters) getParameters(); |
138 | 141 |
pageManagersPerZoomLevel = new HashMap<Integer, List<PageManager>>(); |
139 |
// this.projection = getProjection(); |
|
140 |
// wmtsClient = getWMTSClient(); |
|
141 |
// wmtsStatus = getWMTSStatus(); |
|
142 |
|
|
142 | 143 |
envelope = getEnvelope(); |
143 | 144 |
maxZoomLevel = DEFAULT_MAX_ZOOM_LEVEL; |
144 | 145 |
|
145 |
//PRUEBA |
|
146 |
// tileStruct = getTileStruct(); |
|
147 |
|
|
148 | 146 |
} |
149 | 147 |
|
150 | 148 |
protected WMTSStatus getWMTSStatus() throws InitializeException { |
... | ... | |
241 | 239 |
if(rasterQuery.getClip()!=null){ |
242 | 240 |
Buffer completeBuffer = buffer; |
243 | 241 |
envelope = rasterQuery.getClip(); |
244 |
buffer = bufferManager.createClippedBuffer(completeBuffer, envelope);
|
|
242 |
buffer = completeBuffer.clip(envelope);
|
|
245 | 243 |
DisposeUtils.dispose(completeBuffer); |
246 | 244 |
} |
247 | 245 |
|
... | ... | |
374 | 372 |
Envelope envelopeWGS84 = geomManager.createEnvelope(rectangle2d.getMinX(), rectangle2d.getMinY(), rectangle2d.getMaxX(), rectangle2d.getMaxY(), Geometry.SUBTYPES.GEOM2D); |
375 | 373 |
ICoordTrans ct = CRSFactory.getCRS("EPSG:4326").getCT(getProjection()); |
376 | 374 |
this.envelope = envelopeWGS84.convert(ct); |
377 |
// Rectangle2D extent = wmtsLayer.getWGS84BBoxTransformed(getProjection().getAbrev()); |
|
378 |
// |
|
379 |
// this.envelope = |
|
380 |
// geomManager.createEnvelope(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY(), |
|
381 |
// SUBTYPES.GEOM2D); |
|
382 | 375 |
} catch (CreateEnvelopeException e) { |
383 | 376 |
throw new InitializeException("Can't create envelope.", e); |
384 | 377 |
} |
... | ... | |
684 | 677 |
pageManagersInZoom = new ArrayList<PageManager>(); |
685 | 678 |
for (int i = 0; i < getBands(); i++) { |
686 | 679 |
//FIXME el getTileStruct no sirve para este bandTileManager |
687 |
pageManagersInZoom.add(new WMTSBandTileManager(getTileStruct(), this.getWMTSImage(), zoomLevel, i, this));
|
|
680 |
pageManagersInZoom.add(new WMTSBandTileManager(getTileStruct(), this.getWMTSImage(), zoomLevel, i)); |
|
688 | 681 |
} |
689 | 682 |
this.pageManagersPerZoomLevel.put(zoomLevel, pageManagersInZoom); |
690 | 683 |
} |
... | ... | |
799 | 792 |
WMTSLayer wmtsLayer = getWMTSClient().getLayer(getLayerName()); |
800 | 793 |
WMTSStyle wmtsStyle = null; |
801 | 794 |
List<WMTSStyle> wmtsStyles = wmtsLayer.getStyle(); |
802 |
for (Iterator iterator = wmtsStyles.iterator(); iterator.hasNext();) { |
|
795 |
for (Iterator<WMTSStyle> iterator = wmtsStyles.iterator(); iterator.hasNext();) {
|
|
803 | 796 |
wmtsStyle = (WMTSStyle) iterator.next(); |
804 | 797 |
if (wmtsStyle.getIdentifier().equalsIgnoreCase(wmtsStatus.getStyle())) { |
805 | 798 |
break; |
... | ... | |
834 | 827 |
return maxZoomLevel; |
835 | 828 |
} |
836 | 829 |
|
837 |
// /** |
|
838 |
// * @param maxZoomLevel the maxZoomLevel to set |
|
839 |
// */ |
|
840 |
// public void setMaxZoomLevel(int maxZoomLevel) { |
|
841 |
// this.maxZoomLevel = maxZoomLevel; |
|
842 |
// } |
|
830 |
@Override |
|
831 |
protected void doDispose() throws BaseException { |
|
832 |
super.doDispose(); |
|
833 |
DisposeUtils.dispose((Disposable) this.tileStruct); |
|
834 |
tileStruct = null; |
|
835 |
DisposeUtils.dispose(this.image); |
|
836 |
this.image = null; |
|
843 | 837 |
|
838 |
Set<Entry<Integer, List<PageManager>>> entries = this.pageManagersPerZoomLevel.entrySet(); |
|
839 |
for (Iterator<Entry<Integer, List<PageManager>>> iterator = entries.iterator(); iterator.hasNext();) { |
|
840 |
Entry<Integer, List<PageManager>> entry = (Entry<Integer, List<PageManager>>) iterator.next(); |
|
841 |
List<PageManager> pageManagers = entry.getValue(); |
|
842 |
for (Iterator iterator2 = pageManagers.iterator(); iterator2.hasNext();) { |
|
843 |
PageManager pageManager = (PageManager) iterator2.next(); |
|
844 |
DisposeUtils.dispose(pageManager); |
|
845 |
iterator2.remove(); |
|
846 |
} |
|
847 |
iterator.remove(); |
|
848 |
} |
|
849 |
pageManagersPerZoomLevel = null; |
|
850 |
|
|
851 |
|
|
852 |
} |
|
853 |
|
|
844 | 854 |
} |
Also available in: Unified diff