Export da postgis a shapefile

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Export da postgis a shapefile

Rocco Pispico
Ciao a tutti,
in QGis quando si esporta da postgis a shapefile se i campi della tavola sono più lunghi di 10 caratteri vengono tagliati e fissato un nome con un numero progressivo.
Ho provato ad impostare un alias nelle proprietà dei campi ma non viene mantenuto nell'export.
Avete da suggerirmi un modo furbo e veloce per non dover dover toccare tavole, query e viste su una cinquantina di campi di un po' di tavole e allo stesso tempo non dover usare postgres come un dbf.

Il fomato shapefile in output in questo lavoro è un vincolo.
Grazie

Rocco

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Export da postgis a shapefile

Luigi Pirelli-2
ho paura che sia un limite degli shapefile


2014-04-08 18:44 GMT+02:00 Rocco Pispico <[hidden email]>:
Ciao a tutti,
in QGis quando si esporta da postgis a shapefile se i campi della tavola sono più lunghi di 10 caratteri vengono tagliati e fissato un nome con un numero progressivo.
Ho provato ad impostare un alias nelle proprietà dei campi ma non viene mantenuto nell'export.
Avete da suggerirmi un modo furbo e veloce per non dover dover toccare tavole, query e viste su una cinquantina di campi di un po' di tavole e allo stesso tempo non dover usare postgres come un dbf.

Il fomato shapefile in output in questo lavoro è un vincolo.
Grazie

Rocco

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Export da postgis a shapefile

Stefano Iacovella

Confermo quanto detto da Gino.
È un limite del DBF

---------------------------------------------------
41.95581N 12.52854E

http://www.linkedin.com/in/stefanoiacovella

http://twitter.com/#!/Iacovellas

Il 08/apr/2014 14:56 "Gino Pirelli" <[hidden email]> ha scritto:
ho paura che sia un limite degli shapefile


2014-04-08 18:44 GMT+02:00 Rocco Pispico <[hidden email]>:
Ciao a tutti,
in QGis quando si esporta da postgis a shapefile se i campi della tavola sono più lunghi di 10 caratteri vengono tagliati e fissato un nome con un numero progressivo.
Ho provato ad impostare un alias nelle proprietà dei campi ma non viene mantenuto nell'export.
Avete da suggerirmi un modo furbo e veloce per non dover dover toccare tavole, query e viste su una cinquantina di campi di un po' di tavole e allo stesso tempo non dover usare postgres come un dbf.

Il fomato shapefile in output in questo lavoro è un vincolo.
Grazie

Rocco

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013


_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Export da postgis a shapefile

Paolo Corti
In reply to this post by Rocco Pispico
Ciao

2014-04-08 18:44 GMT+02:00 Rocco Pispico <[hidden email]>:

> Ciao a tutti,
> in QGis quando si esporta da postgis a shapefile se i campi della tavola
> sono più lunghi di 10 caratteri vengono tagliati e fissato un nome con un
> numero progressivo.
> Ho provato ad impostare un alias nelle proprietà dei campi ma non viene
> mantenuto nell'export.
> Avete da suggerirmi un modo furbo e veloce per non dover dover toccare
> tavole, query e viste su una cinquantina di campi di un po' di tavole e allo
> stesso tempo non dover usare postgres come un dbf.
>
> Il fomato shapefile in output in questo lavoro è un vincolo.
> Grazie
>

puoi rinominare i campi in export con un alias, anziche' lasciarli
troncare al 10o carattere da PostgreSQL, usando la seguente sintassi
di ogr2ogr:

ogr2ogr myshape PG:"dbname='mydb' host='localhost' port='5432'
user='myuser' password='mypassword'" -sql "SELECT field1 as alias1,
the_geom FROM mytable"

oppure con pgsql2shp:

pgsql2shp -f "/path/to/shape" -h localhost -u myuser -P mypasswrord mydb
"SELECT field1 as alias1, the_geom FROM mytable'"

meglio ancora, definirti un OGR virtual format che puoi riusare anche
successivamente o per vedere direttamente su QGIS la tabella PostGIS
con gli stessi nomi che avresti sullo shapefile (pur rimanendo
invariati sul db), e quindi esportarli con tali alias:

<OGRVRTDataSource>
    <OGRVRTLayer name="remapped_layer">
        <SrcDataSource>PG:"dbname='mydb' host='localhost' port='5432'
user='myuser' password='mypassword'</SrcDataSource>
        <SrcSQL>SELECT field1 as alias1, the_geom FROM mytable</SrcSQL>
    </OGRVRTLayer>
</OGRVRTDataSource>

ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: Export da postgis a shapefile

Rocco Pispico
In reply to this post by Rocco Pispico
Ciao
come sempre la lista va più veloce dei miei test.
Grazie a Paolo, Gino e Diego per i suggerimenti che convergono su:

1) ogr2ogr -f "ESRI Shapefile" output.shp PG:"host=xxxx port=xxxx dbname=xxxx user=xxxx password=xxxx" nomelayerpostgis -sql "SELECT campotroppolungo1 AS C1, campotroppolungo2 AS C2 from nomelayerpostgis"

Testato, funzionante e veloce.

2) pgsql2shp -f "/path/to/shape" -h localhost -u myuser -P mypasswrord mydb
"SELECT field1 as alias1, the_geom FROM mytable'"

Non testato ma immagino funzioni.

3) meglio ancora, definirti un OGR virtual format che puoi riusare anche
successivamente o per vedere direttamente su QGIS la tabella PostGIS
con gli stessi nomi che avresti sullo shapefile (pur rimanendo
invariati sul db), e quindi esportarli con tali alias:

<OGRVRTDataSource>
    <OGRVRTLayer name="remapped_layer">
        <SrcDataSource>PG:"dbname='mydb' host='localhost' port='5432'
user='myuser' password='mypassword'</SrcDataSource>
        <SrcSQL>SELECT field1 as alias1, the_geom FROM mytable</SrcSQL>
    </OGRVRTLayer>
</OGRVRTDataSource>

anche questo non testato ma affascinante.

Grazie dell'aiuto.
Rocco

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013