#include #include namespace bg = boost::geometry; typedef bg::model::point point_type; typedef bg::model::ring ring_type; typedef bg::model::polygon polygon_type; typedef bg::model::multi_polygon multi_polygon_type; int main() { polygon_type pol1, pol2; bg::read_wkt("POLYGON((75 75,75 175,275 175,275 75,75 75))", pol1); bg::read_wkt("POLYGON((50 50,50 150,250 150,250 50,50 50))", pol2); assert(bg::is_valid(pol1)); assert(bg::is_valid(pol2)); multi_polygon_type mpoly; ring_type ring; bg::intersection(pol1, pol2, mpoly); bg::intersection(pol1, pol2, ring); std::cout << bg::wkt(mpoly) << std::endl; std::cout << bg::wkt(ring) << std::endl; return 0; }