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