org.apache.lucene.spatial3d.geom

## Class LatLonBounds

- java.lang.Object
- - org.apache.lucene.spatial3d.geom.LatLonBounds

All Implemented Interfaces:
  Bounds

    public class LatLonBounds
    extends Object
    implements Bounds

An object for accumulating latitude/longitude bounds information.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Constructor Summary

Constructors
Constructor and Description
`LatLonBounds()` Construct an empty bounds object

### Method Summary

All Methods Instance Methods Concrete Methods
`Bounds` `addHorizontalPlane(PlanetModel planetModel, double latitude, Plane horizontalPlane, Membership... bounds)` Add a horizontal plane to the bounds description.
`Bounds` `addIntersection(PlanetModel planetModel, Plane plane1, Plane plane2, Membership... bounds)` Add the intersection between two planes to the bounds description.
`Bounds` `addPlane(PlanetModel planetModel, Plane plane, Membership... bounds)` Add a general plane to the bounds description.
`Bounds` `addPoint(GeoPoint point)` Add a single point.
`Bounds` `addVerticalPlane(PlanetModel planetModel, double longitude, Plane verticalPlane, Membership... bounds)` Add a vertical plane to the bounds description.
`Bounds` `addXValue(GeoPoint point)` Add an X value.
`Bounds` `addYValue(GeoPoint point)` Add a Y value.
`Bounds` `addZValue(GeoPoint point)` Add a Z value.
`boolean` `checkNoBottomLatitudeBound()` Check if there's no bottom latitude bound.
`boolean` `checkNoLongitudeBound()` Check if there's no longitude bound.
`boolean` `checkNoTopLatitudeBound()` Check if there's no top latitude bound.
`Double` `getLeftLongitude()` Get left longitude, if any.
`Double` `getMaxLatitude()` Get maximum latitude, if any.
`Double` `getMinLatitude()` Get minimum latitude, if any.
`Double` `getRightLongitude()` Get right longitude, if any.
`Bounds` `isWide()` Signal that the shape exceeds Math.PI in longitude.
`Bounds` `noBottomLatitudeBound()` Signal that there is no bottom latitude bound.
`Bounds` `noBound(PlanetModel planetModel)` Signal that there is no bound whatsoever.
`Bounds` `noLongitudeBound()` Signal that there is no longitude bound.
`Bounds` `noTopLatitudeBound()` Signal that there is no top latitude bound.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### LatLonBounds

    public LatLonBounds()

Construct an empty bounds object

### Method Detail

#### getMaxLatitude

    public Double getMaxLatitude()

Get maximum latitude, if any.

Returns:
  maximum latitude or null.

#### getMinLatitude

    public Double getMinLatitude()

Get minimum latitude, if any.

Returns:
  minimum latitude or null.

#### getLeftLongitude

    public Double getLeftLongitude()

Get left longitude, if any.

Returns:
  left longitude, or null.

#### getRightLongitude

    public Double getRightLongitude()

Get right longitude, if any.

Returns:
  right longitude, or null.

#### checkNoLongitudeBound

    public boolean checkNoLongitudeBound()

Check if there's no longitude bound.

Returns:
  true if no longitude bound.

#### checkNoTopLatitudeBound

    public boolean checkNoTopLatitudeBound()

Check if there's no top latitude bound.

Returns:
  true if no top latitude bound.

#### checkNoBottomLatitudeBound

    public boolean checkNoBottomLatitudeBound()

Check if there's no bottom latitude bound.

Returns:
  true if no bottom latitude bound.

#### addPlane

    public Bounds addPlane(PlanetModel planetModel,
                           Plane plane,
                           Membership... bounds)

Description copied from interface: `Bounds`
Add a general plane to the bounds description.

Specified by:
  `addPlane` in interface `Bounds`
Parameters:
  `planetModel` - is the planet model.
  `plane` - is the plane.
  `bounds` - are the membership bounds for points along the arc.

#### addHorizontalPlane

    public Bounds addHorizontalPlane(PlanetModel planetModel,
                                     double latitude,
                                     Plane horizontalPlane,
                                     Membership... bounds)

