Einen R-Baum programmieren?

... komplette Frage anzeigen

2 Antworten

Etwas zu komplex um hier es zu beschreiben.

Am besten ist immer noch Sourcecode lesen:

https://github.com/davidmoten/rtree/blob/master/src/main/java/com/github/davidmoten/rtree/RTree.java

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Crysali
13.07.2017, 15:37

Code in dieser Komplexität ist für mich noch ein wenig schwierig, da scheint viel Gedöns dabei zu sein, was mich weniger interessiert/ was ich weniger brauche. Ich bin mehr ein Fan von Worten, die das Vorgehen grob beschreiben, mit kleineren Code-Snippets. Bei dem Link ist Dokumentation dabei, ich werde mir das mal in Ruhe anschauen, danke!

0

https://de.wikipedia.org/wiki/R-Baum

scheint mir interesant für Dich zu sein, besonders das Kapitel Realisierung, das das Verfahren verbal beschreibt.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Crysali
13.07.2017, 15:53

Für gewöhnlich ignoriere ich Wikipedia, da für Themen in diesen Gebieten da manchmal viel Blabla ohne viel Information zu sein scheint, aber hier hat mir das tatsächlich weitergeholfen, danke!

Realisiert wird die Speicherung eines Rechtecks durch die Angabe von Intervallen für alle seine Dimensionen

Ich wüsste gerne, ob ich das richtig verstehe, Jeder Knoten speichert also, in meinem Beispiel, [minX, maxX] und [minY,maxY], sprich die Intervalle in den Dimensionen, klar. Aber wie komme ich jetzt zu meinen Blättern, wenn ein Punkt nicht in dem Knoten liegt ? Wo füge ich die neuen Rechtecke hinzu ?

Schaue ich mir https://de.wikipedia.org/wiki/Datei:R-tree.svg an, so scheint es mir, als ob man eine verkettete Liste pro Knoten anlegt, die alle Rechtecke enthält, die "eigene Rechtecke" sind, also nicht in anderen Rechtecken oder nur teilweise darin enthalten sind.

Was ist aber dann das dominierende Element, um ein Rechteck unter einem Rechteck einzuordnen ? ( Fett gedruckt, da wichtigste Frage für mich) Schaut man sich auf dem Bild R12 an, wie soll man entscheiden, ob das Rechteck in R1 oder in R2 ist, warum wird entschieden, dass es in R1 ist ? Mir scheint, auf dem Bild ist der linke obere Punkt eines Rechtecks für die Einordnung entscheidend ?

0

Was möchtest Du wissen?