[Gvsig_desarrolladores] Acceso a los datos de un shape

Carlos Sánchez Periñán csanchez en prodevelop.es
Vie Sep 11 14:52:10 CEST 2009


Domingo Baeza Díaz escribió:
> Buenos dias
>
> En la version 2.0 quiero obtener el numero de registros de un shape, y 
> los valores de cada feature, para ello hago lo qu he visto en la guia de 
> desarrolladores
>
> DataManager manager;
> DataParameters params;
> FeatureStore store;
> FeatureSet features;
> Feature feature; manager = DALLocator.getDataManager();
> params = manager.createStoreParameters("Shape")
> params.setDynValue("shpfilename","c:/temp/prueba.shp");
> store = (FeatureStore)manager.createStore(params);
> features = store.getFeatureSet();
> DisposableIterator it = features.iterator();
> while( it.hasNext() ) {
>     feature = (Feature)it.next();
>     System.out.println(feature.getString("NOMBRE"));
> }
> it.dispose();
> features.dispose();
> store.dispose();
>
> Pero cuando lo ejecuto me sale el error de
>
> 'Shape not registered'.
>     at 
> org.gvsig.fmap.dal.impl.DefaultDataManager.createStoreParameters(DefaultDataManager.java:178)
>     at 
> es.prueba.acceso.shape.extensiones.PruebaExtension.execute(PruebaExtension.java:36)
>     at 
> com.iver.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89)
>     at 
> com.iver.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:673)
>     at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
>     at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
>     at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
>     at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
>     at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
>     at 
> javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
>     at 
> javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
>     at 
> java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
>     at java.awt.Component.processMouseEvent(Component.java:5517)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
>     at java.awt.Component.processEvent(Component.java:5282)
>     at java.awt.Container.processEvent(Container.java:1966)
>     at java.awt.Component.dispatchEventImpl(Component.java:3984)
>     at java.awt.Container.dispatchEventImpl(Container.java:2024)
>     at java.awt.Component.dispatchEvent(Component.java:3819)
>     at 
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
>     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
>     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
>     at java.awt.Container.dispatchEventImpl(Container.java:2010)
>     at java.awt.Component.dispatchEvent(Component.java:3819)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
>     at 
> com.iver.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:58)
>     at 
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
>     at 
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
>     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
>     at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
>
> Un saludo
>   
Hola Domingo,
Puede que tu problema es que te falte hacer el cast para que reciba 
correctamente los parametros de un SHP para ello hay un 
SHPStoreParameters especifico.
/                
cambia las lineas /

params = manager.createStoreParameters("Shape")
params.setDynValue("shpfilename","c:/temp/prueba.shp");

por estas otras
/                params = (SHPStoreParameters) 
manager.createStoreParameters("Shape");
                params.setFile(new File("c:/temp/prueba.shp"));/
/                DataStore store = manager.createStore(params);/

Si aún así no consigues crearte un store vigila a ver si está fallando 
la inciailaización de la librería libFMap-dalfile, ya que el error que 
te devuelve es porque no encuentra el store Provider de shapefiles 
registrado dentro del manager o se esta llamando mal.

Espero que te ayude.

Saludos.

-- 

	Carlos Sánchez Periñán
	Equipo desarrollo GIS
	Prodevelop S.L.
	Tel :  963510612
	E-mail : *csanchez en prodevelop.es* <mailto:csanchez en prodevelop.es>




More information about the gvSIG_desarrolladores mailing list