[Gfoss] creare LINESTRING da punti

tommaso dibucchianico tommasodb a googlemail.com
Ven 20 Giu 2008 10:58:36 CEST


>Unix non accetta una riga di comando di lunghezza arbitraria.

si, c'è una specie di limite. in linux dovrebbe essere un problema risolto
con l'ultimo kernel (io ho ancora il vecchio)


> Pero' se hai lo shapefile forse ti conviene usare shp2pgsql.

ma non è fare lo shape file il problema, ma solo create una geometria
LINESTRING


per spiegarmi meglio, ho cercato di usare il seguente script:

k=$(cat coo)

psql -d gps -c "INSERT INTO l2008_06_03_kit_04 values
(1,'2008_06_16_Kit_18', GeomFromText('LINESTRING($k)',4326));"

dove coo è il file con le coordinate (5000 righe). Il comando funziona
tranquillamente se io apro il file coo a mano e copio incollo tutte le righe
a mano.

Quello che vorrei sapere è la query per fare questo senza dover passare per
un file esterno. Qualcosa tipo:
 select geomfromtext('linestring(longitude latitude)',4326) from
table_coordinate;

Appena ho tempo provo l'esempio  proposto da niccolò.

grazie dei consigli!



2008/6/19 Niccolo Rigacci <niccolo a faunalia.it>:

> > ma come posso creare vettore lineare
> > a partire dalle coordinate dei punti?
>
> Unix non accetta una riga di comando di lunghezza arbitraria.
>
> Io ho dovuto trattare una cosa simile in PHP, ho risolto creando
> una tabella intermedia con tutti i punti (loop sui dati in input)
> e poi creando la LINE con una MakeLine e una SELECT del tipo:
>
> UPDATE tracksegments SET trkseg = (
>    SELECT MakeLine(trkpt) FROM (
>        SELECT trkpt FROM trackpoints
>        WHERE idtrkseg = $idtrkseg
>        ORDER BY date_time
>    ) AS trkseg)
>    WHERE id = $idtrkseg;
> lo
> Pero' se hai lo shapefile forse ti conviene usare shp2pgsql.
>
> --
> Niccolo Rigacci
> Firenze - Italy
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://www.faunalia.com/pipermail/gfoss/attachments/20080620/e4425faa/attachment.htm>


Maggiori informazioni sulla lista Gfoss