## com.vividsolutions.jts.index
Interface SpatialIndex

All Known Implementing Classes:
  Quadtree, STRtree

public interface SpatialIndex

The basic operations supported by classes implementing spatial index algorithms.

A spatial index typically provides a primary filter for range rectangle queries. A secondary filter is required to test for exact intersection. The secondary filter may consist of other kinds of tests, such as testing other spatial relationships.

Version:
  1.7

Method Summary
`void` `insert(Envelope itemEnv, java.lang.Object item)` Adds a spatial item with an extent specified by the given `Envelope` to the index
`java.util.List` `query(Envelope searchEnv)` Queries the index for all items whose extents intersect the given search `Envelope` Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope.
`void` `query(Envelope searchEnv, ItemVisitor visitor)` Queries the index for all items whose extents intersect the given search `Envelope`, and applies an `ItemVisitor` to them.
`boolean` `remove(Envelope itemEnv, java.lang.Object item)` Removes a single item from the tree.

Method Detail

### insert

    public void insert(Envelope itemEnv,
                       java.lang.Object item)

  Adds a spatial item with an extent specified by the given `Envelope` to the index

### query

    public java.util.List query(Envelope searchEnv)

  Queries the index for all items whose extents intersect the given search `Envelope` Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope.

  Parameters:
    `searchEnv` - the envelope to query for
  Returns:
    a list of the items found by the query

### query

    public void query(Envelope searchEnv,
                      ItemVisitor visitor)

  Queries the index for all items whose extents intersect the given search `Envelope`, and applies an `ItemVisitor` to them. Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope.

  Parameters:
    `searchEnv` - the envelope to query for
    `visitor` - a visitor object to apply to the items found

### remove

    public boolean remove(Envelope itemEnv,
                          java.lang.Object item)

  Removes a single item from the tree.

  Parameters:
    `itemEnv` - the Envelope of the item to remove
    `item` - the item to remove
  Returns:
    `true` if the item was found