Räumlicher Index für Geo-Koordinaten?

8

Welche Art von Datenstruktur könnte für eine effiziente Nearest-Neighbor-Suche in einer großen Menge von Geo-Koordinaten verwendet werden? Bei "normalen" räumlichen Indexstrukturen wie R-Trees, die planare Koordinaten annehmen, sehe ich zwei Probleme (Gibt es andere, die ich übersehen habe?):

  • Umbruch an den Polen und der internationalen Datumsgrenze
  • Verzerrung der Entfernungen in der Nähe der Pole

Wie können diese Faktoren berücksichtigt werden? Ich denke, der zweite könnte durch die Koordinatenumwandlung kompensiert werden. Kann ein R-Tree modifiziert werden, um den Umlauf zu berücksichtigen? Oder gibt es spezielle geo-räumliche Indexstrukturen?

    
Michael Borgwardt 08.03.2010, 02:25
quelle

2 Antworten

2

Werfen Sie einen Blick auf Geohash .

Um den Wraparound zu kompensieren, verwenden Sie einfach nicht einen, sondern drei orthogonale R-Bäume, so dass kein Punkt auf der Erdoberfläche existiert, so dass alle drei Bäume an diesem Punkt einen Umbruch haben. Dann sind zwei Punkte nahe, wenn sie sich in der Nähe von mindestens einem dieser Bäume befinden.

    
jkff 08.03.2010, 11:42
quelle
3

Könnten Sie einen Locality-Sensitive Hashing (LSH) -Algorithmus in 3 Dimensionen verwenden? Das würde Ihnen schnell eine ungefähre Nachbargruppe geben, die Sie dann durch Berechnung der Großkreisabstände überprüfen könnten.

Hier ist ein Papier , das einen Algorithmus für effiziente LSH auf der Oberfläche einer Einheit beschreibt d -dimensionale Hypersphäre. Vermutlich funktioniert es für d = 3.

    
Josh McFadden 08.03.2010 03:07
quelle