[Gvsig_desarrolladores] ayuda para crear capa por código?

Cèsar Ordiñana cordin en disid.com
Lun Mayo 3 11:00:45 CEST 2010


Hola Eñaut,

Disculpa, te comenté lo del parámetro srs, pero en este caso no espera 
un String, sino un objeto de tipo IProjection. Necesitas llamar a la 
factoría de proyecciones, algo como:

params2.setDynValue("srs", CRSFactory.getCRS("EPGS:23030"));

Saludos,

agirrearri escribió:
> HOla a todos llevo unos días intentando crear una capa por código en gvsig
> descktop 2.0 pero le meto algun paraámetro mal, pongo el código y el error
> que me da a continuación. El error me da al crear la capa.
>
> Código:
>              manager2 = DALLocator.getDataManager();
> 		
> 		 params2  = manager2.createStoreParameters("Shape");
> 		 params2.getDynClass();
> 		 params2.setDynValue("shpfilename", "C:\\apoyos.shp");
> 		 params2.setDynValue("dbffilename", "C:\\apoyos.dbf");
> 		 params2.setDynValue("shxfilename", "C:\\apoyos.shx");
> 		 params2.setDynValue("encoding", "ISO-8859-1");
> 		 params2.setDynValue("srs", "EPGS:23030");
> 		 
> 		 LayerFactory fabricaDeCapa2 = LayerFactory.getInstance();
> 		 FLayer capa2 = fabricaDeCapa2.createLayer("apoyos", params2);
>
> Error:
> Can´t load the layer: apoyos 
> 	at
> org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:144)
> 	at org.gvsig.myextension.CargarPostGis.execute(CargarPostGis.java:90)
> 	at
> org.gvsig.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89)
> 	at org.gvsig.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:673)
> 	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
> 	at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
> 	at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
> 	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> 	at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> 	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
> 	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
> 	at java.awt.Component.processMouseEvent(Component.java:6263)
> 	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
> 	at java.awt.Component.processEvent(Component.java:6028)
> 	at java.awt.Container.processEvent(Container.java:2041)
> 	at java.awt.Component.dispatchEventImpl(Component.java:4630)
> 	at java.awt.Container.dispatchEventImpl(Container.java:2099)
> 	at java.awt.Component.dispatchEvent(Component.java:4460)
> 	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
> 	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
> 	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
> 	at java.awt.Container.dispatchEventImpl(Container.java:2085)
> 	at java.awt.Window.dispatchEventImpl(Window.java:2478)
> 	at java.awt.Component.dispatchEvent(Component.java:4460)
> 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> 	at
> org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:59)
> 	at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
> 	at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
> 	at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
> 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> Caused by: Exception intializing '{unknow}'.
> 	at
> org.gvsig.fmap.dal.impl.DefaultDataManager.intializeDataStore(DefaultDataManager.java:474)
> 	at
> org.gvsig.fmap.dal.impl.DefaultDataManager.createStore(DefaultDataManager.java:237)
> 	at
> org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:141)
> 	... 31 more
> Caused by: java.lang.reflect.InvocationTargetException
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at
> org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager.createObject(DefaultExtensionPointManager.java:224)
> 	at
> org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager.create(DefaultExtensionPointManager.java:69)
> 	at
> org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint$Extension.create(DefaultExtensionPoint.java:99)
> 	at
> org.gvsig.tools.extensionpoint.impl.DefaultExtensionPoint.create(DefaultExtensionPoint.java:267)
> 	at
> org.gvsig.fmap.dal.impl.DefaultDataManager.intializeDataStore(DefaultDataManager.java:468)
> 	... 33 more
> Caused by: Exception intializing 'Shape'.
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.getTheFeatureType(DBFStoreProvider.java:248)
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreProvider.getTheFeatureType(SHPStoreProvider.java:260)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.initFeatureType(DBFStoreProvider.java:234)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.init(DBFStoreProvider.java:110)
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreProvider.init(SHPStoreProvider.java:108)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.<init>(DBFStoreProvider.java:94)
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreProvider.<init>(SHPStoreProvider.java:101)
> 	... 42 more
> Caused by: Exception opening 'Shape'.
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.open(DBFStoreProvider.java:476)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.getTheFeatureType(DBFStoreProvider.java:246)
> 	... 48 more
> Caused by: Error while executing an action in resource 'MultiResource
> C:\apoyos.shp:: FileResource(C:\apoyos.shp), FileResource(C:\apoyos.shx),
> FileResource(C:\apoyos.dbf) (default)'.
> 	at
> org.gvsig.fmap.dal.resource.spi.AbstractResource.execute(AbstractResource.java:314)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider.open(DBFStoreProvider.java:464)
> 	... 49 more
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to
> org.cresques.cts.IProjection
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreParameters.getSRSID(SHPStoreParameters.java:127)
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreParameters.getSRS(SHPStoreParameters.java:147)
> 	at
> org.gvsig.fmap.dal.store.shp.SHPStoreProvider.loadMetadataValues(SHPStoreProvider.java:436)
> 	at
> org.gvsig.fmap.dal.store.dbf.DBFStoreProvider$4.run(DBFStoreProvider.java:470)
> 	at
> org.gvsig.fmap.dal.resource.spi.AbstractResource.performExecution(AbstractResource.java:323)
> 	at
> org.gvsig.fmap.dal.resource.spi.AbstractResource.execute(AbstractResource.java:312)
> 	... 50 more
>
>
> Alguien sabe que es lo que falla? Puede ser algun tipo de dato en
> setDynValue?
>
> Estoy atascado, por favoooooor.
>
> Gracias, atentamente Eñaut.
>   



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