1

Sat Ir Picture displayed in JFrame

Satellite Pic MapComponent saved to tiff File

All labels for longitude lines at bottom and latitude lines on left and right of the map look fine when viewed in JFrame like the one used in https://docs.geotools.org/latest/userguide/tutorial/raster/image.html

File saved using saveImage function in https://docs.geotools.org/latest/userguide/library/render/gtrenderer.html

Using mapContent.getMaxBounds() as envelope to create and save the image. The green background filling of rectangle for Graphic2D image used to save in the file.
The same map seem to appear in both images attached, yet the labels at the bottom and on the right of the map (JFrame) are not included in the saved file.

How do I debug this issue?

I am not really familiar with this geographical representations although I am learning a bit.

1
  • It looks like you have ended up with the size of the raster not the other layers,
    – Ian Turton
    Commented May 2, 2020 at 8:45

1 Answer 1

1

I've had good results using this approach:

  public void drawMapToImage(File outputFile, String outputType) {
    JMapPane mapPane = frame.getMapPane();

    try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
        ImageOutputStream outputImageFile = ImageIO.createImageOutputStream(fileOutputStream);) {
      RenderedImage bufferedImage = mapPane.getBaseImage();
      ImageIO.write(bufferedImage, outputType, outputImageFile);
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
1
  • drawMapToImage() method proposed keeps failing mapPane.getBaseImage() returning null bufferedImage. Neither frame nor mapPane is null when used. ImageIO.write() creates an empty file. I tried using outputType="image/jpeg" ,"jpeg", and "tiff" with same result.
    – Isidora
    Commented May 4, 2020 at 22:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.