From 6a26afbc1f24f3cf167f5bad8f1a626ea0dc8bfc Mon Sep 17 00:00:00 2001 From: Jan Caha Date: Wed, 1 Jul 2026 16:23:21 +0200 Subject: [PATCH] backport from qgis --- src/clip.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/clip.cpp b/src/clip.cpp index 4e5d5af..fcb1973 100644 --- a/src/clip.cpp +++ b/src/clip.cpp @@ -101,7 +101,26 @@ bool loadPolygons(const std::string &polygonFile, pdal::Options& crop_opts, BOX2 fullEnvelope = envelope; else fullEnvelope.Merge(envelope); - crop_opts.add(pdal::Option("polygon", pdal::Polygon(hGeometry))); + + char* wkt_ptr = nullptr; + OGR_G_ExportToWkt(hGeometry, &wkt_ptr); + const std::string wkt(wkt_ptr); + CPLFree(wkt_ptr); + + SpatialReference pdalSrs; + if ( OGRSpatialReferenceH srs = OGR_G_GetSpatialReference(hGeometry) ) + { + char *srsWkt_ptr = nullptr; + const OGRErr err = OSRExportToWkt(srs, &srsWkt_ptr); + if ( err== OGRERR_NONE ) + { + const std::string srsWkt = std::string(srsWkt_ptr); + pdalSrs = SpatialReference( srsWkt ); + } + CPLFree(srsWkt_ptr); + } + + crop_opts.add(pdal::Option("polygon", pdal::Polygon(wkt, pdalSrs))); } OGR_F_Destroy( hFeature ); }