17#define PREFETCH_FRUSTUM_SCALE 2.0
27 this,&QGeoTiledMap::handleTileVersionChanged);
30 d->onCameraCapabilitiesChanged(oldCameraCapabilities);
42 this,&QGeoTiledMap::handleTileVersionChanged);
45 d->onCameraCapabilitiesChanged(oldCameraCapabilities);
52 delete d->m_tileRequests;
53 d->m_tileRequests =
nullptr;
55 if (!
d->m_engine.isNull()) {
65 return d->m_tileRequests;
77 d->m_prefetchStyle = style;
89 return d->updateSceneGraph(oldNode,
window);
101 d->m_cache->clearAll();
102 d->m_mapScene->clearTexturedTiles();
118 if (visible ==
d->m_copyrightVisible)
133void QGeoTiledMap::handleTileVersionChanged()
136 if (!
d->m_engine.isNull()) {
139 d->changeTileVersion(
engine->tileVersion());
150 m_cache(
engine->tileCache()),
155 m_maxZoomLevel(static_cast<int>(
std::ceil(m_cameraCapabilities.maximumZoomLevel()))),
156 m_minZoomLevel(static_cast<int>(
std::ceil(m_cameraCapabilities.minimumZoomLevel()))),
157 m_prefetchStyle(
QGeoTiledMap::PrefetchTwoNeighbourLayers)
186 int currentIntZoom =
static_cast<int>(std::floor(
camera.zoomLevel()));
195 double zoomFraction =
camera.zoomLevel() - currentIntZoom;
196 int nearestNeighbourLayer = zoomFraction > 0.5 ? currentIntZoom + 1 : currentIntZoom - 1;
197 if (nearestNeighbourLayer <= m_maxZoomLevel && nearestNeighbourLayer >=
m_minZoomLevel) {
198 camera.setZoomLevel(nearestNeighbourLayer);
201 double neighbourScale = (1.0 + zoomFraction)/2.0;
213 camera.setZoomLevel(currentIntZoom - 1);
220 camera.setZoomLevel(currentIntZoom + 1);
266 double zoomLevel = cameraData.
zoomLevel();
268 zoomLevel = std::log(std::pow(2.0, zoomLevel) * 256.0 /
m_visibleTiles->
tileSize()) * (1.0 / std::log(2.0));
274 int izl =
static_cast<int>(std::floor(cam.
zoomLevel()));
283 if (
qAbs(delta) < 0.01) {
303 q->evaluateCopyrights(tiles);
313 emit q->sgNodeChanged();
402 emit q->sgNodeChanged();
virtual void setMinTextureUsage(int textureUsage)=0
virtual int minTextureUsage() const =0
qreal minimumZoomLevel
\qmlproperty qreal cameraCapabilities::minimumZoomLevel
qreal maximumZoomLevel
\qmlproperty qreal cameraCapabilities::maximumZoomLevel
void setZoomLevel(double zoomLevel)
void setMapType(const QGeoMapType &mapType)
const QSet< QGeoTileSpec > & createTiles()
void setMapVersion(int mapVersion)
QGeoCameraData cameraData() const
QGeoMapType activeMapType() const
void setScreenSize(const QSize &size)
void setViewExpansion(double viewExpansion)
void setTileSize(int tileSize)
void setCameraData(const QGeoCameraData &camera)
void setPluginString(const QString &pluginString)
void setVisibleArea(const QRectF &visibleArea)
QGeoProjection * m_geoProjection
QRectF clampVisibleArea(const QRectF &visibleArea) const
QGeoCameraCapabilities m_cameraCapabilities
QGeoCameraData m_cameraData
@ SupportsAnchoringCoordinate
virtual void setCopyrightVisible(bool visible)
QGeoMapType activeMapType() const
void cameraCapabilitiesChanged(const QGeoCameraCapabilities &oldCameraCapabilities)
virtual void setVisibleArea(const QRectF &visibleArea)=0
QMap< QGeoTileSpec, QSharedPointer< QGeoTileTexture > > requestTiles(const QSet< QGeoTileSpec > &tiles)
QSharedPointer< QGeoTileTexture > tileTexture(const QGeoTileSpec &spec)
void changeTileVersion(int version)
void changeViewportSize(const QSize &size) override
QRectF visibleArea() const override
QGeoTiledMapPrivate(QGeoTiledMappingManagerEngine *engine)
void changeActiveMapType(const QGeoMapType &mapType) override
void changeCameraData(const QGeoCameraData &cameraData) override
QGeoCameraTiles * m_visibleTiles
void updateTile(const QGeoTileSpec &spec)
void onCameraCapabilitiesChanged(const QGeoCameraCapabilities &oldCameraCapabilities)
QGeoCameraTiles * m_prefetchTiles
QGeoTiledMap::PrefetchStyle m_prefetchStyle
QGeoTileRequestManager * m_tileRequests
QGeoMapType activeMapType() const
void setVisibleArea(const QRectF &visibleArea) override
QAbstractGeoTileCache * m_cache
QGeoTiledMapScene * m_mapScene
QSGNode * updateSceneGraph(QSGNode *node, QQuickWindow *window)
const QSet< QGeoTileSpec > & visibleTiles() const
void setCameraData(const QGeoCameraData &cameraData)
void setScreenSize(const QSize &size)
void addTile(const QGeoTileSpec &spec, QSharedPointer< QGeoTileTexture > texture)
QSet< QGeoTileSpec > texturedTiles()
void setVisibleTiles(const QSet< QGeoTileSpec > &tiles)
QSGNode * updateSceneGraph(QSGNode *oldNode, QQuickWindow *window)
void setTileSize(int tileSize)
void clearTexturedTiles()
void setVisibleArea(const QRectF &visibleArea)
QGeoTileRequestManager * requestManager()
void clearData() override
void setCopyrightVisible(bool visible) override
void updateTile(const QGeoTileSpec &spec)
@ PrefetchTwoNeighbourLayers
void prefetchData() override
QAbstractGeoTileCache * tileCache()
virtual void evaluateCopyrights(const QSet< QGeoTileSpec > &visibleTiles)
QSGNode * updateSceneGraph(QSGNode *, QQuickWindow *window) override
Capabilities capabilities() const override
QGeoTiledMap(QGeoTiledMappingManagerEngine *engine, QObject *parent)
void setPrefetchStyle(PrefetchStyle style)
virtual void clearScene(int mapId)
void tileVersionChanged()
const_iterator cend() const
const_iterator cbegin() const
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
\qmltype Window \instantiates QQuickWindow \inqmlmodule QtQuick
\inmodule QtCore\reentrant
\group qtquick-scenegraph-nodes \title Qt Quick Scene Graph Node classes
bool contains(const T &value) const
bool isNull() const noexcept
Returns true if this object refers to \nullptr.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QSet< QString >::iterator it
Combined button and popup list for selecting options.
#define PREFETCH_FRUSTUM_SCALE
static QT_BEGIN_NAMESPACE const int tileSize
constexpr const T & qMax(const T &a, const T &b)
constexpr T qAbs(const T &t)
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLdouble GLdouble GLdouble GLdouble q
\inmodule QtCore \reentrant
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent