Hallo alles, was ich verstehe, wenn rtree mit Range-Werte in Boost erstellt wird, würde Pack-Algorithmus verwenden. Ich brauche ein Beispiel für rtree mit Packing-Algorithmus. Hier ist mein Code, der quadratische AlgorithmusPacking-Algorithmus in Baum 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));
}
verwendet würde Ich mag RTREE zu schaffen, mit Packalgorithmus, wie es scheint eine der schnellsten in Auftrieb zu sein. Bitte führen Sie mich, wie Sie einen Baum mit Pack-Algorithmus in Boost erstellen.
Danke für eine elegante Lösung. Wenn ich Boost-Dokumentation http://www.boost.org/doc/libs/1_58_0/libs/geometry/doc/html/geometry/spatial_indexes/introduction.html sehe, heißt das, dass es vier Varianten von RTree gibt. Wenn dieser quadratische Baum zu einem Platzierungsbaum wird, wenn er auf diese Weise initialisiert wird. Was passiert, wenn ich die rtree Definitionszeile zu folgendem ändern werde: bgi :: rtree> rtree (cloud); –
Prem
wäre wirklich hilfreich, wenn Sie das ein bisschen weiter erklären könnten ... – Prem
@Prem: Dieser Konstruktor verwendet einen speziellen Massenladealgorithmus, also glaube ich nicht, dass der Packalgorithmus eine Rolle spielt, es sei denn, Sie fügen später Elemente aus dem Baum hinzu . – Nemo