- if (toBeX < targetX) {
- while ((toBeX * 0.5) < targetX) {
- toBeX = toBeX * 2;
- AffineTransform tr = new AffineTransform();
- tr.scale(toBeX, toBeX);
- int zoomLevel = MapScalingTransform.zoomLevel(tr);
- if (zoomLevel >= 20) { // let's not zoom too close
- break;
- }
- }
- } else {
- while ((toBeX * 0.25) > targetX) {
- toBeX = toBeX * 0.5;
- AffineTransform tr = new AffineTransform();
- tr.scale(toBeX, toBeX);
- if (MapScalingTransform.zoomLevel(tr) <= 0) { // let's not zoom too far away
- break;
- }
- }
- }