Tengo una tabla PostGIS de posiciones GPS por cada cinco segundos:
2011-01-01 00:00:05, POINT(x1,y1)
2011-01-01 00:00:10, POINT(x2,y2)
2011-01-01 00:00:15, POINT(x3,y3)
...
Estoy buscando una consulta que devuelva valores (marca de tiempo y punto) por cada segundo. Está bien suponer que los puntos están conectados por una línea recta.
Estoy buscando específicamente una forma de hacer esto dentro de la base de datos y no escribiendo algún script externo.
postgis
sql
interpolation
bajo oscuro
fuente
fuente
Respuestas:
Hola
Si su tabla original se llama gps_p, su campo de marca de tiempo se llama ts y los puntos se llaman th_geom:
Lo que hace es que construye líneas entre los puntos y usa st_segmentize para dividir la línea en 5 segmentos.
Si no son exactamente 5 segundos entre sus puntos originales, no funcionará. Luego, puede agregar un campo de identificación con una secuencia y usarlo para unirse a la tabla con id1 + 1 = id2 en su lugar.
HTH
/ Nicklas
fuente
Aquí hay un borrador de código para pl / python, es solo la idea básica de traducir los puntos por una distancia y acimut dados.
Para ejecutar funciones postgis en pl / python, la única solución que encontré es usar plpy.prepare y plpy.execute (muy aburrido).
fuente
Si no me equivoco ...
Lo que debe hacer es determinar la línea de conexión y luego dividirla.
fuente