QT_BEGIN_NAMESPACE QGeoRoutingManagerEngineNokia::QGeoRoutingManagerEngineNokia( QGeoNetworkAccessManager *networkManager, const QVariantMap ¶meters, QGeoServiceProvider::Error *error, QString *errorString) : QGeoRoutingManagerEngine(parameters) , m_networkManager(networkManager) , m_uriProvider(new QGeoUriProvider(this, parameters, QStringLiteral("here.routing.host"), ROUTING_HOST)) { Q_ASSERT(networkManager); m_networkManager->setParent(this); m_appId = parameters.value(QStringLiteral("here.app_id")).toString(); m_token = parameters.value(QStringLiteral("here.token")).toString(); QGeoRouteRequest::FeatureTypes featureTypes; featureTypes |= QGeoRouteRequest::TollFeature; featureTypes |= QGeoRouteRequest::HighwayFeature; featureTypes |= QGeoRouteRequest::FerryFeature; featureTypes |= QGeoRouteRequest::TunnelFeature; featureTypes |= QGeoRouteRequest::DirtRoadFeature; featureTypes |= QGeoRouteRequest::ParksFeature; setSupportedFeatureTypes(featureTypes); QGeoRouteRequest::FeatureWeights featureWeights; featureWeights |= QGeoRouteRequest::DisallowFeatureWeight; featureWeights |= QGeoRouteRequest::AvoidFeatureWeight; featureWeights |= QGeoRouteRequest::PreferFeatureWeight; setSupportedFeatureWeights(featureWeights); QGeoRouteRequest::ManeuverDetails maneuverDetails; maneuverDetails |= QGeoRouteRequest::BasicManeuvers; setSupportedManeuverDetails(maneuverDetails); QGeoRouteRequest::RouteOptimizations optimizations; optimizations |= QGeoRouteRequest::ShortestRoute; optimizations |= QGeoRouteRequest::FastestRoute; setSupportedRouteOptimizations(optimizations); QGeoRouteRequest::TravelModes travelModes; travelModes |= QGeoRouteRequest::CarTravel; travelModes |= QGeoRouteRequest::PedestrianTravel; travelModes |= QGeoRouteRequest::PublicTransitTravel; travelModes |= QGeoRouteRequest::BicycleTravel; setSupportedTravelModes(travelModes); QGeoRouteRequest::SegmentDetails segmentDetails; segmentDetails |= QGeoRouteRequest::BasicSegmentData; setSupportedSegmentDetails(segmentDetails); if (error) *error = QGeoServiceProvider::NoError; if (errorString) *errorString = QString(); }
QGeoRoutingManagerEngineNokia::QGeoRoutingManagerEngineNokia(const QMap<QString, QVariant> ¶meters, QGeoServiceProvider::Error *error, QString *errorString) : QGeoRoutingManagerEngine(parameters), m_host("prd.lbsp.navteq.com"), m_token(QGeoServiceProviderFactoryNokia::defaultToken), m_referer(QGeoServiceProviderFactoryNokia::defaultReferer) { m_networkManager = new QNetworkAccessManager(this); if (parameters.contains("routing.proxy")) { QString proxy = parameters.value("routing.proxy").toString(); if (!proxy.isEmpty()) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_networkManager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyUrl.port(8080), proxyUrl.userName(), proxyUrl.password())); } } } if (parameters.contains("routing.host")) { QString host = parameters.value("routing.host").toString(); if (!host.isEmpty()) m_host = host; } if (parameters.contains("routing.referer")) { m_referer = parameters.value("routing.referer").toString(); } if (parameters.contains("routing.token")) { m_token = parameters.value("routing.token").toString(); } else if (parameters.contains("token")) { m_token = parameters.value("token").toString(); } setSupportsRouteUpdates(true); setSupportsAlternativeRoutes(true); setSupportsExcludeAreas(true); QGeoRouteRequest::FeatureTypes featureTypes; featureTypes |= QGeoRouteRequest::TollFeature; featureTypes |= QGeoRouteRequest::HighwayFeature; featureTypes |= QGeoRouteRequest::FerryFeature; featureTypes |= QGeoRouteRequest::TunnelFeature; featureTypes |= QGeoRouteRequest::DirtRoadFeature; setSupportedFeatureTypes(featureTypes); QGeoRouteRequest::FeatureWeights featureWeights; featureWeights |= QGeoRouteRequest::AvoidFeatureWeight; setSupportedFeatureWeights(featureWeights); QGeoRouteRequest::ManeuverDetails maneuverDetails; maneuverDetails |= QGeoRouteRequest::BasicManeuvers; setSupportedManeuverDetails(maneuverDetails); QGeoRouteRequest::RouteOptimizations optimizations; optimizations |= QGeoRouteRequest::ShortestRoute; optimizations |= QGeoRouteRequest::FastestRoute; optimizations |= QGeoRouteRequest::MostEconomicRoute; setSupportedRouteOptimizations(optimizations); QGeoRouteRequest::TravelModes travelModes; travelModes |= QGeoRouteRequest::CarTravel; travelModes |= QGeoRouteRequest::PedestrianTravel; travelModes |= QGeoRouteRequest::PublicTransitTravel; setSupportedTravelModes(travelModes); QGeoRouteRequest::SegmentDetails segmentDetails; segmentDetails |= QGeoRouteRequest::BasicSegmentData; setSupportedSegmentDetails(segmentDetails); if (error) *error = QGeoServiceProvider::NoError; if (errorString) *errorString = ""; }
QGeoRoutingManagerEngineNokia::QGeoRoutingManagerEngineNokia(const QMap<QString, QVariant> ¶meters, QGeoServiceProvider::Error *error, QString *errorString) : QGeoRoutingManagerEngine(parameters), m_host("route.nlp.nokia.com"), m_token(QGeoServiceProviderFactoryNokia::defaultToken), m_referer(QGeoServiceProviderFactoryNokia::defaultReferer), m_serviceDisabled(false) { // Get manager from declarative factory or create a new one m_networkManager = QLocationNetworkAccessManagerFactory::instance()->create(this); if (parameters.contains("routing.proxy")) { QString proxy = parameters.value("routing.proxy").toString(); if (!proxy.isEmpty()) { QUrl proxyUrl(proxy); if (proxyUrl.isValid()) { m_networkManager->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyUrl.port(8080), proxyUrl.userName(), proxyUrl.password())); } } } if (parameters.contains("routing.host")) { QString host = parameters.value("routing.host").toString(); if (!host.isEmpty()) m_host = host; } if (parameters.contains("routing.referer")) { m_referer = parameters.value("routing.referer").toString(); } if (parameters.contains("routing.token")) { m_token = parameters.value("routing.token").toString(); } else if (parameters.contains("token")) { m_token = parameters.value("token").toString(); } if (parameters.contains("routing.app_id")) { m_applicationId = parameters.value("routing.app_id").toString(); } else if (parameters.contains("app_id")) { m_applicationId = parameters.value("app_id").toString(); } setSupportsRouteUpdates(true); setSupportsAlternativeRoutes(true); setSupportsExcludeAreas(true); QGeoRouteRequest::FeatureTypes featureTypes; featureTypes |= QGeoRouteRequest::TollFeature; featureTypes |= QGeoRouteRequest::HighwayFeature; featureTypes |= QGeoRouteRequest::FerryFeature; featureTypes |= QGeoRouteRequest::TunnelFeature; featureTypes |= QGeoRouteRequest::DirtRoadFeature; setSupportedFeatureTypes(featureTypes); QGeoRouteRequest::FeatureWeights featureWeights; featureWeights |= QGeoRouteRequest::AvoidFeatureWeight; setSupportedFeatureWeights(featureWeights); QGeoRouteRequest::ManeuverDetails maneuverDetails; maneuverDetails |= QGeoRouteRequest::BasicManeuvers; setSupportedManeuverDetails(maneuverDetails); QGeoRouteRequest::RouteOptimizations optimizations; optimizations |= QGeoRouteRequest::ShortestRoute; optimizations |= QGeoRouteRequest::FastestRoute; optimizations |= QGeoRouteRequest::MostEconomicRoute; setSupportedRouteOptimizations(optimizations); QGeoRouteRequest::TravelModes travelModes; travelModes |= QGeoRouteRequest::CarTravel; travelModes |= QGeoRouteRequest::PedestrianTravel; travelModes |= QGeoRouteRequest::PublicTransitTravel; setSupportedTravelModes(travelModes); QGeoRouteRequest::SegmentDetails segmentDetails; segmentDetails |= QGeoRouteRequest::BasicSegmentData; setSupportedSegmentDetails(segmentDetails); if (error) *error = QGeoServiceProvider::NoError; if (errorString) *errorString = ""; #ifdef USE_CHINA_NETWORK_REGISTRATION connect(&m_networkInfo, SIGNAL(currentMobileCountryCodeChanged(const QString&)), SLOT(currentMobileCountryCodeChanged(const QString&))); currentMobileCountryCodeChanged(m_networkInfo.currentMobileCountryCode()); #endif }