多くの boost::polgons を結合する必要がありますが、特に多数のポリゴン (>2000) では、私のアプローチはあまりパフォーマンスが良くないようです (>15 分)。
結合したいすべてのポリゴンをマルチポリゴンにプッシュしてから、マルチポリゴンに結合します。コードを参照してください。
BOOST_FOREACH(polygon, multipolygon)
{
boost::geometry::clear(tmp_union); //tmp_union is a multipolygon
boost::geometry::union_(result, poly, tmp_union);
result = tmp_union;
}
結合するポリゴンのほとんどが交差するため、結果にはおそらく非常に多くのポリゴンが含まれません。
ポリゴンを特定の順序で並べ替えたり、まったく異なる方法で並べ替えたりするなど、これをより効率的にする方法はありますか?