Muchas gracias por la aclaración, el código que había antes me estaba
confundiendo. 

Un saludo! 

El 10-03-2017 12:51 AM, Joaquin Jose del Cerro Murciano escribió:

> El 9 de marzo de 2017, 15:26, Iago Alonso Alonso <ialo...@enxenio.es> 
> escribió:
> 
>> 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)
> 
> No entiendo que quieres hacer. 
> Un dbf no tiene informacion geometrica (o lo asumiremos asi de momento), 
> ¿ Como vas a crear una capa a partir de el? 
> Como mucho podrias añadirlo como una tabla de gvSIG, pero sigo sin entender 
> para que. 
> Una vez ya has creado el store ya puedes acceder a los datos, de hecho el 
> metodo getFeatureSet, la unica forma de obtener un FeatureSet es del store no 
> de la layer.
> 
> En gvSIG estan los stores, las fuentes de datos, y con ellas se construten 
> las capas, que estan formadas por un store con informacion geografica mas 
> informacion sobre como debe "pintarse", la leyenda, y sirven para añadirlas a 
> una vista y visualizar las geoemtrias de esta. No puedes crear un layer a 
> partir de una fuente de datos, un store, que no tiene una columna geometria.
> 
> Si ya tienes un store... ¿ para que crear una capa a partir de el para luego 
> pedirle a la capa el store ? 
> Crea la capa si necesitas añadir los datos del store como una capa en una 
> vista, pero si has de operar con los datos usa directamente el store.
> 
> Un saludo 
> Joaquin
> 
>> ............
>> 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. 
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores@listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o darse 
>> de baja en esta lista, acuda a la siguiente dirección: 
>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores [2]
> 
> -- 
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelce...@gvsig.com
> jjdelce...@gvsig.org
> gvSIG Association
> www.gvsig.com [3]
> www.gvsig.org [4] 
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores@listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
> baja en esta lista, acuda a la siguiente dirección: 
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
 

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
[2]
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
[3] http://www.gvsig.com
[4] http://www.gvsig.org
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de 
baja en esta lista, acuda a la siguiente dirección: 
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a