#include #include #include #include #include int main() { typedef boost::geometry::model::polygon > polygon; polygon green, blue; boost::geometry::read_wkt("POLYGON((-8042 -1485, \ -8042 250, \ -8042 250, \ 15943 254, \ 15943 -1485, \ -8042 -1485))", green); boost::geometry::read_wkt("POLYGON((-7901 -1485, \ -7901 529, \ -7901 529, \ 15802 544, \ 15802 -1485, \ -7901 -1485))", blue); boost::geometry::correct(green); boost::geometry::correct(blue); std::vector output1; boost::geometry::difference(green, blue, output1); unsigned int i = 0; for (auto const & p : output1) { std::cout << "polygon #" << i++ << ": "; for (auto const & n : p.outer()) { std::cout << "(" << n.x() << "," << n.y() << ") "; } std::cout << std::endl; } std::cout << "----" << std::endl; std::vector output2; boost::geometry::difference(blue, green, output2); unsigned int j = 0; for (auto const & p : output2) { std::cout << "polygon #" << j++ << ": "; for (auto const & n : p.outer()) { std::cout << "(" << n.x() << "," << n.y() << ") "; } std::cout << std::endl; } return 0; }