Hi Martin,

thanks for your help. You were absolutly right, the gc.show()-method created
the frame. But that actually means, that my JMapPane isn't working at all.
The code now looks like that:

MapContext mc = new DefaultMapContext();
StyleBuilder sb = new StyleBuilder(); 
org.geotools.styling.Style style =
sb.createStyle(sb.createRasterSymbolizer());

StreamingRenderer renderer = new StreamingRenderer();
                        
HashMap hints = new HashMap(); 
hints.put("memoryPreloadingEnabled", Boolean.TRUE); 
renderer.setRendererHints(hints);

mc.addLayer(gc, style);
JMapPane mp = new JMapPane(new BorderLayout(), true, renderer, mc);
mp.setBounds(230, 10, 600, 600);
mp.setReset(true);
mp.repaint();
                        
this.getContentPane().add(mp);

Nothing appears on my frame, BUT, if I click on the area where the JMapPane
SHOULD be, I get a NullPointerException, so obviously I'm still missing
something. I think it's a problem with the MapContext or the Renderer, maybe
some additional options need to be set?! 

Greetings and thanks for your help again, Salke


Martin Schmitz-5 wrote:
> 
> Hello Salke,
> 
> I think your "strange" behavior comes from:
> 
> gc.show();
> 
> This (test method) opens a frame and shows the grid.
> Comment this line out to avoid this.
> To show your grid in "your own" JMapPane/MapContext it is additionally
> necessary to invoke
> 
> JMapPane.setReset(true);
> JMapPane.repaint();
> 
> after adding a new layer to the MapContext.
> 
> @Geotools-Developers:
> Maybe it is time to provide the JavaDoc for JMapPane, where also the
> setReset(.) issue is mentioned. There often are the same questions on
> this list...
> 
> Kind regards
> 
> Martin Schmitz
> 
> 
> Salke schrieb:
>> Hi,
>> 
>> I started using geotools today, so I am pretty new to this impressive
>> library. I am using a JMapPane to display raster data I got from a WMS
>> (geoserver). The layer is displayed properly, BUT: As soon as I create
>> the
>> JMapPane-object, it's opening its own frame displaying the loaded layer
>> inside. 0o Looking at the documentation I found out that JMapPane is a
>> subclass of a "normal" JPanel, how can it open it's own frame? :X
>> 
>> I want the JMapPane to be displayed inside my mainframe, which is a
>> normal
>> JFrame. 
>> 
>> Another question: How can I use the controls for Zooming and Panning I
>> read
>> about in some posts and parts of the documentation) At the moment, it
>> looks
>> like a static image beeing simply displayed. Some source is following,
>> maybe
>> it helps to find a way out of the magic frame-creation :)
>> 
>>                                     URL myURL = new
>> URL("http://localhost:8080/geoserver/wms";);
>>                      WebMapServer wms = new WebMapServer(myURL);
>>                      GetMapRequest mapRequest = wms.createGetMapRequest();
>>                      mapRequest.addLayer(currentLayer);
>>                      mapRequest.setFormat("image/png");
>>                      mapRequest.setDimensions(600, 600);
>>                      mapRequest.setBBox(currentLayer.getLatLonBoundingBox());
>>                      
>>                      BufferedImage image =
>> ImageIO.read(wms.issueRequest(mapRequest).getInputStream());
>>                      GeneralEnvelope envelope = new
>> GeneralEnvelope(currentLayer.getLatLonBoundingBox());
>> 
>>                      GridCoverageFactory factory = new 
>> GridCoverageFactory(); 
>>                      GridCoverage2D gc = factory.create("GridCoverage", 
>> image, envelope);
>>                      gc.show();
>>                  
>>                      MapContext mc = new DefaultMapContext();
>>                      StyleBuilder sb = new StyleBuilder(); 
>>                      org.geotools.styling.Style style =
>> sb.createStyle(sb.createRasterSymbolizer());
>> 
>>                      StreamingRenderer renderer = new StreamingRenderer();
>>                      
>>                      HashMap hints = new HashMap(); 
>>                      hints.put("memoryPreloadingEnabled", Boolean.TRUE); 
>>                      renderer.setRendererHints(hints);
>> 
>>                      mc.addLayer(gc, style);
>>                      JMapPane mp = new JMapPane(null, true, renderer, mc);
>>                      
>>                      // this points to this class that is a subclass of 
>> JFrame
>>                      // the JMapPane is even "displayed" (own frame) without 
>> this line 0o
>>                      this.getContentPane().add(mp);
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Strange-JMapPane-behaviour-tf3736310.html#a10602763
Sent from the geotools-gt2-users mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to