我必须联合许多boost :: polgons,但我的方法似乎不是很高效(> 15分钟),特别是对于更多数量的多边形(> 2000).
我将所有要联合的多边形推入多面,然后加入多面,
请参阅我的代码:
BOOST_FOREACH(polygon, multipolygon)
{
boost::geometry::clear(tmp_union); //tmp_union is a multipolygon
boost::geometry::union_(result, poly, tmp_union);
result = tmp_union;
}
Run Code Online (Sandbox Code Playgroud)
结果可能不包含很多多边形,因为要连接的大多数多边形将相交.
有没有办法让这个更高效,比如按特定顺序排序多边形或完全不同的方法?
谢谢
我是boost :: geometry和C++的新手,在玩它时,我想到了以下问题:
是否可以直接在多边形内存储其他信息,例如包含颜色的std :: string或带有int的字符串一些身份证号码?
或者我必须用以下内容包装它:
MyPolygon {
typedef boost::geometry::model::d2::point_xy<double> point_2d;
typedef boost::geometry::model::polygon<point_2d> polygon_2d;
polygon_2d poly;
std::string color;
int id;
etc...
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
ffranz