Я хочу создать rtree с dynamic_quadratic и дать ему диапазон у подрядчика, чтобы он использовал алгоритм упаковки. Здесь мой код для этого с правильной квадратичной.алгоритм упаковки в rtree в boost с dynamic_quadratic
namespace bg = boost::geometry;
namespace bgi = boost::geometry::index;
typedef bg::model::point<double , 3, bg::cs::cartesian> BoostPoint;
typedef std::pair<BoostPoint, unsigned> PointValue;
std::vector<PointValue> points;
for(...)
{
//fill in the points vector
}
bgi::rtree< PointValue, bgi::quadratic<16> > rtree_points(points);
Как я могу сделать это с:
bgi::rtree< PointValue, bgi::dynamic_quadratic > rtree_points(points);
?
посмотреть на настроек уже этот пример:
packing algorithm in rtree in boost
Вы должны пройти 'объект BGI :: dynamic_quadratic' в качестве второго параметра конструктора, но конструктор' BGI :: dynamic_quadratic' принимает максимальное число элементов узла rtree (это соответствует 'BGI: : квадратные параметры шаблона). В вашем примере размер точек 'std :: vector' неявно преобразуется в' bgi :: dynamic_quadratic' (это, вероятно, не должно быть разрешено вообще), поэтому вы создаете rtree, имеющую только один огромный узел, содержащий все элементы. Этот rtree ничего не ускорит. Вместо этого вы должны передать bgi :: dynamic_quadratic (16) в качестве второго параметра. –