Ich habe eine Reihe von Polylinien (Nummerierung in 100er, wobei jede Polylinie etwa 200-300 Ecken hat). Diese repräsentieren Routen auf einer Karte (alle aus der Google Maps API, falls das hilft). Die Scheitelpunkte sind Breiten-/Längenkoordinaten.Ermitteln der ungefähren Überlappungen einer gegebenen Polylinie mit einer Menge bestehender Polylinien
Ich habe jetzt eine Abfrage Polylinie, und ich muss die "Überlappungen" der Abfrage Polylinie mit einem der vorhandenen Polylinien finden. Die Ergebnisse werden somit selbst Polylinien sein, sortiert in der Reihenfolge von Maximum zu geringster Überlappung. Ich brauche nur die ersten 100 Ergebnisse oder so. Ein zusätzliches Problem ist, dass die Überlappung nicht exakt sein muss, sondern angenähert sein kann (d. H. Abschnitte von Liniensegmenten, die als überlappend betrachtet werden, müssen nicht aufeinander liegen, sondern müssen nur "nahe beieinander" sein).
Um eine konkrete Darstellung zu geben, ist im linken Teil des Bildes die blaue Polylinie (Polylinie A) eine Polylinie in der Datenbank und die rote Polylinie (Polylinie B) die Query-Polylinie. Der Algorithmus sollte die Polylinie bestimmen, die in dickem Schwarz markiert ist, wie rechts gezeigt.
Ich bin derzeit Neigung zu einer räumlichen Datenbank (die Option in Betracht gezogen wird PostgreSQL + PostGIS), aber ich bin mir nicht sicher, dass die Latenz akzeptabel wäre - die Abfrage muss Ergebnisse in der Nähe sofort zurückzukehren. Mein Berechnungs-Geometrie-Fu ist zugegebenermaßen schwach, aber ich frage mich: Gibt es irgendwelche Algorithmen oder Ansätze, die sich als nützlich erweisen könnten, um dieses spezielle Problem zu lösen?
Vielen Dank im Voraus!
Bezug: http://gis.stackexchange.com/q/59729/16594 –