<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Well, now I tested all with the DefaultPortrayService, but I still get the same distorted picture.... :-(<br><br>Here is the code of my TestFrame, the TestPanel class is just a simple JPanel with an overridden paintComponent that does a drawImage.<br><br>Does someone have an idea ?<br><br>Thanks,<br><br>Sam<br><br>/*<br>&nbsp;* To change this template, choose Tools | Templates<br>&nbsp;* and open the template in the editor.<br>&nbsp;*/<br><br>package testgo2nm;<br><br><br>import java.awt.Dimension;<br>import java.awt.RenderingHints;<br>import java.net.URL;<br>import java.util.logging.Level;<br>import java.util.logging.Logger;<br>import org.geotoolkit.display.exception.PortrayalException;<br>import org.geotoolkit.display2d.service.DefaultPortrayalService;<br>import org.geotoolkit.gui.swing.go2.JMap2D;<br>import org.geotoolkit.map.MapBuilder;<br>import org.geotoolkit.map.MapContext;<br>import org.geotoolkit.map.MapLayer;<br>import org.geotoolkit.referencing.CRS;<br>import org.geotoolkit.referencing.crs.DefaultGeographicCRS;<br>import org.geotoolkit.wms.WebMapServer;<br>import org.geotoolkit.wms.map.WMSMapLayer;<br>import org.geotoolkit.wms.xml.AbstractWMSCapabilities;<br>import org.opengis.referencing.FactoryException;<br>import org.opengis.referencing.NoSuchAuthorityCodeException;<br>import org.opengis.referencing.crs.CoordinateReferenceSystem;<br>import org.opengis.referencing.operation.TransformException;<br><br>/**<br>&nbsp;*<br>&nbsp;* @author<br>&nbsp;*/<br>public class TestFrame extends javax.swing.JFrame{<br>&nbsp;&nbsp;&nbsp; JMap2D mapWidget;<br>&nbsp;&nbsp;&nbsp; final MapLayer layer;<br><br>&nbsp;&nbsp;&nbsp; //If we want to test the display using a simple image, then enable testpanel and add it to the JFrame instead of mapWidget<br>&nbsp;&nbsp;&nbsp; //see below. !We need the picture some_picture.png!<br>&nbsp;&nbsp;&nbsp; TestPanel testPanel;<br><br>&nbsp;&nbsp;&nbsp; MapContext context;<br><br>&nbsp;&nbsp;&nbsp; public TestFrame(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setSize(400, 400);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget = new JMap2D();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context = MapBuilder.createContext(DefaultGeographicCRS.WGS84);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CoordinateReferenceSystem objectCRS = null;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objectCRS = CRS.decode("EPSG:4326");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NoSuchAuthorityCodeException ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (FactoryException ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.getContainer().setContext(context);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.getCanvas().setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.getCanvas().getController().setAutoRepaint(true);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // add(mapWidget);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // testPanel = new TestPanel();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // add(testPanel);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mapWidget.getCanvas().getController().setObjectiveCRS(objectCRS);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (TransformException ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //mapWidget.getCanvas().getController() is the place to change the point of view, dimension, coordinates, etc<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Obj : " + mapWidget.getCanvas().getObjectiveCRS().toWKT());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Dev : " + mapWidget.getCanvas().getDeviceCRS().toWKT());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Dis : " + mapWidget.getCanvas().getDisplayCRS().toWKT());<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Context: (" + context.getAreaOfInterest().getLowerCorner().getCoordinate()[0]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + ":" + context.getAreaOfInterest().getLowerCorner().getCoordinate()[1] + ") , ("<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + context.getAreaOfInterest().getUpperCorner().getCoordinate()[0] + ":" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.getAreaOfInterest().getUpperCorner().getCoordinate()[1]+")" );<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Let's grab an image from WMS<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebMapServer server = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //final String url = "http://www2.demis.nl/WMS/wms.asp?wms=BlueMarble";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //final String featureName = "EarthImage";<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String url = "http://www2.demis.nl/WMS/wms.asp?wms=WorldMap";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String featureName = "Countries";<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String version = "1.1.1";<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebMapServer temp = null;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp = new WebMapServer(new URL(url),version);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server = temp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(server != null){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layer = new WMSMapLayer(server,featureName);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; layer = MapBuilder.createEmptyMapLayer();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final AbstractWMSCapabilities capa = server.getCapabilities();&nbsp; //Ask the server for its capabilities<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Display the layers names<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(capa instanceof org.geotoolkit.wms.xml.v130.WMSCapabilities){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.geotoolkit.wms.xml.v130.WMSCapabilities cp13 =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (org.geotoolkit.wms.xml.v130.WMSCapabilities) capa;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(org.geotoolkit.wms.xml.v130.Layer tmpLayer : cp13.getCapability().getLayer().getLayer()){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Layer v130 " + tmpLayer.getName());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else if(capa instanceof org.geotoolkit.wms.xml.v111.WMT_MS_Capabilities){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org.geotoolkit.wms.xml.v111.WMT_MS_Capabilities cp11 =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (org.geotoolkit.wms.xml.v111.WMT_MS_Capabilities) capa;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(org.geotoolkit.wms.xml.v111.Layer tmpLayer : cp11.getCapability().getLayer().getLayer()){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Layer v111 " + tmpLayer.getName());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.layers().add(layer);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; testPanel = new TestPanel(DefaultPortrayalService.portray(context, context.getAreaOfInterest(), new Dimension(400, 400), false));<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add(testPanel);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (PortrayalException ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br><br /><hr />Plus de 2 mio de Suisses utilisent Windows Live ! <a href='http://www.microsoft.com/switzerland/windows/fr/windowslive/default.aspx' target='_new'>Découvrez les services gratuits.</a></body>
</html>