GPS Koordinaten verbessern durch Verschneidung mit Straßennetz

Tach zusammen,
kann mir evtl. jemand bei dem folgenden Problem helfen? Wir tracken für ein Projekt im Studium mit einem kleinen Java Applet GPS Koordinaten, schicken diese an einen Server, der die Koordinaten in eine Postgis Tabelle abspeichern soll. Nun wollten wir die GPS Koordinaten auf Straßennetzdaten (die sich in einer anderen Tabelle befinden) verschneiden, um so die relativ ungenauen GPS Positionsdaten ein wenig zu verbessern. Die Distanz zur nächsten Straße bekomme ich raus. Wie bekomme ich nun die Koordinate von der Straße die passend zur Distanz die neue verbesserte GPS Koordinate sein soll? Müsste ja irgendwie aus der Distanz nen Buffer bauen können um dann den Schnittpunkt mit der Straße zu ermitteln. Die Koordinate des Schnittpunktes müsste dann ja die verbesserte GPS Koordinate werden können.
Danke für eure Hilfe

Du könntest wie du erwähnt hast, einen Buffer um den Punkt bauen mit dem Mindestabstand zur Strasse. Dieser Buffer sollte verschnitten mit der Strasse theoretisch einen Schnittpunkt ergeben.

select intersection(street.geom, buffer(gps.geom,distance(street.geom,gps.geom)) from street, gps

So ganz aus dem Bauch ohne Kaffee und Gewähr :wink:

Gruß Uwe

Danke für den Tipp… habs mal ausprobiert… liefert aber Empty zurück… Soweit ich mich nicht täusche dürfte intersections ja auch nur zutreffen, sofern der Buffer “über die Straße” geht oder? Der Buffer würde ja theoretisch die Straße nur berühren…

Wwenn man nur einen Punkt quasi über die Tangentenkonstruktion sucht, kann auch die Genauigkeit eine sehr große Rolle spielen. Vielleicht probierst du eine Annäherung durch einen grösseren Buffer, der sicher ein Ergebnis (2 Punkte theoretisch :wink: ) liefert. Du könntest dann durch Mittelwertbildung einen Schnittpunkt erzeugen. Haben die übergebenen Geometrien auch das gleiche Bezugsystem?

Gruß Uwe

Sooo… lang hat es gedauert (hatte noch andere Dinge in diesem Semester zu erledigen) aber nun läuft es… und ja sie hatten die gleiche SRID… :wink:

Nachdem ich zu keiner Lösung mit den nutzbaren Standardfunktionen von Postgis gekommen bin, habe ich mir schlussendlich selbst eine Funktion in PL/SQL geschrieben. Diese erhält die GPS Koordinate und gibt eine aufs Straßennetz korrigierte Koordinate wieder. Folgende Schritte wurden dafür durchlaufen:
-Deklaration von Berechnungsvariablen
-Cursor der das Ergebnis zur nächsten Straße samt Distanz und der Geometrie der Straße enthält
[font=&quot]o[/font]Abspeichern des Straßensegments
[font=&quot]o[/font]Abspeichern der Distanz
-Höhenfußpunktberechnung um die passenden Koordinaten aus dem Straßensegment zu ermitteln
-Kleinpunktberechnung
-Wiedergabe der aus der Kleinpunktberechnung ermittelten Koordinaten