diff --git a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp
index 8066d917aed07db2cace0aa1e2c9cde66eaa6def..0a95ddf9a14055f17aa281a6d80ffd6ebf23c109 100644
--- a/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp
+++ b/src/location/declarativemaps/qdeclarativegeoroutemodel.cpp
@@ -1442,7 +1442,7 @@ QGeoRouteRequest QDeclarativeGeoRouteQuery::routeRequest()
         m_extraParametersChanged = false;
         // Update extra params into request
         const QList<QDeclarativeGeoMapParameter *> params = quickChildren<QDeclarativeGeoMapParameter>();
-        QMap<QString, QVariantMap> extraParameters;
+        QVariantMap extraParameters;
         for (const QDeclarativeGeoMapParameter *p: params)
             extraParameters[p->type()] = p->toVariantMap();
         request_.setExtraParameters(extraParameters);
diff --git a/src/location/maps/qgeorouterequest.cpp b/src/location/maps/qgeorouterequest.cpp
index ab0a310956502ae630637b6663c8cc6dce62d617..57ef1c03c8ab165b2eefd62e5159a7659d519b9f 100644
--- a/src/location/maps/qgeorouterequest.cpp
+++ b/src/location/maps/qgeorouterequest.cpp
@@ -473,7 +473,7 @@ QGeoRouteRequest::ManeuverDetail QGeoRouteRequest::maneuverDetail() const
 
     \since 5.11
 */
-void QGeoRouteRequest::setExtraParameters(const QMap<QString, QVariantMap> &extraParameters)
+void QGeoRouteRequest::setExtraParameters(const QVariantMap &extraParameters)
 {
     d_ptr->extraParameters = extraParameters;
 }
@@ -483,7 +483,7 @@ void QGeoRouteRequest::setExtraParameters(const QMap<QString, QVariantMap> &extr
 
     \since 5.11
 */
-QMap<QString, QVariantMap> QGeoRouteRequest::extraParameters() const
+QVariantMap QGeoRouteRequest::extraParameters() const
 {
     return d_ptr->extraParameters;
 }
diff --git a/src/location/maps/qgeorouterequest.h b/src/location/maps/qgeorouterequest.h
index 2c34479ba54d8bedc1f30d554824029ec7829dd4..5a4bc61e6ee5604175db745512f58ca287a0a2d9 100644
--- a/src/location/maps/qgeorouterequest.h
+++ b/src/location/maps/qgeorouterequest.h
@@ -149,8 +149,8 @@ public:
     void setManeuverDetail(ManeuverDetail maneuverDetail);
     ManeuverDetail maneuverDetail() const;
 
-    void setExtraParameters(const QMap<QString, QVariantMap> &extraParameters);
-    QMap<QString, QVariantMap> extraParameters() const;
+    void setExtraParameters(const QVariantMap &extraParameters);
+    QVariantMap extraParameters() const;
 
 private:
     QExplicitlySharedDataPointer<QGeoRouteRequestPrivate> d_ptr;
diff --git a/src/location/maps/qgeorouterequest_p.h b/src/location/maps/qgeorouterequest_p.h
index 7b3a849935c5025d498a5fc04a65c3aa4d4d0a46..df0cd62c3dcc92fae828c935cc4892ee9574e2e6 100644
--- a/src/location/maps/qgeorouterequest_p.h
+++ b/src/location/maps/qgeorouterequest_p.h
@@ -77,7 +77,7 @@ public:
     QGeoRouteRequest::RouteOptimizations routeOptimization;
     QGeoRouteRequest::SegmentDetail segmentDetail;
     QGeoRouteRequest::ManeuverDetail maneuverDetail;
-    QMap<QString, QVariantMap> extraParameters;
+    QVariantMap extraParameters;
 };
 
 QT_END_NAMESPACE
diff --git a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h
index 0a0ec463ccc838a57374d0857c3d80951b4b81c4..303015b771384cc5e9a781b6abe205cea25f817f 100644
--- a/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h
+++ b/tests/auto/geotestplugin/qgeoroutingmanagerengine_test.h
@@ -169,7 +169,7 @@ public:
         QList<QGeoRoute> routes;
         int travelTime = 0;
         if (request.extraParameters().contains("test-traveltime"))
-            travelTime = request.extraParameters().value("test-traveltime").value("requestedTime").toInt();
+            travelTime = request.extraParameters().value("test-traveltime").toMap().value("requestedTime").toInt();
 
         for (int i = 0; i < request.numberAlternativeRoutes(); ++i) {
             QGeoRoute route;
diff --git a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp
index 508571c3608a1354499116346a7fa6d58dc72580..d29e3d497e6b91b67282a6f8f5aef3b0c6da0125 100644
--- a/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp
+++ b/tests/auto/qgeorouterequest/tst_qgeorouterequest.cpp
@@ -321,25 +321,27 @@ void tst_QGeoRouteRequest::featureWeight()
 
 void tst_QGeoRouteRequest::extraParameters_data()
 {
-    QTest::addColumn<QMap<QString, QVariantMap>>("extraParameters");
+    QTest::addColumn<QVariantMap>("extraParameters");
 
-    QMap<QString, QVariantMap> params;
+    QVariantMap params;
     QTest::newRow("Empty") << params;
 
-    params["param1"] = {{"property1", QVariant(42)} , {"property2", QVariant("42")} , {"property3", QVariant("42.0")}};
+    const QVariantMap param1 = {{"property1", QVariant(42)} , {"property2", QVariant("42")} , {"property3", QVariant("42.0")}};
+    params["param1"] = param1;
 
     QTest::newRow("One param") << params;
 
-    params["param2"] = {{"property1", QVariant(43)} , {"property2", QVariant("43")} , {"property3", QVariant("43.0")}};
+    const QVariantMap param2 = {{"property1", QVariant(43)} , {"property2", QVariant("43")} , {"property3", QVariant("43.0")}};
+    params["param2"] = param2;
 
     QTest::newRow("Two params") << params;
 }
 
 void tst_QGeoRouteRequest::extraParameters()
 {
-    typedef QMap<QString, QVariantMap> ParameterType;
+    typedef QVariantMap ParameterType;
     QFETCH(ParameterType , extraParameters);
-    QMap<QString, QVariantMap> emptyParams;
+    QVariantMap emptyParams;
     qgeorouterequest->setExtraParameters(extraParameters);
     QCOMPARE(qgeorouterequest->extraParameters(), extraParameters);
     qgeorouterequest->setExtraParameters(emptyParams);