Skip to content

Commit 36d2dcf

Browse files
authored
OverlayEdgeRing: Preserve M values when closing ring (#1372)
Resolves #1365
1 parent 2ad56c7 commit 36d2dcf

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/operation/overlayng/OverlayEdgeRing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ void
128128
OverlayEdgeRing::closeRing(CoordinateSequence& pts)
129129
{
130130
if(pts.size() > 0) {
131-
pts.add(pts.getAt(0), false);
131+
pts.closeRing(false);
132132
}
133133
}
134134

tests/unit/capi/GEOSGeom_setPrecisionTest.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,5 +326,20 @@ void object::test<23>()
326326
checkPrecision(wkt, 100000, "LINESTRING ( 700000 200000, 700000 1400000)");
327327
}
328328

329+
template<>
330+
template<>
331+
void object::test<24>()
332+
{
333+
// https://github.com/libgeos/geos/issues/1365{
334+
set_test_name("M value retained on last point");
335+
336+
input_ = fromWKT("POLYGON ZM ((0 0 0 0, 0 1 1 1, 1 1 2 3, 1 0 4 5, 0 0 6 7))");
337+
expected_ = fromWKT("POLYGON ZM ((0 1 1 1, 1 1 2 3, 1 0 4 5, 0 0 6 7, 0 1 1 1))");
338+
339+
result_ = GEOSGeom_setPrecision(input_, 0.1, 0);
340+
341+
ensure(GEOSEqualsIdentical(result_, expected_));
342+
}
343+
329344
} // namespace tut
330345

0 commit comments

Comments
 (0)