NASA World Wind

gov.nasa.worldwind.util
Class PlacemarkClutterFilter

java.lang.Object
  extended by gov.nasa.worldwind.util.PlacemarkClutterFilter
All Implemented Interfaces:
ClutterFilter

public class PlacemarkClutterFilter
extends Object
implements ClutterFilter

Provides a clutter filter that rearranges PointPlacemark labels to avoid overlap. When placemarks overlap, only their label and a line to their position are drawn. The placemark's icon is not drawn for overlapping placemarks.


Nested Class Summary
protected static class PlacemarkClutterFilter.DeclutteredLabel
           
 
Field Summary
protected  List<Rectangle2D> rectList
          Holds the rectangles of the regions already drawn.
protected  Map<Rectangle2D,List<Declutterable>> shapeMap
          Maintains a list of regions and the shapes associated with each region.
 
Constructor Summary
PlacemarkClutterFilter()
           
 
Method Summary
protected  void addShape(Rectangle2D rectangle, Declutterable shape)
          Adds a shape to the internal shape map.
 void apply(DrawContext dc, List<Declutterable> shapes)
          Applies the filter for a specified list of Declutterable shapes.
protected  void clear()
          Release all the resources used in the most recent filter application.
protected  Rectangle2D intersects(Rectangle2D rectangle)
          Indicates whether a specified region intersects a region in the filter.
protected  void render(DrawContext dc)
          Draws the decluttered shape representation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rectList

protected List<Rectangle2D> rectList
Holds the rectangles of the regions already drawn.


shapeMap

protected Map<Rectangle2D,List<Declutterable>> shapeMap
Maintains a list of regions and the shapes associated with each region.

Constructor Detail

PlacemarkClutterFilter

public PlacemarkClutterFilter()
Method Detail

addShape

protected void addShape(Rectangle2D rectangle,
                        Declutterable shape)
Adds a shape to the internal shape map.

Parameters:
rectangle - the rectangle to associate the shape with.
shape - the shape to associate with the specified rectangle.

apply

public void apply(DrawContext dc,
                  List<Declutterable> shapes)
Description copied from interface: ClutterFilter
Applies the filter for a specified list of Declutterable shapes.

Specified by:
apply in interface ClutterFilter
Parameters:
dc - the current draw context.
shapes - the shapes to declutter.

clear

protected void clear()
Release all the resources used in the most recent filter application.


intersects

protected Rectangle2D intersects(Rectangle2D rectangle)
Indicates whether a specified region intersects a region in the filter.

Parameters:
rectangle - the region to test.
Returns:
the intersected region if the input region intersects one or more other regions in the filter, otherwise false.

render

protected void render(DrawContext dc)
Draws the decluttered shape representation. For shapes that are not PointPlacemarks, the first non- placemark shape is drawn in addition to the placemark representation. This causes this filter to produce the same results for non-placemark shapes as does BasicClutterFilter.

Parameters:
dc - the current draw context.

NASA World Wind