From 2c3f3f6a49e33a7b0c78f3e307769932955491eb Mon Sep 17 00:00:00 2001 From: Kevin Finisterre Date: Wed, 13 May 2015 23:06:37 -0400 Subject: [PATCH] Attempt to fix ArcGIS_MapsLT_* map types, Successfully fix ArcGIS_ShadedRelief by limiting the max tiles. Tiles 11, 12 and 13 are invalid here http://server.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer Set maxtiles to 10 for ArcGIS_ShadedRelief map type --- .../libs/opmapcontrol/src/core/debugheader.h | 1 + .../src/libs/opmapcontrol/src/core/opmaps.cpp | 2 +- .../libs/opmapcontrol/src/core/urlfactory.cpp | 17 +++++++++++------ .../libs/opmapcontrol/src/internals/core.cpp | 6 ++++++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/debugheader.h b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/debugheader.h index 893ba7350..2395f5e64 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/debugheader.h +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/debugheader.h @@ -10,4 +10,5 @@ #define DEBUG_MEMORY_CACHE #define DEBUG_GetGeocoderFromCache #define DEBUG_TIMINGS + #define DEBUG_CORE #endif // DEBUGHEADER_H diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp index 5fa9c6a1e..f421355cd 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp @@ -167,7 +167,7 @@ QByteArray OPMaps::GetImageFrom(const MapType::Types &type, const Point &pos, co case MapType::ArcGIS_MapsLT_OrtoFoto: case MapType::ArcGIS_MapsLT_Map_Hybrid: { - qheader.setRawHeader("Referrer", "http://www.maps.lt/map_beta/"); + qheader.setRawHeader("Referrer", "http://www.maps.lt/map/default.aspx?lang=en"); } break; diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/urlfactory.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/urlfactory.cpp index 9d05dc179..a1c2867eb 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/urlfactory.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/urlfactory.cpp @@ -426,8 +426,10 @@ QString UrlFactory::MakeImageUrl(const MapType::Types &type, const Point &pos, c // return string.Format("http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto/MapServer/tile/{0}/{1}/{2}", zoom, pos.Y(), pos.X()); // http://dc1.maps.lt/cache/mapslt_ortofoto_512/map/_alllayers/L03/R0000001d/C0000002a.jpg // TODO verificar - qDebug() << QString("http://dc1.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L%1/R%2/C%3.jpg").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); - return QString("http://dc1.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L%1/R%2/C%3.jpg").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + qDebug() << QString("http://dc5.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + return QString("http://dc5.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + //http://dc5.maps.lt/cache/mapslt_ortofoto/map/_alllayers/L01/R00000012/C0000001c.png + } break; case MapType::ArcGIS_MapsLT_Map: @@ -439,8 +441,10 @@ QString UrlFactory::MakeImageUrl(const MapType::Types &type, const Point &pos, c // http://dc1.maps.lt/cache/mapslt_512/map/_alllayers/L03/R0000001b/C00000029.png // TODO verificar // http://dc1.maps.lt/cache/mapslt/map/_alllayers/L02/R0000001c/C00000029.png - qDebug() << QString("http://dc1.maps.lt/cache/mapslt/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); - return QString("http://dc1.maps.lt/cache/mapslt/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + qDebug() << QString("http://dc5.maps.lt/cache/mapslt/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + return QString("http://dc5.maps.lt/cache/mapslt/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + //http://dc5.maps.lt/cache/mapslt/map/_alllayers/L01/R00000012/C0000001c.png + } break; case MapType::ArcGIS_MapsLT_Map_Labels: @@ -449,8 +453,9 @@ QString UrlFactory::MakeImageUrl(const MapType::Types &type, const Point &pos, c // return string.Format("http://arcgis.maps.lt/ArcGIS/rest/services/mapslt_ortofoto_overlay/MapServer/tile/{0}/{1}/{2}", zoom, pos.Y(), pos.X()); // http://dc1.maps.lt/cache/mapslt_ortofoto_overlay_512/map/_alllayers/L03/R0000001d/C00000029.png // TODO verificar - qDebug() << QString("http://dc1.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); - return QString("http://dc1.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + qDebug() << QString("http://dc5.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + return QString("http://dc5.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L%1/R%2/C%3.png").arg(zoom, 2, 10, (QChar)'0').arg(pos.Y(), 8, 16, (QChar)'0').arg(pos.X(), 8, 16, (QChar)'0'); + //http://dc5.maps.lt/cache/mapslt_ortofoto_overlay/map/_alllayers/L01/R00000013/C0000001d.png } break; case MapType::PergoTurkeyMap: diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/internals/core.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/internals/core.cpp index f85b17958..b3d48c00a 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/internals/core.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/internals/core.cpp @@ -113,6 +113,7 @@ void Core::run() // tile number inversion(BottomLeft -> TopLeft) for pergo maps if (tl == MapType::PergoTurkeyMap) { + qDebug() << "inverting tiles for Pergo"; img = OPMaps::Instance()->GetImageFrom(tl, Point(task.Pos.X(), maxOfTiles.Height() - task.Pos.Y()), task.Zoom); } else { // ok #ifdef DEBUG_CORE @@ -264,6 +265,11 @@ void Core::SetMapType(const MapType::Types &value) case MapType::ArcGIS_Map: case MapType::ArcGIS_Satellite: case MapType::ArcGIS_ShadedRelief: + { + maxzoom = 10; + } + break; + case MapType::ArcGIS_Terrain: { if (Projection()->Type() != "PlateCarreeProjection") {