23void QGeoMap::setViewportSize(
const QSize& size)
26 if (size == d->m_viewportSize)
28 d->m_viewportSize = size;
29 d->m_geoProjection->setViewportSize(size);
30 d->changeViewportSize(size);
51void QGeoMap::setCameraData(
const QGeoCameraData &cameraData)
54 if (cameraData == d->m_cameraData)
56 d->m_cameraData = cameraData;
57 d->m_geoProjection->setCameraData(cameraData,
false);
58 d->changeCameraData(cameraData);
59 emit cameraDataChanged(d->m_cameraData);
74bool QGeoMap::setBearing(qreal bearing,
const QGeoCoordinate &coordinate)
77 bool res = d->m_geoProjection->setBearing(bearing, coordinate);
81 setCameraData(geoProjection().cameraData());
85bool QGeoMap::anchorCoordinateToPoint(
const QGeoCoordinate &coordinate,
const QPointF &anchorPoint)
88 QGeoCoordinate newCenter = geoProjection().anchorCoordinateToPoint(coordinate, anchorPoint);
89 newCenter.setLatitude(qBound(d->m_minimumViewportLatitude, newCenter.latitude(), d->m_maximumViewportLatitude));
90 QGeoCameraData data = cameraData();
91 if (data.center() != newCenter) {
92 data.setCenter(newCenter);
117void QGeoMap::setActiveMapType(
const QGeoMapType &type)
120 if (type == d->m_activeMapType)
122 d->m_activeMapType = type;
123 d->setCameraCapabilities(d->m_engine->cameraCapabilities(type.mapId()));
124 d->changeActiveMapType(type);
125 emit activeMapTypeChanged();
283void QGeoMapPrivate::setCameraCapabilities(
const QGeoCameraCapabilities &cameraCapabilities)
286 if (m_cameraCapabilities == cameraCapabilities)
288 QGeoCameraCapabilities oldCaps = m_cameraCapabilities;
289 m_cameraCapabilities = cameraCapabilities;
290 emit q->cameraCapabilitiesChanged(oldCaps);
364QRectF QGeoMapPrivate::clampVisibleArea(
const QRectF &visibleArea)
const
366 qreal xp = qMin<qreal>(visibleArea.x(), qMax(m_viewportSize.width() - 1, 0));
367 qreal yp = qMin<qreal>(visibleArea.y(), qMax(m_viewportSize.height() - 1, 0));
368 qreal w = qMin<qreal>(visibleArea.width(), qMax<qreal>(m_viewportSize.width() - xp, 0));
369 qreal h = qMin<qreal>(visibleArea.height(), qMax<qreal>(m_viewportSize.height() - yp, 0));
370 return QRectF(xp, yp, w, h);