diff options
Diffstat (limited to 'src/location/maps/qgeomap.cpp')
-rw-r--r-- | src/location/maps/qgeomap.cpp | 10 |
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 |