Ich habe eine Linestring-Tabelle und eine Punktetabelle in Postgis.
Ich kenne die nächstgelegene Linie zu einem bestimmten Punkt. Was ich wissen muss, ist, auf welcher "Seite" dieser Linie der Punkt liegt. Ich denke, ich muss das tun, indem ich eine senkrechte Linie von einem gegebenen Punkt zu einer Linie (nächstgelegener Punkt auf der Linie) erstelle und dann die Koordinaten vergleiche, aber ich weiß nicht genau, wie das geht und ob es der richtige Weg ist. Da die Linie ihre Richtung ändert.
Ich habe ein Bild gemacht, um meine Aufgabe zu veranschaulichen.
Die Linie selbst ist schwarz, ihre Richtung wird mit grünen Pfeilen angezeigt. Ich muss der Punktetabelle eine Spalte "Seite" hinzufügen, damit rote Punkte den Wert "rechts" und blaue Punkte den Wert "links" haben.
Kann jemand ein SQL-Codebeispiel für die Berechnung eines Nebenwerts eines Punkts geben?
quelle
ST_Azimuth(h.vec)
- ist ein Pseudocode.h.vec
undh.seg
sind Linien, um genau zu sein sollte es so etwas wieST_Azimuth(ST_StartPoint(h.vec), ST_EndPoint(h.vec))