Ich bin ziemlich neu bei Postgres und PostGIS.
Ich versuche, eine einfache Kartenanpassung (oder Pfadinferenz, wenn Sie dies wünschen) einiger GPS-Punkte durchzuführen. Ich benutze Postgres (Postgis) .
Ich habe eine Tabelle in meiner Datenbank, die meine GPS-Punkte enthält: gpspoints (Lat, Long, Zeit, Geschwindigkeit, Azimut, Geometrie, ...)
Ich habe auch ein Shapefile des Straßennetzes in meine Datenbank importiert: Routen (gid, idrte, version, nomrte, norte, clsrte, geom, ...) - Ich habe den Azimut der Links NICHT und bin es auch Ich bin mir nicht sicher, wie ich es mit der Postgis-Funktion ST_azimuth berechnen kann. Ich habe nur ein Shapefile des Straßennetzes mit den oben aufgeführten Spalten.
Ich möchte jeden GPS-Punkt nur dann der nächsten Verbindung (in einem Puffer von 20 Metern um den Punkt) zuordnen, wenn die Richtung der Verbindung mit dem Azimut des GPS-Punkts (+ oder -15 Grad) übereinstimmt, und die projizierte Position abrufen. Ansonsten möchte ich, dass es innerhalb des 20-Meter-Puffers nach dem nächstgelegenen nächsten Link sucht, der einen akzeptablen Azimut hat! (Genau wie auf dem Bild!)
Ich möchte, dass die neuen Koordinaten der projizierten GPS-Punkte in der Tabelle "gpspoints" als "projiziertLat" und "projiziertLong" hinzugefügt werden.
(In der Abbildung unten werden tatsächliche Punkte anhand einer Richtung dargestellt, während projizierte Punkte keine Richtungsmarkierung haben.)
ST_Azimuth
, aber denken Sie daran, dass es Ihnen den Azimut in Bezug auf die Richtung der Digitalisierung anzeigt .