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@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