diff --git a/Code/IO/otbMapProjectionWrapper.cxx b/Code/IO/otbMapProjectionWrapper.cxx index 4653cf92a38a1bbf5806c2654ad88df285a683d0..876af945777cb95273a4cb9efbfa52df5f03af4c 100644 --- a/Code/IO/otbMapProjectionWrapper.cxx +++ b/Code/IO/otbMapProjectionWrapper.cxx @@ -111,9 +111,12 @@ bool MapProjectionWrapper::InstanciateProjection() //we don't want to have a ossimEquDistCylProjection here: //see discussion in May 2009 on ossim list; //a better solution might be available... - if (std::string(kwl.find("type")) == "ossimEquDistCylProjection") //FIXME + std::string projectionString(kwl.find("type")); + if (projectionString.find("ossimEquDistCylProjection") != string::npos) { - otbMsgDevMacro(<< "WARNING: Not instanciating a ossimEquDistCylProjection"); + otbMsgDevMacro(<< "WARNING: Not instanciating a ossimEquDistCylProjection: " << projectionString); + otbMsgDevMacro(<< "Wkt was: " << kwl); + otbMsgDevMacro(<< "From RefWkt: " << m_ProjectionRefWkt); return false; } @@ -128,6 +131,15 @@ bool MapProjectionWrapper::InstanciateProjection() void MapProjectionWrapper::InverseTransform(double x, double y, double z, double& lon, double& lat, double& h) { + if (m_MapProjection == NULL) + { + otbMsgDevMacro(<< "WARNING: Using identity"); + lon = x; + lat = y; + h = z; + return; + } + ossimDpt ossimDPoint(x, y); //map projection @@ -143,6 +155,15 @@ void MapProjectionWrapper::InverseTransform(double x, double y, double z, void MapProjectionWrapper::ForwardTransform(double lon, double lat, double h, double& x, double& y, double& z) { + if (m_MapProjection == NULL) + { + otbMsgDevMacro(<< "WARNING: Using identity"); + x = lon; + y = lat; + z = h; + return; + } + ossimGpt ossimGPoint(lat, lon, h); //map projection