Erm. The compiler is telling you that the algorithm invoked is invalid for 3 dimensions... The programmers made this explicitely clear (area.hpp):
BOOST_CONCEPT_ASSERT( (geometry::concept::AreaStrategy<Strategy>) );
assert_dimension<Ring, 2>();
So. Yeah. Can't use intersection
to cross two planar polygons. I'm pretty sure with a bit of maths you can do two projections which would lead to two intersections that together give you the information you're after.