Buenos días a todos,<br><br> Estoy implementando una serie de conexiones WMS y me encuentro con la siguiente peculiaridad. Hago las mismas conexiones para diferentes capas y unas funcionan y otras no. Esas conexiones si funcionan si las cargo desde gvsig a mano y sin embargo haciendolas en código no. Pongo un ejemplo:<br>
<br><br> Cargo en código una conexión a Catastro:<br><br>View v;<br> MapControl mapCtrl;<br> <br> <br> try {<br> Map<String, Object> args= new HashMap<String,Object>();<br>
args.put("host","<a href="http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx">http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx</a>");<br> args.put("layer", "Catastro");<br>
args.put("SRS", "EPSG:23030");<br> args.put("wmsTransparency", true);<br> FLyrWMS capaWMS;<br> v = (View) PluginServices.getMDIManager().getActiveWindow();<br>
mapCtrl = v.getMapControl();<br> <br> FLayers lyrs = mapCtrl.getMapContext().getLayers();<br> lyrs.setAllActives(false);<br>
<br> <br> capaWMS = new FLyrWMS(args);<br> <br> capaWMS.setTransparency(95);<br> capaWMS.setActive(true);<br>
mapCtrl.getMapContext().getLayers().addLayer(capaWMS);<br> } catch (LoadLayerException e) {<br> // TODO Auto-generated catch block<br> e.printStackTrace();<br>
} <br><br><br>Funciona Perfectamente.<br><br>Cargo en código una conexión a la ortofoto de la junta de andalucía del 2007.<br>View v;<br> MapControl mapCtrl;<br> <br>
<br> Map<String, Object> args= new HashMap<String,Object>();<br> args.put("host","<a href="http://www.ideandalucia.es/wms/ortofoto2007?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1">http://www.ideandalucia.es/wms/ortofoto2007?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1</a>");<br>
args.put("layer", "oca10_2007");<br> args.put("SRS", "EPSG:23030");<br> // args.put("format", "image/jpeg");<br>
args.put("wmsTransparency", true);<br> <br> <br> <br> <br> FLyrWMS capaWMS;<br>
v = (View) PluginServices.getMDIManager().getActiveWindow();<br> mapCtrl = v.getMapControl();<br> FLayers lyrs = mapCtrl.getMapContext().getLayers();<br>
lyrs.setAllActives(false);<br> <br> try {<br> capaWMS = new FLyrWMS(args);<br> <br> <br>
capaWMS.setActive(true);<br> mapCtrl.getMapContext().getLayers().addLayer(capaWMS);<br> } catch (LoadLayerException e) {<br> // TODO Auto-generated catch block<br>
e.printStackTrace();<br> } <br><br>Funciona correctamente.<br>Cargo una conexión a la ortofoto de la junta de 1956:<br>View v;<br> MapControl mapCtrl;<br>
<br> <br> Map<String, Object> args= new HashMap<String,Object>();<br> args.put("host","<a href="http://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_Ortofoto_Andalucia_1956?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1">http://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_Ortofoto_Andalucia_1956?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1</a>");<br>
args.put("layer", "ortofoto_1956");<br> args.put("SRS", "EPSG:23030");<br> // args.put("format", "image/jpeg");<br>
args.put("wmsTransparency", true);<br> args.put("Name","Capa WMS"); <br> <br> <br> <br>
FLyrWMS capaWMS;<br> v = (View) PluginServices.getMDIManager().getActiveWindow();<br> mapCtrl = v.getMapControl();<br> FLayers lyrs = mapCtrl.getMapContext().getLayers();<br>
lyrs.setAllActives(false);<br> <br> try {<br> capaWMS = new FLyrWMS(args);<br> <br> <br>
capaWMS.setActive(true); <br> mapCtrl.getMapContext().getLayers().addLayer(capaWMS);<br> } catch (LoadLayerException e) {<br> // TODO Auto-generated catch block<br>
e.printStackTrace();<br> } <br><br>Me la carga en el TOC, pero me salta el siguiente error:<br>java.lang.NullPointerException<br> at com.iver.cit.gvsig.fmap.layers.FLyrWMS.drawTile(FLyrWMS.java:1130)<br>
at com.iver.cit.gvsig.fmap.layers.FLyrWMS.draw(FLyrWMS.java:764)<br> at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)<br> at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)<br>
at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)<br> at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)<br> at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)<br>
at java.lang.Thread.run(Thread.java:619)<br>Tiling.print(): tile 0 de 2<br>, Extent = java.awt.geom.Rectangle2D$Double[x=100479.00781200003,y=3950028.1935517555,w=501154.72676104406,h=376355.45398363564] tile: java.awt.Rectangle[x=0,y=0,width=1024,height=769]<br>
DEBUG [Thread-44] (NotificationManager.java:104) - <br>java.lang.NullPointerException<br> at com.iver.cit.gvsig.fmap.layers.FLyrWMS.drawTile(FLyrWMS.java:1130)<br> at com.iver.cit.gvsig.fmap.layers.FLyrWMS.draw(FLyrWMS.java:764)<br>
at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)<br> at com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)<br> at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)<br>
at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)<br> at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)<br> at java.lang.Thread.run(Thread.java:619)<br>
<br>Sin embargo esta capa si funciona si la cargo en gvisg desde la pestaña Añadir capa WMS. La ortofoto de la junta del 2009 tampoco funciona.<br>¿Por qué puede ser?<br>Además se va a la siguiente linea de código en la clase FLYWMS.<br>
<b> if ((vp.getAdjustedExtent().getMinX() > extent.getMaxX()) ||<br> (vp.getAdjustedExtent().getMinY() > extent.getMaxY()) ||<br> (vp.getAdjustedExtent().getMaxX() < extent.getMinX()) ||<br>
(vp.getAdjustedExtent().getMaxY() < extent.getMinY()))</b><br><br><br>perteneciente al procedimiento:<br><b>private boolean drawTile(Graphics2D g, ViewPort vp, Cancellable cancel, int tile, double scale, int nLyr) throws LoadLayerException, ReadDriverException </b><br>
<br>implementado en esta clase.<br><br><br>Espero vuestra ayuda.<br>Gracias por todo.<br><br>Un Saludo.<br><br>