Ciao a tutti capisco che se rtree viene creato con valori di intervallo in boost userebbe l'algoritmo di pacchettizzazione. Ho bisogno di un esempio di rtree usando l'algoritmo di imballaggio. Ecco il mio codice che utilizza algoritmo quadraticoAlgoritmo di pacchettizzazione in rtree in boost
using point = bg::model::point < int, 2, bg::cs::cartesian >;
using pointI = std::pair<point, std::size_t>;
vector<point> contourCenters // has some value
bgi::rtree< pointI, bgi::quadratic<16> > rtree;
vector<pointI> cloud;
for (size_t i = 0; i < contourCenters.size(); ++i)
{
int x = contourCenters[i].get <0>();
int y = contourCenters[i].get <1>();
cout << "Contour Centers: (" << x << "," << y << ")";
cloud.push_back(mp(x, y, i));
rtree.insert(make_pair(contourCenters[i], i));
}
vorrei creare R-tree con imballaggio algoritmo come sembra essere il più veloce in spinta. Gentilmente guidami come creare un rtree con l'algoritmo di packing in boost.
Grazie per una soluzione elegante. Se vedo la documentazione di boost http://www.boost.org/doc/libs/1_58_0/libs/geometry/doc/html/geometry/spatial_indexes/introduction.html, dice che ci sono quattro varianti di RTree. se questo quadratico rtree diventa placement rtree se inizializzato in questo modo. Cosa succederà se modifico la riga di definizione rtree in: bgi :: rtree> rtree (cloud); –
Prem
sarebbe davvero utile se si potesse spiegare un po 'oltre .... – Prem
@Prem: questo costruttore utilizza uno speciale algoritmo di caricamento di massa, quindi non penso che l'algoritmo di imballaggio sia importante a meno che non si aggiungano/rimuovano elementi dall'albero in un secondo momento . – Nemo