diff --git a/Modules/Core/VectorDataBase/src/otbVectorDataKeywordlist.cxx b/Modules/Core/VectorDataBase/src/otbVectorDataKeywordlist.cxx index 4404db5e7a58c0a065aa3cd342b61f208df8b275..f9176647d4b1cec9b95cf4a0b075158019e4682f 100644 --- a/Modules/Core/VectorDataBase/src/otbVectorDataKeywordlist.cxx +++ b/Modules/Core/VectorDataBase/src/otbVectorDataKeywordlist.cxx @@ -20,6 +20,8 @@ #include "otbVectorDataKeywordlist.h" +#include "otbConfigure.h" + namespace otb { @@ -98,6 +100,14 @@ VectorDataKeywordlist ss << std::setprecision(15) << m_FieldList[i].second.Integer; return ss.str(); } +#ifdef OTB_USE_GDAL_20 + if (m_FieldList[i].first->GetType() == OFTInteger64) + { + std::ostringstream ss; + ss << std::setprecision(15) << m_FieldList[i].second.Integer64; + return ss.str(); + } +#endif if (m_FieldList[i].first->GetType() == OFTReal) { std::ostringstream ss; @@ -428,6 +438,11 @@ VectorDataKeywordlist::CopyFieldList(const Self& kwl) std::cerr << "Type not handled for Integer conversion"<<std::endl; break; } + default: + { + std::cerr << "Type not handled for Integer conversion"<<std::endl; + break; + } } } } @@ -506,6 +521,16 @@ VectorDataKeywordlist << field.second.Date.Hour << field.second.Date.Minute << field.second.Date.Second; break; } +#ifdef OTB_USE_GDAL_20 + case OFTInteger64: + { + output << std::setprecision(15)<<field.second.Integer64; + break; + } +#endif + default: + output << "Type not handled for printing"; + break; } output << std::endl; return output.str(); @@ -524,6 +549,14 @@ VectorDataKeywordlist outField.second.Integer = field.second.Integer; break; } +#ifdef OTB_USE_GDAL_20 + case OFTInteger64: + { + outField.second.Integer64 = field.second.Integer64; + break; + } +#endif + case OFTIntegerList: { std::cerr << "OGR type not handled" << std::endl; @@ -592,6 +625,11 @@ VectorDataKeywordlist outField.second.Date.Second = field.second.Date.Second; break; } + default: + { + std::cerr << "OGR type not handled" << std::endl; + break; + } } return outField; }