[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