Description copied from interface: `Bounds`
Add a horizontal plane to the bounds description. This method should EITHER use the supplied latitude, OR use the supplied plane, depending on what is most efficient.

Specified by:
  `addHorizontalPlane` in interface `Bounds`
Parameters:
  `planetModel` - is the planet model.
  `latitude` - is the latitude.
  `horizontalPlane` - is the plane.
  `bounds` - are the constraints on the plane.
Returns:
  updated Bounds object.

#### addVerticalPlane

    public Bounds addVerticalPlane(PlanetModel planetModel,
                                   double longitude,
                                   Plane verticalPlane,
                                   Membership... bounds)

Description copied from interface: `Bounds`
Add a vertical plane to the bounds description. This method should EITHER use the supplied longitude, OR use the supplied plane, depending on what is most efficient.

Specified by:
  `addVerticalPlane` in interface `Bounds`
Parameters:
  `planetModel` - is the planet model.
  `longitude` - is the longitude.
  `verticalPlane` - is the plane.
  `bounds` - are the constraints on the plane.
Returns:
  updated Bounds object.

#### isWide

    public Bounds isWide()

Description copied from interface: `Bounds`
Signal that the shape exceeds Math.PI in longitude.

Specified by:
  `isWide` in interface `Bounds`
Returns:
  the updated Bounds object.

#### addXValue

    public Bounds addXValue(GeoPoint point)

Description copied from interface: `Bounds`
Add an X value.

Specified by:
  `addXValue` in interface `Bounds`
Parameters:
  `point` - is the point to take the x value from.
Returns:
  the updated object.

#### addYValue

    public Bounds addYValue(GeoPoint point)

Description copied from interface: `Bounds`
Add a Y value.

Specified by:
  `addYValue` in interface `Bounds`
Parameters:
  `point` - is the point to take the y value from.
Returns:
  the updated object.

#### addZValue

    public Bounds addZValue(GeoPoint point)

Description copied from interface: `Bounds`
Add a Z value.

Specified by:
  `addZValue` in interface `Bounds`
Parameters:
  `point` - is the point to take the z value from.
Returns:
  the updated object.

#### addIntersection

    public Bounds addIntersection(PlanetModel planetModel,
                                  Plane plane1,
                                  Plane plane2,
                                  Membership... bounds)

Description copied from interface: `Bounds`
Add the intersection between two planes to the bounds description. Where the shape has intersecting planes, it is better to use this method than just adding the point, since this method takes each plane's error envelope into account.

Specified by:
  `addIntersection` in interface `Bounds`
Parameters:
  `planetModel` - is the planet model.
  `plane1` - is the first plane.
  `plane2` - is the second plane.
  `bounds` - are the membership bounds for the intersection.

#### addPoint

    public Bounds addPoint(GeoPoint point)

Description copied from interface: `Bounds`
Add a single point.

Specified by:
  `addPoint` in interface `Bounds`
Parameters:
  `point` - is the point.
Returns:
  the updated Bounds object.

#### noLongitudeBound

    public Bounds noLongitudeBound()

Description copied from interface: `Bounds`
Signal that there is no longitude bound.

Specified by:
  `noLongitudeBound` in interface `Bounds`
Returns:
  the updated Bounds object.

#### noTopLatitudeBound

    public Bounds noTopLatitudeBound()

Description copied from interface: `Bounds`
Signal that there is no top latitude bound.

Specified by:
  `noTopLatitudeBound` in interface `Bounds`
Returns:
  the updated Bounds object.

#### noBottomLatitudeBound

    public Bounds noBottomLatitudeBound()

Description copied from interface: `Bounds`
Signal that there is no bottom latitude bound.

Specified by:
  `noBottomLatitudeBound` in interface `Bounds`
Returns:
  the updated Bounds object.

#### noBound

    public Bounds noBound(PlanetModel planetModel)

Description copied from interface: `Bounds`
Signal that there is no bound whatsoever. The bound is limited only by the constraints of the planet.

Specified by:
  `noBound` in interface `Bounds`
Returns:
  the updated Bounds object.,