double dX = (rescalePoint.getX() - position.getX()) * (1 - 1 / factor);
double dY = (rescalePoint.getY() - position.getY()) * (1 - 1 / factor);
// Apply translation to set the BBOX on the correct location:
newBbox.setCenterPoint(new Coordinate(position.getX(), position.getY()));
newBbox.translate(dX, dY);
// Now apply on this view port:
scale = limitedScale;
position = newBbox.getCenterPoint();
if (eventBus != null) {