Hola, debe ser posible instanciar una capa WMS por código usando el constructor que no tiene parámetros, así tu extensión funcionaría en una instalación de gvSIG 1.11.
Mira el método: protected FLayer getLayerPlain() de la clase WMSParamsPanel (extWMS). Si pones un punto de interrupción y observas cómo se está instanciando puedes replicar eso en tu extensión. No lo he probado pero tiene pinta de que funcionará. Saludos, Juan Lucas Domínguez Rubio --- Prodevelop SL, Valencia (España) Tlf.: 96.351.06.12 -- Fax: 96.351.09.68 http://www.prodevelop.es <http://www.prodevelop.es/> --- ________________________________ De: [email protected] en nombre de Jorge Piera Llodrá Enviado el: vie 22/07/2011 10:18 Para: [email protected]; "http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/como-contribuir-en-gvsig/contribuciones-y-parches-al-codigo-de-gvsig/contribuciones-y-parches-al-codigo-de-gvsig/"@dunas.gva.es Asunto: Re: [Gvsig_desarrolladores] ERROR AL MIGRAR WMS 1.1 a la 1.11 Hola Ana. Le he pegado un vistazo rápido y tienes razón. El constructor FLyrWMS(Map) no se incializa correctamente e intenta usar un objeto antes de ser instanciado. En la línea 302, donde se hace la llamada a initServerScale(), introduce lo siguiente antes de la invocación: try { wms = getDriver(); } catch (Exception e) { throw new LoadLayerException("Error creating the driver" ,e); } Con eso consigues que se instancie el driver antes de utilizarlo y la capa se carga correctamente. Si no es mucha molestia, podrías crear un ticket en OSOR y adjuntar el parche propuesto (si es que te funciona, claro). Un saludo, Jorge [1] http://www.gvsig.org/web/projects/gvsig-desktop/docs/devel/como-contribuir-en-gvsig/contribuciones-y-parches-al-codigo-de-gvsig/contribuciones-y-parches-al-codigo-de-gvsig On 07/22/2011 09:36 AM, Ana Belen Garcia wrote: Hola a todos de nuevo, Estoy intentando cargar una capa WMS desde código, que me funcionaba perfectamente en la version 1.1 y en la version 1.11 no funciona, concretamente la de Catastro y me aparece un error. Mi código es el siguiente: if (actionCommand.compareTo(" CARGARCAPASWMS") == 0){ View v; MapControl mapCtrl; try { Map<String, Object> args= new HashMap<String,Object>(); args.put("host","http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx"); args.put("layer", "Catastro"); args.put("SRS", "EPSG:23030"); args.put("wmsTransparency",true); FLyrWMS capaWMS; v = (View) PluginServices.getMDIManager().getActiveWindow(); mapCtrl = v.getMapControl(); FLayers lyrs = mapCtrl.getMapContext().getLayers(); lyrs.setAllActives(false); capaWMS = new FLyrWMS(args); capaWMS.setTransparency(95); capaWMS.setActive(true); mapCtrl.getMapContext().getLayers().addLayer(capaWMS); } catch (LoadLayerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } El error que me aparece en consola es el siguiente: DEBUG [AWT-EventQueue-1] (MDIFrame.java:673) - Execute command:CARGARCAPASWMS 20-jul-2011 11:14:46 org.gvsig.remoteClient.utils.Downloader run INFO: downloading 'http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1' to: C:\DOCUME~1\usuario\CONFIG~1\Temp\tmp-andami\wms_capabilities1311153286937.xml DEBUG [AWT-EventQueue-1] (NotificationManager.java:104) - Error no capturado por el usuario java.lang.NullPointerException at com.iver.cit.gvsig.fmap.layers.FLyrWMS.getServerMinScale(FLyrWMS.java:1307) at com.iver.cit.gvsig.fmap.layers.FLyrWMS.getCorrectedServerMinScale(FLyrWMS.java:1280) at com.iver.cit.gvsig.fmap.layers.FLyrWMS.initServerScale(FLyrWMS.java:1258) at com.iver.cit.gvsig.fmap.layers.FLyrWMS.<init>(FLyrWMS.java:302) at com.iver.cit.gvsig.myplugin.LoadProvinciasExtension.execute(LoadProvinciasExtension.java:1689) at com.iver.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:89) at com.iver.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:674) 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.AbstractButton.doClick(AbstractButton.java:357) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1170) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1211) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3260) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at com.iver.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:58) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) WARN [AWT-EventQueue-1] (PluginServices.java:136) - Plugin com.iver.core -- No se encontró la traducción para Consola de información WARN [AWT-EventQueue-1] (PluginServices.java:136) - Plugin com.iver.core -- No se encontró la traducción para Activa la ventana DEBUG [AWT-EventQueue-1] (NewSkin.java:413) - Activando Consola de información DEBUG [AWT-EventQueue-1] (MDIFrame.java:1224) - Memoria usada 64951 KB DEBUG [AWT-EventQueue-1] (MDIFrame.java:1224) - Memoria usada 65109 KB DEBUG [AWT-EventQueue-1] (MDIFrame.java:1224) - Memoria usada 65167 KB Viewport despues: Datos del viewPort: Extent=java.awt.geom.Rectangle2D$Double[x=100479.007812,y=3988001.25,w=521220.492188,h=300898.75] adjustedExtent=java.awt.geom.Rectangle2D$Double[x=100479.007812,y=3950088.763961762,w=521220.492188,h=376723.7220764752] imageSize=java.awt.Dimension[width=1111,height=803] escale=0.0021315355337166433 trans=AffineTransform[[0.002131535533717, 0.0, -214.17457554387016], [0.0, -0.002131535533717, 9222.754561719352]] Cambiando tamaño. Ancho del tree=194 1 Ancho del TOC=150 Tiempo de dibujado:94 mseg. Memoria libre:38197 KB Por lo que he podido observar en el código de la FLyrWMS me falla cuando ejecuta el initServerScale() y dentro de este método en: double minScale = getCorrectedServerMinScale(); double maxScale = getCorrectedServerMaxScale(); Cuyos métodos son los siguientes: public double getCorrectedServerMinScale() { return (getServerMinScale()*MapContext.getScreenDPI())/WMS_DPI; } public double getCorrectedServerMaxScale() { return (getServerMaxScale()*MapContext.getScreenDPI())/WMS_DPI; } Porque ocurre esto, tengo que pasarle algún otro argumento para que no falle. Por favor necesito ayuda. Gracias. -- _______________________________________________ gvSIG_desarrolladores mailing list [email protected] http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores -- Jorge Piera Llodrá gvSIG software architect PRODEVELOP e-mail: [email protected] http://www.prodevelop.es <http://www.prodevelop.es/> http://www.gvsig.org <http://www.gvsig.org/>
_______________________________________________ gvSIG_desarrolladores mailing list [email protected] http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
