Skip to content

Commit 23eca9c

Browse files
author
g_j_m
committedMar 13, 2007
Fix for ticket #651 (zoom full doesn't work on a single point)
git-svn-id: http://svn.osgeo.org/qgis/trunk@6799 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent a00beb4 commit 23eca9c

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
 

‎src/core/qgsmaprender.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,31 @@ void QgsMapRender::updateFullExtent()
579579
}
580580
it++;
581581
}
582+
583+
if (mFullExtent.width() == 0.0 || mFullExtent.height() == 0.0)
584+
{
585+
// If all of the features are at the one point, buffer the
586+
// rectangle a bit. If they are all at zero, do something a bit
587+
// more crude.
588+
589+
if (mFullExtent.xMin() == 0.0 && mFullExtent.xMax() == 0.0 &&
590+
mFullExtent.yMin() == 0.0 && mFullExtent.yMax() == 0.0)
591+
{
592+
mFullExtent.set(-1.0, -1.0, 1.0, 1.0);
593+
}
594+
else
595+
{
596+
const double padFactor = 1e-8;
597+
double widthPad = mFullExtent.xMin() * padFactor;
598+
double heightPad = mFullExtent.yMin() * padFactor;
599+
double xmin = mFullExtent.xMin() - widthPad;
600+
double xmax = mFullExtent.xMax() + widthPad;
601+
double ymin = mFullExtent.yMin() - heightPad;
602+
double ymax = mFullExtent.yMax() + heightPad;
603+
mFullExtent.set(xmin, ymin, xmax, ymax);
604+
}
605+
}
606+
582607
QgsDebugMsg("Full extent: " + mFullExtent.stringRep());
583608
}
584609

0 commit comments

Comments
 (0)
Please sign in to comment.