From 3d36599672ab13f8276c9018ddbe4190872796fa Mon Sep 17 00:00:00 2001 From: Anders Gunnarsson Date: Wed, 5 Feb 2014 12:25:52 +0100 Subject: Nokia plug-in URL and tiler API updates Updated URLs for places and map tiler to current ones. Added URL management for additional hosts for hybrid, terrain and satellite maps. Added new languages and map types available in the new tiler API. Bug fixes for code evaluating copyrights text to show. Now only copyrights related to viewed maps are shown and each name is shown only once. Updated drawing of copyright information to show HERE logo and copyrights text side by side. This is to avoid having logo jumping up and down. Change-Id: Ide18a95335c4299c8219c4dbcfb0cc60b43d46c3 Reviewed-by: Aaron McCarthy Reviewed-by: Alex Blasche --- .../geoservices/nokia/qgeotilefetcher_nokia.cpp | 61 +++++++++++++++++++--- 1 file changed, 54 insertions(+), 7 deletions(-) (limited to 'src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp') diff --git a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp index a70862e3..c1cf93a0 100644 --- a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp @@ -98,6 +98,14 @@ namespace registeredTypes[9] = "hybrid.day.mobile"; registeredTypes[10] = "normal.day.transit.mobile"; registeredTypes[11] = "normal.day.grey.mobile"; + registeredTypes[12] = "normal.day.custom"; + registeredTypes[13] = "normal.night"; + registeredTypes[14] = "normal.night.mobile"; + registeredTypes[15] = "normal.night.grey"; + registeredTypes[16] = "normal.night.grey.mobile"; + registeredTypes[17] = "pedestrian.day"; + registeredTypes[18] = "pedestrian.night"; + registeredTypes[19] = "carnav.day.grey"; } MapTypeRegistry::const_iterator it = registeredTypes.find(mapId); @@ -108,6 +116,11 @@ namespace qWarning() << "Unknown mapId: " << mapId; return "normal.day"; } + + bool isAerialType(const QString mapType) + { + return mapType.startsWith("satellite") || mapType.startsWith("hybrid") || mapType.startsWith("terrain"); + } } QGeoTileFetcherNokia::QGeoTileFetcherNokia( const QVariantMap ¶meters, @@ -120,7 +133,8 @@ QGeoTileFetcherNokia::QGeoTileFetcherNokia( m_parameters(parameters), m_tileSize(tileSize), m_copyrightsReply(0), - m_uriProvider(new QGeoUriProvider(this, parameters, "mapping.host", MAP_TILES_HOST, MAP_TILES_HOST_CN)) + m_baseUriProvider(new QGeoUriProvider(this, parameters, "mapping.host", MAP_TILES_HOST)), + m_aerialUriProvider(new QGeoUriProvider(this, parameters, "mapping.host.aerial", MAP_TILES_HOST_AERIAL)) { Q_ASSERT(networkManager); m_networkManager->setParent(this); @@ -160,15 +174,19 @@ QGeoTiledMapReply *QGeoTileFetcherNokia::getTileImage(const QGeoTileSpec &spec) QString QGeoTileFetcherNokia::getRequestString(const QGeoTileSpec &spec) { static const QString http("http://"); - static const QString path("/maptiler/v2/maptile/newest/"); + static const QString path("/maptile/2.1/maptile/newest/"); static const QChar slash('/'); QString requestString = http; - requestString += m_uriProvider->getCurrentHost(); - requestString += path; + QString mapType = mapIdToStr(spec.mapId()); + if (isAerialType(mapType)) + requestString += m_aerialUriProvider->getCurrentHost(); + else + requestString += m_baseUriProvider->getCurrentHost(); - requestString += mapIdToStr(spec.mapId()); + requestString += path; + requestString += mapType; requestString += slash; requestString += QString::number(spec.zoom()); requestString += slash; @@ -215,18 +233,47 @@ QString QGeoTileFetcherNokia::getLanguageString() const return QStringLiteral("CHI"); else return QStringLiteral("CHT"); + case QLocale::Dutch: + return QStringLiteral("DUT"); case QLocale::French: return QStringLiteral("FRE"); case QLocale::German: return QStringLiteral("GER"); + case QLocale::Gaelic: + return QStringLiteral("GLE"); + case QLocale::Greek: + return QStringLiteral("GRE"); + case QLocale::Hebrew: + return QStringLiteral("HEB"); + case QLocale::Hindi: + return QStringLiteral("HIN"); + case QLocale::Indonesian: + return QStringLiteral("IND"); case QLocale::Italian: return QStringLiteral("ITA"); + case QLocale::Persian: + return QStringLiteral("PER"); case QLocale::Polish: return QStringLiteral("POL"); + case QLocale::Portuguese: + return QStringLiteral("POR"); case QLocale::Russian: return QStringLiteral("RUS"); + case QLocale::Sinhala: + return QStringLiteral("SIN"); case QLocale::Spanish: return QStringLiteral("SPA"); + case QLocale::Thai: + return QStringLiteral("THA"); + case QLocale::Turkish: + return QStringLiteral("TUR"); + case QLocale::Ukrainian: + return QStringLiteral("UKR"); + case QLocale::Urdu: + return QStringLiteral("URD"); + case QLocale::Vietnamese: + return QStringLiteral("VIE"); + default: return QStringLiteral("ENG"); } @@ -257,8 +304,8 @@ void QGeoTileFetcherNokia::fetchCopyrightsData() { QString copyrightUrl = "http://"; - copyrightUrl += m_uriProvider->getCurrentHost(); - copyrightUrl += "/maptiler/v2/copyright/newest?output=json"; + copyrightUrl += m_baseUriProvider->getCurrentHost(); + copyrightUrl += "/maptile/2.1/copyright/newest?output=json"; if (!token().isEmpty()) { copyrightUrl += "&token="; -- cgit v1.2.1