Class SurfacePolyline

    • Field Detail

      • closed

        protected boolean closed
      • locations

        protected java.lang.Iterable<? extends LatLon> locations
    • Constructor Detail

      • SurfacePolyline

        public SurfacePolyline()
        Constructs a new surface polyline with the default attributes and no locations.
      • SurfacePolyline

        public SurfacePolyline​(SurfacePolyline source)
        Creates a shallow copy of the specified source shape.
        Parameters:
        source - the shape to copy.
      • SurfacePolyline

        public SurfacePolyline​(ShapeAttributes normalAttrs)
        Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and no locations. Modifying the attribute reference after calling this constructor causes this shape's appearance to change accordingly.
        Parameters:
        normalAttrs - the normal attributes. May be null, in which case default attributes are used.
      • SurfacePolyline

        public SurfacePolyline​(java.lang.Iterable<? extends LatLon> iterable)
        Constructs a new surface polyline with the default attributes and the specified iterable of locations.

        Note: If fewer than two locations is specified, no polyline is drawn.

        Parameters:
        iterable - the polyline locations.
        Throws:
        java.lang.IllegalArgumentException - if the locations iterable is null.
      • SurfacePolyline

        public SurfacePolyline​(ShapeAttributes normalAttrs,
                               java.lang.Iterable<? extends LatLon> iterable)
        Constructs a new surface polyline with the specified normal (as opposed to highlight) attributes and the specified iterable of locations. Modifying the attribute reference after calling this constructor causes this shape's appearance to change accordingly.

        Note: If fewer than two locations is specified, no polyline is drawn.

        Parameters:
        normalAttrs - the normal attributes. May be null, in which case default attributes are used.
        iterable - the polyline locations.
        Throws:
        java.lang.IllegalArgumentException - if the locations iterable is null.
    • Method Detail

      • isClosed

        public boolean isClosed()
      • setClosed

        public void setClosed​(boolean closed)
      • getLocations

        public java.lang.Iterable<? extends LatLon> getLocations​(Globe globe)
        Description copied from interface: SurfaceShape
        Returns the shape's locations as they appear on the specified globe, or null if the shape has no locations.
        Specified by:
        getLocations in interface SurfaceShape
        Parameters:
        globe - the globe the shape is related to.
        Returns:
        the shapes locations on the globe, or null if the shape has no locations.
      • getLocations

        public java.lang.Iterable<? extends LatLon> getLocations()
      • setLocations

        public void setLocations​(java.lang.Iterable<? extends LatLon> iterable)
      • getReferencePosition

        public Position getReferencePosition()
        Description copied from interface: Movable
        A position associated with the object that indicates its aggregate geographic position. The chosen position varies among implementers of this interface. For objects defined by a list of positions, the reference position is typically the first position in the list. For symmetric objects the reference position is often the center of the object. In many cases the object's reference position may be explicitly specified by the application.
        Specified by:
        getReferencePosition in interface Movable
        Specified by:
        getReferencePosition in interface Movable2
        Specified by:
        getReferencePosition in class AbstractSurfaceShape
        Returns:
        the object's reference position, or null if no reference position is available.
      • canContainPole

        protected boolean canContainPole()
        Indicates whether the shape is a closed polygon that can enclose a pole, or an open path that cannot. This makes a difference when computing the bounding sector for a shape. For example, consider the positions (-100, 85), (0, 80), (100, 80). If these positions are treated as a closed polygon (a triangle over the North Pole) then the bounding sector is 80 to 90 lat, -180 to 180 lon. But if they are treated as an open path (a line wrapping partway around the pole) then the bounding sector is 80 to 85 lat, -100 to 100 lon. Overridden to treat the shape as an open path if the polyline is not closed.
        Overrides:
        canContainPole in class AbstractSurfaceShape
        Returns:
        True if the shape is a closed polygon that can contain a pole, or false if it is treated as an open path that cannot contain a pole.
      • exportAsKML

        protected void exportAsKML​(java.lang.Object output)
                            throws java.io.IOException,
                                   javax.xml.stream.XMLStreamException
        Export the polyline to KML as a <Placemark> element. The output object will receive the data. This object must be one of: java.io.Writer java.io.OutputStream javax.xml.stream.XMLStreamWriter
        Overrides:
        exportAsKML in class AbstractSurfaceShape
        Parameters:
        output - Object to receive the generated KML.
        Throws:
        javax.xml.stream.XMLStreamException - If an exception occurs while writing the KML
        java.io.IOException - if an exception occurs while exporting the data.
        See Also:
        AbstractSurfaceShape.export(String, Object)