As pointed out in #2408 and elsewhere, the project doesn't adequately explain what happens or doesn't happen to Z and M values after geometry operations. And actual behavior may or may not be what an experienced GIS user expects.
At the very least we need to explain that Z and M support is a work in progress.
Here are some starting points for new docs:
Some discussion about this in at libgeos/geos#1371.
As pointed out in #2408 and elsewhere, the project doesn't adequately explain what happens or doesn't happen to Z and M values after geometry operations. And actual behavior may or may not be what an experienced GIS user expects.
At the very least we need to explain that Z and M support is a work in progress.
Here are some starting points for new docs:
RobustLineIntersectorclass encodes most of GEOS's Z and M behavior. Its rules are somewhat documented in https://github.com/libgeos/geos/blob/main/tests/unit/algorithm/RobustLineIntersectorZTest.cpp.Some discussion about this in at libgeos/geos#1371.