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 |
ho paura che sia un limite degli shapefile 2014-04-08 18:44 GMT+02:00 Rocco Pispico <[hidden email]>:
_______________________________________________ [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 |
Confermo quanto detto da Gino. --------------------------------------------------- http://www.linkedin.com/in/stefanoiacovella http://twitter.com/#!/Iacovellas Il 08/apr/2014 14:56 "Gino Pirelli" <[hidden email]> ha scritto:
_______________________________________________ [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 |
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 |
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 PostGIScon 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 |
Free forum by Nabble | Edit this page |