Tengo una tabla de cadenas lineales y una tabla de puntos en postgis.
Sé la línea más cercana a cualquier punto dado. Lo que necesito saber es en qué "lado" de esa línea está el punto. Supongo que tengo que hacer eso creando una línea perpendicular desde el punto dado a la línea (punto más cercano en la línea) y luego comparar las coordenadas, pero no sé exactamente cómo hacerlo, y si es la forma correcta, ya que la línea cambia su dirección.
Hice una foto para ilustrar mi tarea.
La línea en sí es negra, su dirección se muestra con flechas verdes. Necesito agregar una columna "lateral" a la tabla de puntos, para que los puntos rojos tengan el valor "derecho" y los puntos azules tengan el valor "izquierdo".
¿Alguien puede dar un ejemplo de código SQL para calcular un valor "lateral" de un punto?
fuente
ST_Azimuth(h.vec)
- es un pseudocódigo.h.vec
yh.seg
son líneas, así que para ser precisos, debería ser algo así comoST_Azimuth(ST_StartPoint(h.vec), ST_EndPoint(h.vec))