The documentation for map_coords hints that it should be usable for coordinate transforms and the like, but the actual implementation only calls with individual values. So rather than
Point(x, y, z) => func(Point(x, y, z))
You get
Point(x, y, z) => Point(func(x), func(y), func(z))
In my experience, this isn't a very useful transform. This PR adds map_tuples (rather than map_coords to preserve compatibility) for the former use case, and map_geometries for use cases like doing a spatial intersection.
The documentation for map_coords hints that it should be usable for coordinate transforms and the like, but the actual implementation only calls with individual values. So rather than
Point(x, y, z) => func(Point(x, y, z))
You get
Point(x, y, z) => Point(func(x), func(y), func(z))
In my experience, this isn't a very useful transform. This PR adds map_tuples (rather than map_coords to preserve compatibility) for the former use case, and map_geometries for use cases like doing a spatial intersection.