Soy bastante nuevo en Postgres y PostGIS.
Estoy tratando de hacer una simple correspondencia de mapas (o inferencia de ruta si lo desea) de algunos puntos GPS. Estoy usando postgres (postgis) .
Tengo una tabla en mi base de datos que contiene mis puntos GPS: puntos gps (Lat, Long, tiempo, velocidad, acimut, geometría, ...)
También he importado un archivo shape de la red de carreteras a mi base de datos: rutas (gid, idrte, version, nomrte, norte, clsrte, geom, ...) - NO TENGO el acimut de los enlaces, y estoy No estoy seguro de cómo puedo calcularlo usando la función postgis ST_azimuth. Todo lo que tengo es un archivo de forma de la red de carreteras que contiene columnas enumeradas anteriormente.
Quiero asociar cada punto GPS al enlace más cercano (en un búfer de 20 metros alrededor del punto) solo si la dirección del enlace coincide con el acimut del punto GPS (+ o -15 grados) y recuperar la posición proyectada. De lo contrario, quiero que busque el SIGUIENTE enlace más cercano, dentro del búfer de 20 metros, ¡que tiene un acimut aceptable! (¡Al igual que la imagen!)
Quiero que las nuevas coordenadas de los puntos GPS proyectados se agreguen en la tabla "gpspoints" como "projectedLat" y "projectedLong".
(En la imagen a continuación, los puntos reales se demuestran usando una dirección mientras que los puntos proyectados no tienen ninguna marca de dirección)
ST_Azimuth
, pero tenga en cuenta que le indicará el acimut con respecto a la dirección de digitalización .