Pregunta en casi lo mismo que esto , pero necesito usar PostGIS.
Tengo varias polilíneas y quiero transformarlas en puntos cada n metros a lo largo de estas líneas.
editar: 
Muchas gracias a Stefan. Mi consulta final fue un poco diferente, probablemente debido a la versión anterior de PostGIS (1.5), pero al final obtuve lo que necesitaba. Los puntos se combinaron en un mapa de calor de densidad de carreteras.


Respuestas:
Esta consulta debería hacer el truco:
Al principio, selecciona las distintas cadenas lineales de su columna de polilínea con
ST_DumpLuego debe definir los elementos de medida con
ST_AddMeasure, comenzando con 0 (comienzo de la cadena de líneas) y el final de la cadena de líneas (igual que la longitud de la cadena de líneas).Generate_seriescrea una serie sobre esta medida en el paso de 10. Aquí puede definir"n metres"(en este ejemplo, 10 metros). Elivalor comienza de nuevo para cada cadena lineal.Con
ST_LocateAlongyST_GeometryNcrea una geometría de punto multidimensional.Finalmente, debe extraer los valores X e Y de esta geometría y crear un punto a partir de ella.
El resultado podría verse así:
EDITAR
Para ser justos, quiero agregar esta información: la idea y la consulta en esta respuesta se extraen de una consulta que estoy usando para crear líneas de cortina desde DEM en PostGIS. La excelente implementación de esto se explica en este artículo de Mathieu Leplatre.
fuente
WITH line ASse usa? No veo 'línea' en otro lado.WITH Queryproporciona el uso de tablas temporales para consultas más grandes. Aquí hay alguna información: postgresql.org/docs/8.4/static/queries-with.html .linese usa en la siguiente subconsultalinemeasure. Los datos seleccionados en esta subconsulta se basan en las selecciones realizadas en lalinesubconsulta. Se construyen uno sobre el otro. Espero que haya ayudado!st_locate_along_measure.