Class TLcdGXYViewPNGEncoder

java.lang.Object
com.luciad.wms.server.viewencoder.TLcdGXYViewPNGEncoder
All Implemented Interfaces:
ILcdGXYViewEncoder, ILcdWMSFeatureInfoRequestEncoder

Implementation of ILcdGXYViewEncoder and ILcdWMSFeatureInfoRequestEncoder that can encode a ILcdGXYView as PNG, with or without selection.

This encoder uses the ObjectPlanet PNG encoder library.

This view encoder allows to set the compression level (see setCompressionLevel(int), getCompressionLevel()). This make it possible to determine a trade-off between compression and speed. The possible values are [0 - 9], with 0 indicating no compression and 9 indicating best compression. The default value is set to 6.

See Also:
  • Constructor Details

    • TLcdGXYViewPNGEncoder

      public TLcdGXYViewPNGEncoder()
      Creates a new TLcdGXYViewPNGEncoder object.
  • Method Details

    • encodeGXYView

      public String encodeGXYView(ILcdGXYView aGXYView, OutputStream aOutputStream, ALcdRequestContext aRequestContext) throws IOException
      Description copied from interface: ILcdGXYViewEncoder
      Encodes a given ILcdGXYView to the provided OutputStream.
      Specified by:
      encodeGXYView in interface ILcdGXYViewEncoder
      Parameters:
      aGXYView - the ILcdGXYView to be encoded. You can rely on its getImage method to access the rendered view.
      aOutputStream - the OutputStream to write the encoded view to.
      aRequestContext - an ALcdRequestContext giving access to the request parameters. Can be null.
      Returns:
      the content type used by the encoding. This is set as content type on the HTTP(S) response and cannot be null.
      Throws:
      IOException - if an I/O exception occurs during the encoding
    • getContentType

      public String getContentType()
      Description copied from interface: ILcdGXYViewEncoder
      Returns a content type that identifies the encoding approach used by this encoder and that gets advertised in the OGC service capabilities. This is usually the MIME type of the encoded result, but this is not required: it is up to the encodeGXYView method to return the actually used content type for a given ILcdGXYView.
      Specified by:
      getContentType in interface ILcdGXYViewEncoder
      Specified by:
      getContentType in interface ILcdWMSFeatureInfoRequestEncoder
      Returns:
      the content type that identifies the encoding approach used by this encoder
    • setCompressionLevel

      public void setCompressionLevel(int aCompressionLevel)
      Sets the compression level. The possible values are [0 - 9], with 0 indicating no compression and 9 indicating best compression.
      Parameters:
      aCompressionLevel - A compression level.
      See Also:
    • getCompressionLevel

      public int getCompressionLevel()
      Returns the compression level. The possible values are [0 - 9], with 0 indicating no compression and 9 indicating best compression.
      Returns:
      the compression level.
      See Also:
    • encode

      public void encode(ILcdGXYLayerSubsetList aSubsetList, OutputStream aOutputStream, ILcdGXYView aGXYView) throws jakarta.servlet.ServletException
      Description copied from interface: ILcdWMSFeatureInfoRequestEncoder
      Encodes the given selection in the TLcdGXYLayerSubsetList from a given ILcdGXYView and sends it to the given OutputStream.
      Specified by:
      encode in interface ILcdWMSFeatureInfoRequestEncoder
      Parameters:
      aSubsetList - a TLcdGXYLayerSubsetList containing the selection to be encoded.
      aOutputStream - the OutputStream to write the output to.
      aGXYView - the ILcdGXYView in which the elements are selected .
      Throws:
      jakarta.servlet.ServletException - for writing and sending exceptions.