[Gvsig_desarrolladores] Importar DBF a PostgreSQL

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Vie Mar 10 00:51:29 CET 2017


El 9 de marzo de 2017, 15:26, Iago Alonso Alonso <ialonso en 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
> <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>),
> 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 en 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
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170310/57609ac7/attachment.html>


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