24void QGeoMap::setViewportSize(
const QSize& size)
27 if (size == d->m_viewportSize)
29 d->m_viewportSize = size;
30 d->m_geoProjection->setViewportSize(size);
31 d->changeViewportSize(size);
52void QGeoMap::setCameraData(
const QGeoCameraData &cameraData)
55 if (cameraData == d->m_cameraData)
57 d->m_cameraData = cameraData;
58 d->m_geoProjection->setCameraData(cameraData,
false);
59 d->changeCameraData(cameraData);
60 emit cameraDataChanged(d->m_cameraData);
75bool QGeoMap::setBearing(qreal bearing,
const QGeoCoordinate &coordinate)
78 bool res = d->m_geoProjection->setBearing(bearing, coordinate);
82 setCameraData(geoProjection().cameraData());
86bool QGeoMap::anchorCoordinateToPoint(
const QGeoCoordinate &coordinate,
const QPointF &anchorPoint)
89 QGeoCoordinate newCenter = geoProjection().anchorCoordinateToPoint(coordinate, anchorPoint);
90 newCenter.setLatitude(qBound(d->m_minimumViewportLatitude, newCenter.latitude(), d->m_maximumViewportLatitude));
91 QGeoCameraData data = cameraData();
92 if (data.center() != newCenter) {
93 data.setCenter(newCenter);
118void QGeoMap::setActiveMapType(
const QGeoMapType &type)
121 if (type == d->m_activeMapType)
123 d->m_activeMapType = type;
124 d->setCameraCapabilities(d->m_engine->cameraCapabilities(type.mapId()));
125 d->changeActiveMapType(type);
126 emit activeMapTypeChanged();
284void QGeoMapPrivate::setCameraCapabilities(
const QGeoCameraCapabilities &cameraCapabilities)
287 if (m_cameraCapabilities == cameraCapabilities)
289 QGeoCameraCapabilities oldCaps = m_cameraCapabilities;
290 m_cameraCapabilities = cameraCapabilities;
291 emit q->cameraCapabilitiesChanged(oldCaps);
365QRectF QGeoMapPrivate::clampVisibleArea(
const QRectF &visibleArea)
const
367 qreal xp = qMin<qreal>(visibleArea.x(), qMax(m_viewportSize.width() - 1, 0));
368 qreal yp = qMin<qreal>(visibleArea.y(), qMax(m_viewportSize.height() - 1, 0));
369 qreal w = qMin<qreal>(visibleArea.width(), qMax<qreal>(m_viewportSize.width() - xp, 0));
370 qreal h = qMin<qreal>(visibleArea.height(), qMax<qreal>(m_viewportSize.height() - yp, 0));
371 return QRectF(xp, yp, w, h);