From 3bd2ec02fede1c1f1a9075b75326b82d02728396 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 30 Jan 2025 12:22:54 +0100 Subject: [PATCH] STACIT Identify(): accept if at least 2 of 'proj:transform', 'proj:bbox' or 'proj:shape' are present --- frmts/stacit/stacitdataset.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/frmts/stacit/stacitdataset.cpp b/frmts/stacit/stacitdataset.cpp index 3f1ca0078842..ef888745a503 100644 --- a/frmts/stacit/stacitdataset.cpp +++ b/frmts/stacit/stacitdataset.cpp @@ -123,11 +123,19 @@ int STACITDataset::Identify(GDALOpenInfo *poOpenInfo) return pszHeader[0] == '{'; } - if (strstr(pszHeader, "\"stac_version\"") != nullptr && - (strstr(pszHeader, "\"proj:transform\"") != nullptr || - strstr(pszHeader, "\"proj:bbox\"") != nullptr)) + if (strstr(pszHeader, "\"stac_version\"") != nullptr) { - return true; + int nTransformBBOXShapeCount = 0; + for (const char *pszItem : + {"\"proj:transform\"", "\"proj:bbox\"", "\"proj:shape\""}) + { + if (strstr(pszHeader, pszItem)) + nTransformBBOXShapeCount++; + } + if (nTransformBBOXShapeCount >= 2) + { + return true; + } } if (i == 0)