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

Responder a