[Spanish] Como unir fragmentos de líneas por sus extremos

Alegre, Raquel r.alegre at ucl.ac.uk
Fri Jul 24 03:13:25 PDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20150724/bdafa457/attachment.html>


More information about the Spanish mailing list