Hola Ulises,

Posiblemente no la mejor solución, pero una posibilidad. Ten en cuenta que yo 
soy algo nueva en esto y seguro que otra gente puede ayudar mejor, pero ahi va 
mi intento:

1. - Yo ingeriría el shapefile en una DB PostGIS con ogr2ogr[1], por ejemplo. 
Algo como:

ogr2ogr -f "PostgreSQL" PG:"dbname=db etc" shapefile.shp

2.- Luego extraería los puntos junto con las IDs y los tiempos de las rutas en 
una tabla, usando ST_DumpPoints[2].

3.- A partir de la tabla de puntos, con ST_Makeline[3], ordenando los puntos 
por tiempos y agrupando por ID, te quedaría una tabla de LINESTRINGS con una 
entrada por ruta, con todos los puntos unidos en orden. Por ejemplo:

CREATE TABLE route_lines
AS (
    SELECT id,
        count(*) AS points_count,
        ST_MakeLine(location order by time) AS trajectory
    FROM (
        SELECT *
        FROM route_points
    )
    AS lines
    GROUP BY id
);

Probablemente esto se puede hacer en un solo paso, pero mi SQL no llega a 
tanto, me temo 0:-)

Espero que ayude!

[1] http://www.gdal.org/drv_pg.html
[2] http://postgis.net/docs/ST_DumpPoints.html
[3] http://postgis.net/docs/ST_MakeLine.html


From: Ulises Ibarra
Reply-To: Capítulo Local de la comunidad hispano-hablante
Date: Friday, 24 July 2015 07:21
To: Capítulo Local de la comunidad hispano-hablante
Subject: [Spanish] Como unir fragmentos de líneas por sus extremos

Muy estimada lista:

Tengo una duda enorme. Una amiga de comenta que tiene un archivo shp con 1500 
rutas de GPS, cada ruta con un ID. Pero esas rutas tienen duscontinuidades, es 
decir, están rotas y ella quiere unirlas de forma más o menimos automática. 
¿Podrían decirme sí hay algo que pueda hacer?

Gracias por adelantado

Ulises
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes

Responder a