Hallo!
Kann man per SQL einen LINSTRING immer an dem Knoten splitten, an dem er von einem anderen gekreuzt wird oder wo ein Anderer endet? Hintergrund ist folgender:
Ich habe Straßen als LINESTRING’s in einer Tabelle. Darüber möchte ich mit pgrouting Routen berechnen lassen. Leider funktioniert das nicht, wenn an einer Kreuzung die Linien nicht enden, sondern nur “andocken”. Man stelle sich das z.B. wir das “T” vor. Der Querstrich oben ist ein LINESTRING aus 3 Punkten und der senkrechte Strich endet auf dem mittleren Schnittpunkt vom Querstrich. Ergebnis soll sein, dass der Querstrich in der Mitte geteilt wird.
Bei über 400 LINESTRING ist eine manuelle Korrektur zu aufwendig. Zumal man auch die prüfen muss, die passend enden. Weiterhin kommt es vor, dass immer wieder solche “falschen” LINESTRING’s neu in der DB landen.
Eine Intersection ist schon klar, aber nicht das was mich der Lösung meines Problems näher bringt. Bei den beiden von mir als Beispiel genannten Geometrien bekomme ich den Schnittpunkt zurück. Ich müsste aber an dem Punkt die Linie in zwei Linien aufteilen. Nächstes Problem ist, dass ich den gesamten Datenbestand, also die ca. 400 Sätze in der Tabelle darauf hin prüfen und ggf. aufteilen müsste.