1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

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
This commit is contained in:
Kevin Finisterre 2015-05-13 23:06:37 -04:00 committed by abeck70
parent 666b63c1d7
commit 2c3f3f6a49
4 changed files with 19 additions and 7 deletions

View File

@ -10,4 +10,5 @@
#define DEBUG_MEMORY_CACHE
#define DEBUG_GetGeocoderFromCache
#define DEBUG_TIMINGS
#define DEBUG_CORE
#endif // DEBUGHEADER_H

View File

@ -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;

View File

@ -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:

View File

@ -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") {