summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/maps/qgeomap.cpp')
-rw-r--r--src/location/maps/qgeomap.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp
index af40b33b..58657143 100644
--- a/src/location/maps/qgeomap.cpp
+++ b/src/location/maps/qgeomap.cpp
@@ -122,7 +122,9 @@ bool QGeoMap::setBearing(qreal bearing, const QGeoCoordinate &coordinate)
bool QGeoMap::anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint)
{
+ Q_D(QGeoMap);
QGeoCoordinate newCenter = geoProjection().anchorCoordinateToPoint(coordinate, anchorPoint);
+ newCenter.setLatitude(qBound(-d->m_maximumViewportLatitude, newCenter.latitude(), d->m_maximumViewportLatitude));
QGeoCameraData data = cameraData();
if (data.center() != newCenter) {
data.setCenter(newCenter);
@@ -175,7 +177,7 @@ double QGeoMap::minimumZoom() const
double QGeoMap::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const
{
Q_D(const QGeoMap);
- return d->m_geoProjection->maximumCenterLatitudeAtZoom(cameraData);
+ return d->maximumCenterLatitudeAtZoom(cameraData);
}
double QGeoMap::mapWidth() const
@@ -414,4 +416,10 @@ bool QGeoMapPrivate::copyrightVisible() const
return m_copyrightVisible;
}
+double QGeoMapPrivate::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const
+{
+ m_maximumViewportLatitude = m_geoProjection->maximumCenterLatitudeAtZoom(cameraData);
+ return m_maximumViewportLatitude;
+}
+
QT_END_NAMESPACE