From 0f24f5ea8ce51f72b78c2fb1c4c8b4b2bf6c9370 Mon Sep 17 00:00:00 2001 From: Manuel Grizonnet <manuel.grizonnet@gmail.com> Date: Tue, 13 Apr 2010 15:24:43 +0200 Subject: [PATCH] ENH:add translation from depth to scale in TileMapIO --- Code/IO/otbTileMapImageIO.cxx | 66 +++++++++++++++++++++++++++++++++++ Code/IO/otbTileMapImageIO.h | 4 ++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/Code/IO/otbTileMapImageIO.cxx b/Code/IO/otbTileMapImageIO.cxx index 1fab93ff55..9081c7e617 100644 --- a/Code/IO/otbTileMapImageIO.cxx +++ b/Code/IO/otbTileMapImageIO.cxx @@ -927,6 +927,72 @@ int TileMapImageIO::XYToQuadTree2(double x, double y, std::ostringstream& quad) return 0; } +/** get scale rfom depth */ +const std::string TileMapImageIO::ConvertDepthToScale(const unsigned int depth) const +{ + switch (depth) + { + case 1: + return "1 : 222 million"; + break; + case 2: + return "1 : 111 million"; + break; + case 3: + return "1 : 55 million"; + break; + case 4: + return "1 : 28 million"; + break; + case 5: + return "1 : 14 million"; + break; + case 6: + return "1 : 7 million"; + break; + case 7: + return "1 : 3 million"; + break; + case 8: + return "1 : 2 million"; + break; + case 9: + return "1 : 867,000"; + break; + case 10: + return "1 : 433,000"; + break; + case 11: + return "1 : 217,000"; + break; + case 12: + return "1 : 108,000"; + break; + case 13: + return "1 : 54,000"; + break; + case 14: + return "1 : 27,000"; + break; + case 15: + return "1 : 14,000"; + break; + case 16: + return "1 : 6,771"; + break; + case 17: + return "1 : 3,385"; + break; + case 18: + return "1 : 1,693"; + break; + default: + return "1 : 222 million"; + break; + } + +} + unsigned int TileMapImageIO::GetActualNumberOfSplitsForWritingCanStreamWrite(unsigned int numberOfRequestedSplits, const ImageIORegion& pasteRegion) const diff --git a/Code/IO/otbTileMapImageIO.h b/Code/IO/otbTileMapImageIO.h index dfc0065b5e..a03ff15fd5 100644 --- a/Code/IO/otbTileMapImageIO.h +++ b/Code/IO/otbTileMapImageIO.h @@ -141,6 +141,8 @@ public: * that the IORegion has been set properly. */ virtual void Write(const void* buffer); + /** Correspondance between depth and scale for the quad tree paradigm*/ + virtual const std::string ConvertDepthToScale(const unsigned int depth) const; protected: /** Constructor.*/ TileMapImageIO(); @@ -186,7 +188,7 @@ private: void FillCacheFaults(void* buffer) const; int XYToQuadTree(double x, double y, std::ostringstream& quad) const; int XYToQuadTree2(double x, double y, std::ostringstream& quad) const; - + /** CURL Multi */ void GenerateTileInfo(double x, double y, int numTileX, int numTileY); bool CanReadFromCache(std::string filename); -- GitLab