[Gvsig_desarrolladores] Importar DBF a PostgreSQL

Iago Alonso Alonso ialonso en enxenio.es
Jue Mar 9 15:26:05 CET 2017


Hola, me ha surgido una duda sobre los pasos a seguir para importar un
DBF a PostgreSQL. Antes tenía una carpeta con 4 ficheros: 

- DBF 

- PRJ 

- SHP 

- SHX 

Y cuando querías importarlos a una tabla a PostgreSQL, con cargar el SHP
(intuyo que gvSIG carga el resto automáticamente) llegaba. El problema
es que ahora tengo una carpeta que sólo tiene: 

- DBF 

- PRJ 

La duda que tengo es cómo obtengo el FeatureSet. Para el caso de los
ficheros SHP, en el código estaba puesto:

DataManager manager = DALLocator.getDataManager();
DataParameters params = manager.createStoreParameters("Shape"); 

File fichero = new File(path);
params.setDynValue("shpfile",fichero); 

IProjection srs = CRSFactory.getCRS(EPSG25829);
params.setDynValue("CRS", srs); 

DataStore store = manager.createStore((DataStoreParameters) params); 

FLayer capa = (FLyrVect)
LayerFactory.getInstance().createLayer(fichero.getName(), store); 

Y después se usaba un _((FLyrVect) capa).getFeatureStore()_. Entonces,
para el caso del DBF, he cambiado de la siguiente forma: 

DataManager manager = DALLocator.getDataManager();
DataParameters params = manager.createStoreParameters("DBF"); 

File fichero = new File(path);
params.setDynValue("dbffile",fichero); 

//Aquí no se necesita el CRS 

DataStore store = manager.createStore((DataStoreParameters) params); 

Pero ahora no sé cómo obtener el FeatureSet para crear la tabla en
PostgreSQL, ya que si uso el FLayer del SHP obtengo el error: 

org.gvsig.fmap.mapcontext.exceptions.LoadLayerException: Can't load the
layer DATOS.dbf.
at
org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:190)
............
Caused by: java.lang.IllegalArgumentException: The layer don't has a
geometry column.
at
org.gvsig.fmap.mapcontext.impl.DefaultMapContextManager.getLegend(DefaultMapContextManager.java:616)
at
org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.bindToDataStore(FLyrVect.java:193)
at
org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.setDataStore(FLyrVect.java:172)
at
org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:182)
... 4 more 

Que tiene sentido ya que en esta ocasión no dispongo de datos
geométricos. He intentado buscar un ejemplo de cómo procesar un DBF pero
no he encontrado nada, en la documentación he visto un ejemplo pero es
para crear un fichero DBF (Documentacion [1]), no importalo a
PostgreSQL.

¿Cómo se procesa correctamente un fichero DBF o dónde puedo ver un
ejemplo para guiarme? 

Saludos. 

Links:
------
[1]
http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0/featurestore/consumer-services/creacion-de-un-nuevo-almacen
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170309/ebe58e92/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores