Changeset 71 in josm for src/org/openstreetmap/josm/gui/MapMover.java
- Timestamp:
- 2006-03-25T16:21:09+01:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/gui/MapMover.java
r66 r71 8 8 import java.awt.event.MouseWheelListener; 9 9 10 import org.openstreetmap.josm.data. GeoPoint;10 import org.openstreetmap.josm.data.coor.EastNorth; 11 11 12 12 /** … … 22 22 * when moving around started. 23 23 */ 24 private GeoPointmousePosMove;24 private EastNorth mousePosMove; 25 25 /** 26 26 * The map to move around. … … 51 51 if (mousePosMove == null) 52 52 startMovement(e); 53 GeoPointcenter = nc.getCenter();54 GeoPoint mouseCenter = nc.getPoint(e.getX(), e.getY(), false);55 GeoPoint p = new GeoPoint();56 p.x = mousePosMove.x + center.x - mouseCenter.x;57 p.y = mousePosMove.y + center.y - mouseCenter.y;53 EastNorth center = nc.getCenter(); 54 EastNorth mouseCenter = nc.getEastNorth(e.getX(), e.getY()); 55 EastNorth p = new EastNorth( 56 mousePosMove.east() + center.east() - mouseCenter.east(), 57 mousePosMove.north() + center.north() - mouseCenter.north()); 58 58 nc.zoomTo(p, nc.getScale()); 59 59 } else … … 86 86 */ 87 87 private void startMovement(MouseEvent e) { 88 mousePosMove = nc.get Point(e.getX(), e.getY(), false);88 mousePosMove = nc.getEastNorth(e.getX(), e.getY()); 89 89 oldCursor = nc.getCursor(); 90 90 nc.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); … … 108 108 */ 109 109 public void mouseWheelMoved(MouseWheelEvent e) { 110 int w = nc.getWidth(); 111 int h = nc.getHeight(); 112 110 113 double zoom = Math.max(0.1, 1 + e.getWheelRotation()/5.0); 111 double zoomfactor = (zoom -1)/2+1; 112 int newHalfWidth = (int) (nc.getWidth()*zoomfactor - nc.getWidth()/2); 113 int centerx = e.getX() - (e.getX()-nc.getWidth()/2)*newHalfWidth*2/nc.getWidth(); 114 int newHalfHeight = (int) (nc.getHeight()*zoomfactor - nc.getHeight()/2); 115 int centery = e.getY() - (e.getY()-nc.getHeight()/2)*newHalfHeight*2/nc.getHeight(); 116 GeoPoint newCenter = nc.getPoint(centerx, centery, false); 114 double zoomfactor = (zoom-1)/2+1; 115 116 double newHalfWidth = w*zoomfactor - w/2; 117 double newHalfHeight = h*zoomfactor - h/2; 118 double centerx = e.getX() - (e.getX()-w/2)*newHalfWidth*2/w; 119 double centery = e.getY() - (e.getY()-h/2)*newHalfHeight*2/h; 120 EastNorth newCenter = nc.getEastNorth((int)centerx, (int)centery); 121 117 122 nc.zoomTo(newCenter, nc.getScale()*zoom); 118 123 }
Note:
See TracChangeset
for help on using the changeset viewer.