[Gvsig_desarrolladores] ERROR AL MIGRAR WMS 1.1 a la 1.11

Juan Lucas Dominguez Rubio jldominguez en prodevelop.es
Vie Jul 22 12:33:10 CEST 2011


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: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Jorge Piera Llodrá
Enviado el: vie 22/07/2011 10:18
Para: gvsig_desarrolladores en listserv.gva.es; "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
	gvSIG_desarrolladores en listserv.gva.es
	http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
	  



-- 
Jorge Piera Llodrá
gvSIG software architect
PRODEVELOP
e-mail: jpiera en gvsig.com
http://www.prodevelop.es <http://www.prodevelop.es/> 
http://www.gvsig.org <http://www.gvsig.org/> 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20110722/54e52112/attachment.htm 


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