diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp
index 2419b79ab065a2e2a75abdfa673d0bb0f03ed9d8..0c6ce0a7a4d55110e3872605313ac191e263b27f 100644
--- a/src/location/maps/qgeomap.cpp
+++ b/src/location/maps/qgeomap.cpp
@@ -110,7 +110,7 @@ void QGeoMap::setActiveMapType(const QGeoMapType type)
     if (type == d->m_activeMapType)
         return;
     d->m_activeMapType = type;
-    d->setCameraCapabilities(d->m_engine->cameraCapabilities(type)); // emits
+    d->setCameraCapabilities(d->m_engine->cameraCapabilities(type.mapId())); // emits
     d->changeActiveMapType(type);
     emit activeMapTypeChanged();
 }
@@ -238,7 +238,7 @@ QGeoMapPrivate::QGeoMapPrivate(QGeoMappingManagerEngine *engine, QGeoProjection
 {
     // Setting the default camera caps without emitting anything
     if (engine)
-        m_cameraCapabilities = m_engine->cameraCapabilities(m_activeMapType);
+        m_cameraCapabilities = m_engine->cameraCapabilities(m_activeMapType.mapId());
 }
 
 QGeoMapPrivate::~QGeoMapPrivate()
diff --git a/src/location/maps/qgeomappingmanagerengine.cpp b/src/location/maps/qgeomappingmanagerengine.cpp
index a385f8cef493e7f9ac131fb59b565062a718f931..ffc0f065212f2fb0393bc6e652eab50a411bb9b6 100644
--- a/src/location/maps/qgeomappingmanagerengine.cpp
+++ b/src/location/maps/qgeomappingmanagerengine.cpp
@@ -150,9 +150,9 @@ void QGeoMappingManagerEngine::setSupportedMapTypes(const QList<QGeoMapType> &su
     emit supportedMapTypesChanged();
 }
 
-QGeoCameraCapabilities QGeoMappingManagerEngine::cameraCapabilities(const QGeoMapType &mapType) const
+QGeoCameraCapabilities QGeoMappingManagerEngine::cameraCapabilities(int mapId) const
 {
-    Q_UNUSED(mapType)
+    Q_UNUSED(mapId)
     Q_D(const QGeoMappingManagerEngine);
     return d->capabilities_;
 }
diff --git a/src/location/maps/qgeomappingmanagerengine_p.h b/src/location/maps/qgeomappingmanagerengine_p.h
index b8ebb1ec8967ba2855bd4c0192a2c020fc9aa1ca..0f347d739de806baa7402210e44b0fada6738d0b 100644
--- a/src/location/maps/qgeomappingmanagerengine_p.h
+++ b/src/location/maps/qgeomappingmanagerengine_p.h
@@ -90,7 +90,7 @@ public:
     QList<QGeoMapType> supportedMapTypes() const;
 
     // the class is private, so this can be virtual here for now.
-    virtual QGeoCameraCapabilities cameraCapabilities(const QGeoMapType &mapType) const;
+    virtual QGeoCameraCapabilities cameraCapabilities(int mapId = 0) const;
 
     void setLocale(const QLocale &locale);
     QLocale locale() const;
diff --git a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp
index a0fb1a5967748ebb2717dd2124323473cd4c07d1..9a1a0e47fa34286d1b1650cdf073fb0c20e76194 100644
--- a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp
+++ b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.cpp
@@ -349,13 +349,13 @@ QString QGeoTiledMappingManagerEngineOsm::customCopyright() const
     return m_customCopyright;
 }
 
-QGeoCameraCapabilities QGeoTiledMappingManagerEngineOsm::cameraCapabilities(const QGeoMapType &mapType) const
+QGeoCameraCapabilities QGeoTiledMappingManagerEngineOsm::cameraCapabilities(int mapId) const
 {
-    if (mapType.mapId() == 0)
-        return QGeoMappingManagerEngine::cameraCapabilities(mapType);
-    int idx = mapType.mapId() - 1;
+    if (mapId == 0)
+        return QGeoMappingManagerEngine::cameraCapabilities(mapId);
+    int idx = mapId - 1;
     if (idx >= m_providers.size())
-        return QGeoMappingManagerEngine::cameraCapabilities(QGeoMapType());
+        return QGeoMappingManagerEngine::cameraCapabilities(mapId);
     return m_providers[idx]->cameraCapabilities();
 }
 
diff --git a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h
index d77ffab580739964c3fd54a654e5b9174377bb15..c5f16c2bcbeea6808e8e7206bc945ed0df65f515 100644
--- a/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h
+++ b/src/plugins/geoservices/osm/qgeotiledmappingmanagerengineosm.h
@@ -62,7 +62,7 @@ public:
     QGeoMap *createMap() override;
     const QVector<QGeoTileProviderOsm *> &providers();
     QString customCopyright() const;
-    QGeoCameraCapabilities cameraCapabilities(const QGeoMapType &mapType) const override;
+    QGeoCameraCapabilities cameraCapabilities(int mapId) const override;
 
 protected Q_SLOTS:
     void onProviderResolutionFinished(const QGeoTileProviderOsm *provider);
diff --git a/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h b/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
index 01a4b61a4106ac1bb936cc1cf742e7e6072ffd6b..94d1420a81ad43efe7377611bee6b7b6a7a43854 100644
--- a/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
+++ b/tests/auto/geotestplugin/qgeotiledmappingmanagerengine_test.h
@@ -91,9 +91,9 @@ public:
         return new QGeoTiledMapTest(this);
     }
 
-    QGeoCameraCapabilities cameraCapabilities(const QGeoMapType &mapType) const Q_DECL_OVERRIDE
+    QGeoCameraCapabilities cameraCapabilities(int mapId) const Q_DECL_OVERRIDE
     {
-        switch (mapType.mapId()) {
+        switch (mapId) {
         case 4:
         {
             QGeoCameraCapabilities capabilities;
@@ -108,7 +108,7 @@ public:
             return capabilities;
         }
         default:
-            return QGeoMappingManagerEngine::cameraCapabilities(mapType);
+            return QGeoMappingManagerEngine::cameraCapabilities(mapId);
         }
     }