Interface Graphic

  • All Superinterfaces:
    Graphic, GraphicFill, GraphicLegend, GraphicLegend, GraphicStroke
    All Known Implementing Classes:
    GraphicImpl

    public interface Graphic
    extends GraphicLegend, Graphic, GraphicFill, GraphicStroke
    A Graphic is a "graphical symbol" with an inherent shape, color(s), and possibly size.

    A "graphic" can very informally be defined as "a little picture" and can be of either a raster or vector graphic source type. The term graphic is used since the term "symbol" is similar to "symbolizer" which is used in a difference context in SLD. The graphical symbol to display can be provided either as an external graphical resource or as a Mark.
    Multiple external URLs and marks can be referenced with the proviso that they all provide equivalent graphics in different formats. The 'hot spot' to use for positioning the rendering at a point must either be inherent from the external format or be defined to be the "central point" of the graphic.

    The details of this object are taken from the OGC Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.:

    
     <xsd:element name="Graphic">
       <xsd:annotation>
         <xsd:documentation>
           A "Graphic" specifies or refers to a "graphic symbol" with inherent
           shape, size, and coloring.
         </xsd:documentation>
       </xsd:annotation>
       <xsd:complexType>
         <xsd:sequence>
           <xsd:choice minOccurs="0" maxOccurs="unbounded">
             <xsd:element ref="sld:ExternalGraphic"/>
             <xsd:element ref="sld:Mark"/>
           </xsd:choice>
           <xsd:sequence>
             <xsd:element ref="sld:Opacity" minOccurs="0"/>
             <xsd:element ref="sld:Size" minOccurs="0"/>
             <xsd:element ref="sld:Rotation" minOccurs="0"/>
           </xsd:sequence>
         </xsd:sequence>
       </xsd:complexType>
     </xsd:element>
     

    Renderers can ue this information when displaying styled features, though it must be remembered that not all renderers will be able to fully represent strokes as set out by this interface. For example, opacity may not be supported.

    Notes:

    • The graphical parameters and their values are derived from SVG/CSS2 standards with names and semantics which are as close as possible.
    TODO:
    REVISIT: There are no setter methods in this interface, is this a problem?
    • Field Detail

      • DEFAULT

        static final Graphic DEFAULT
        A default Graphic instance.

        For some attributes the standard does not define a default, so a reasonable value is supplied.

      • NULL

        static final Graphic NULL
        Indicates an absense of graphic.

        This value is used to indicate that the Graphics based opperation should be skipped. Aka this is used by Stroke.Stroke as place holders for GRAPHIC_FILL and GRAPHIC_STROKE.

    • Method Detail

      • getAnchorPoint

        AnchorPoint getAnchorPoint()
        Location inside of the Graphic (or Label) to position the main-geometry point.

        The coordinates are provided as 0.0 to 1.0 range amounting to a percentage of the graphic width/height. So the default of 0.5/0.5 indicates that the graphic would be centered.

        Please keep in mind that a system may shuffle things around a bit in order to prevent graphics from overlapping (so this AnchorPoint is only a hint about how things should be if there is enough room).

        Specified by:
        getAnchorPoint in interface Graphic
        Specified by:
        getAnchorPoint in interface GraphicLegend
        Returns:
        AnchorPoint , if null should use a default point X=0.5 Y=0.5
      • setAnchorPoint

        void setAnchorPoint​(AnchorPoint anchorPoint)
        Anchor point (expressed as an x/y percentage of the graphic size).
        Specified by:
        setAnchorPoint in interface GraphicLegend
      • getOpacity

        Expression getOpacity()
        This specifies the level of translucency to use when rendering the graphic.
        The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque, with a linear scale of translucency for intermediate values.
        For example, "0.65" would represent 65% opacity. The default value is 1.0 (opaque).
        Specified by:
        getOpacity in interface Graphic
        Specified by:
        getOpacity in interface GraphicLegend
        Returns:
        The opacity of the Graphic, where 0.0 is completely transparent and 1.0 is completely opaque.
      • getSize

        Expression getSize()
        This paramteter gives the absolute size of the graphic in pixels encoded as a floating point number.

        The default size of an image format (such as GIFD) is the inherent size of the image. The default size of a format without an inherent size (such as SVG) is defined to be 16 pixels in height and the corresponding aspect in width. If a size is specified, the height of the graphic will be scaled to that size and the corresponding aspect will be used for the width.

        Specified by:
        getSize in interface Graphic
        Specified by:
        getSize in interface GraphicLegend
        Returns:
        The size of the graphic. The default is context specific. Negative values are not possible.
      • setSize

        void setSize​(Expression size)
        Description copied from interface: GraphicLegend
        Indicates the size at which the graphic should be displayed.

        If this value is null the natural size of the graphic will be used; or for graphics without a natural size like SVG files 16x16 will be used.

        Specified by:
        setSize in interface GraphicLegend
        Parameters:
        size - Size of graphic
      • getDisplacement

        Displacement getDisplacement()
        Description copied from interface: Graphic
        The Displacement gives the X and Y displacements from the "hot-spot" point. This element may be used to avoid over-plotting of multiple graphic symbols used as part of the same point symbol. The displacements are in units of measure above and to the right of the point. The default displacement is X=0, Y=0.

        If Displacement is used in conjunction with Size and/or Rotation then the graphic symbol shall be scaled and/or rotated before it is displaced.s

        Specified by:
        getDisplacement in interface Graphic
        Specified by:
        getDisplacement in interface GraphicLegend
        Returns:
        Offset of graphic
      • getRotation

        Expression getRotation()
        This parameter defines the rotation of a graphic in the clockwise direction about its centre point in decimal degrees. The value encoded as a floating point number.
        Specified by:
        getRotation in interface Graphic
        Specified by:
        getRotation in interface GraphicLegend
        Returns:
        The angle of rotation in decimal degrees. Negative values represent counter-clockwise rotation. The default is 0.0 (no rotation).
      • setRotation

        void setRotation​(Expression rotation)
        This parameter defines the rotation of a graphic in the clockwise direction about its centre point in decimal degrees. The value encoded as a floating point number.
        Specified by:
        setRotation in interface GraphicLegend
        Parameters:
        rotation - in decimal degrees
      • getInitialGap

        Expression getInitialGap()
        Description copied from interface: GraphicStroke
        InitialGap specifies how far away the first graphic will be drawn relative to the start of the rendering line
        Specified by:
        getInitialGap in interface GraphicStroke
        Returns:
        Expression
      • setInitialGap

        void setInitialGap​(Expression initialGap)
      • accept

        void accept​(StyleVisitor visitor)
        accepts a StyleVisitor - used by xmlencoder and other packages which need to walk the style tree
        Parameters:
        visitor - - the visitor object