diff --git a/Source/moja.modules.gdal/include/moja/modules/gdal/rasterreadergdal.h b/Source/moja.modules.gdal/include/moja/modules/gdal/rasterreadergdal.h index 31b5e61..726b948 100644 --- a/Source/moja.modules.gdal/include/moja/modules/gdal/rasterreadergdal.h +++ b/Source/moja.modules.gdal/include/moja/modules/gdal/rasterreadergdal.h @@ -22,6 +22,7 @@ class GDAL_API MetaDataRasterReaderGDAL : public datarepository::MetaDataRasterR private: std::string _path; std::string _prefix; + bool _metaDataRequired; }; class GDAL_API TileRasterReaderGDAL : public datarepository::TileRasterReaderInterface { diff --git a/Source/moja.modules.gdal/src/rasterreadergdal.cpp b/Source/moja.modules.gdal/src/rasterreadergdal.cpp index 0a8602b..f64ba63 100644 --- a/Source/moja.modules.gdal/src/rasterreadergdal.cpp +++ b/Source/moja.modules.gdal/src/rasterreadergdal.cpp @@ -46,6 +46,10 @@ MetaDataRasterReaderGDAL::MetaDataRasterReaderGDAL(const std::string& path, cons auto parent = filePath.parent().toString(); auto abs = filePath.parent().absolute().toString(); _path = (boost::format("%1%%2%.json") % filePath.parent().absolute().toString() % filePath.getBaseName()).str(); + _metaDataRequired = true; + if (settings.contains("metadata_required")) { + _metaDataRequired = settings["metadata_required"].extract(); + } } catch (...) { BOOST_THROW_EXCEPTION(flint::LocalDomainError() << flint::Details("GDAL Error in constructor") << flint::LibraryName("moja.modules.gdal") @@ -64,7 +68,11 @@ DynamicObject MetaDataRasterReaderGDAL::readMetaData() const { auto layerMetadata = parsePocoJSONToDynamic(metadata).extract(); return layerMetadata; } else { - BOOST_THROW_EXCEPTION(datarepository::FileNotFoundException() << datarepository::FileName(_path)); + if (_metaDataRequired) { + BOOST_THROW_EXCEPTION(datarepository::FileNotFoundException() << datarepository::FileName(_path)); + } else { + return DynamicObject(); + } } }