Revision 45486
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/BaseViewDocument.java | ||
---|---|---|
25 | 25 |
import java.awt.Color; |
26 | 26 |
import java.awt.Component; |
27 | 27 |
import java.awt.Dimension; |
28 |
import java.awt.geom.Point2D; |
|
28 | 29 |
import java.util.Iterator; |
29 | 30 |
import java.util.List; |
30 | 31 |
import java.util.Map; |
... | ... | |
43 | 44 |
import org.gvsig.app.project.documents.DocumentManager; |
44 | 45 |
import org.gvsig.app.project.documents.view.info.gui.HTMLInfoToolPanel; |
45 | 46 |
import org.gvsig.fmap.dal.DataStore; |
47 |
import org.gvsig.fmap.geom.Geometry; |
|
48 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
46 | 49 |
import org.gvsig.fmap.geom.primitive.Envelope; |
47 | 50 |
import org.gvsig.fmap.mapcontext.MapContext; |
51 |
import org.gvsig.fmap.mapcontext.ViewPort; |
|
48 | 52 |
import org.gvsig.fmap.mapcontext.events.ErrorEvent; |
49 | 53 |
import org.gvsig.fmap.mapcontext.events.listeners.ErrorListener; |
50 | 54 |
import org.gvsig.fmap.mapcontext.layers.CancelationException; |
... | ... | |
383 | 387 |
return false; |
384 | 388 |
} |
385 | 389 |
|
390 |
@Override |
|
386 | 391 |
public void center(Envelope envelope) { |
387 |
this.getMapContext().getViewPort().setEnvelope(envelope); |
|
392 |
ViewPort viewPort = this.getMapContext().getViewPort(); |
|
393 |
|
|
394 |
try { |
|
395 |
Envelope oldExtent = viewPort.getAdjustedEnvelope(); |
|
396 |
double oldCenterX = oldExtent.getCenter(0); |
|
397 |
double oldCenterY = oldExtent.getCenter(1); |
|
398 |
double centerX = envelope.getCenter(0); |
|
399 |
double centerY = envelope.getCenter(1); |
|
400 |
Point2D.Double center = new Point2D.Double(centerX, centerY); |
|
401 |
double movX = centerX - oldCenterX; |
|
402 |
double movY = centerY - oldCenterY; |
|
403 |
|
|
404 |
double minx = oldExtent.getMinimum(0) + movX; |
|
405 |
double miny = oldExtent.getMinimum(1) + movY; |
|
406 |
double maxX = oldExtent.getMaximum(0) + movX; |
|
407 |
double maxY = oldExtent.getMaximum(1) + movY; |
|
408 |
Envelope extent = GeometryLocator.getGeometryManager().createEnvelope( |
|
409 |
minx, miny, |
|
410 |
maxX, maxY, |
|
411 |
Geometry.SUBTYPES.GEOM2D); |
|
412 |
viewPort.setEnvelope(extent); |
|
413 |
} catch (Exception e) { |
|
414 |
throw new RuntimeException(e); |
|
415 |
} |
|
416 |
|
|
388 | 417 |
} |
389 | 418 |
} |
Also available in: Unified diff