Revision 21530 branches/v2_0_0_prep/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toc/actions/ZoomAlTemaTocMenuEntry.java
ZoomAlTemaTocMenuEntry.java | ||
---|---|---|
3 | 3 |
import java.awt.geom.Rectangle2D; |
4 | 4 |
|
5 | 5 |
import org.gvsig.data.ReadException; |
6 |
import org.gvsig.fmap.geom.primitive.DefaultEnvelope; |
|
7 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
6 | 8 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
7 | 9 |
|
8 | 10 |
import com.iver.andami.PluginServices; |
... | ... | |
122 | 124 |
} |
123 | 125 |
} else { |
124 | 126 |
try { |
125 |
Rectangle2D maxExtent = setMaxExtent(selectedItems);
|
|
127 |
Envelope maxExtent = setMaxExtent(selectedItems);
|
|
126 | 128 |
getMapContext().zoomToEnvelope(maxExtent); |
127 | 129 |
} catch (ReadException e1) { |
128 | 130 |
e1.printStackTrace(); |
... | ... | |
132 | 134 |
project.setModified(true); |
133 | 135 |
} |
134 | 136 |
|
135 |
private Rectangle2D setMaxExtent(FLayer[] actives)
|
|
137 |
private Envelope setMaxExtent(FLayer[] actives)
|
|
136 | 138 |
throws ReadException { |
137 |
Rectangle2D extRef = null;
|
|
139 |
Envelope extRef = null;
|
|
138 | 140 |
extRef = actives[0].getFullEnvelope(); |
139 | 141 |
|
140 |
double minXRef = extRef.getMinX();
|
|
141 |
double maxYRef = extRef.getMaxY();
|
|
142 |
double maxXRef = extRef.getMaxX();
|
|
143 |
double minYRef = extRef.getMinY();
|
|
142 |
double minXRef = extRef.getMinimum(0);
|
|
143 |
double maxYRef = extRef.getMaximum(1);
|
|
144 |
double maxXRef = extRef.getMaximum(0);
|
|
145 |
double minYRef = extRef.getMinimum(1);
|
|
144 | 146 |
for (int i = 0; i < actives.length; i++) { |
145 | 147 |
if (actives[i].isAvailable()) { |
146 |
Rectangle2D extVar = actives[i].getFullEnvelope();
|
|
147 |
double minXVar = extVar.getMinX();
|
|
148 |
double maxYVar = extVar.getMaxY();
|
|
149 |
double maxXVar = extVar.getMaxX();
|
|
150 |
double minYVar = extVar.getMinY();
|
|
148 |
Envelope extVar = actives[i].getFullEnvelope();
|
|
149 |
double minXVar = extVar.getMinimum(0);
|
|
150 |
double maxYVar = extVar.getMaximum(1);
|
|
151 |
double maxXVar = extVar.getMaximum(0);
|
|
152 |
double minYVar = extVar.getMinimum(1);
|
|
151 | 153 |
if (minXVar <= minXRef) |
152 | 154 |
minXRef = minXVar; |
153 | 155 |
if (maxYVar >= maxYRef) |
... | ... | |
156 | 158 |
maxXRef = maxXVar; |
157 | 159 |
if (minYVar <= minYRef) |
158 | 160 |
minYRef = minYVar; |
159 |
extRef.setRect(minXRef, minYRef, maxXRef - minXRef, maxYRef |
|
160 |
- minYRef); |
|
161 |
extRef=new DefaultEnvelope(2,new double[]{minXRef, minYRef},new double[]{ maxXRef, maxYRef}); |
|
161 | 162 |
} |
162 | 163 |
} |
163 | 164 |
return extRef; |
Also available in: Unified diff