org.apache.lucene.spatial.spatial4j

## Class Geo3dShapeFactory

- java.lang.Object
- - org.apache.lucene.spatial.spatial4j.Geo3dShapeFactory

All Implemented Interfaces:
  S2ShapeFactory, org.locationtech.spatial4j.shape.ShapeFactory

    public class Geo3dShapeFactory
    extends Object
    implements S2ShapeFactory

Geo3d implementation of `S2ShapeFactory`

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

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.locationtech.spatial4j.shape.ShapeFactory

`org.locationtech.spatial4j.shape.ShapeFactory.LineStringBuilder, org.locationtech.spatial4j.shape.ShapeFactory.MultiLineStringBuilder, org.locationtech.spatial4j.shape.ShapeFactory.MultiPointBuilder, org.locationtech.spatial4j.shape.ShapeFactory.MultiPolygonBuilder, org.locationtech.spatial4j.shape.ShapeFactory.MultiShapeBuilder<T extends org.locationtech.spatial4j.shape.Shape>, org.locationtech.spatial4j.shape.ShapeFactory.PointsBuilder<T>, org.locationtech.spatial4j.shape.ShapeFactory.PolygonBuilder`

### Constructor Summary

Constructors
Constructor and Description
`Geo3dShapeFactory(org.locationtech.spatial4j.context.SpatialContext context, org.locationtech.spatial4j.context.SpatialContextFactory factory)`

### Method Summary

All Methods Instance Methods Concrete Methods
`org.locationtech.spatial4j.shape.Circle` `circle(double x, double y, double distance)`
`org.locationtech.spatial4j.shape.Circle` `circle(org.locationtech.spatial4j.shape.Point point, double distance)`
`org.locationtech.spatial4j.shape.Shape` `getS2CellShape(com.google.common.geometry.S2CellId cellId)` Factory method for S2 cell shapes.
`org.locationtech.spatial4j.context.SpatialContext` `getSpatialContext()`
`boolean` `isNormWrapLongitude()`
`org.locationtech.spatial4j.shape.ShapeFactory.LineStringBuilder` `lineString()`
`org.locationtech.spatial4j.shape.Shape` `lineString(List<org.locationtech.spatial4j.shape.Point> list, double distance)`
`org.locationtech.spatial4j.shape.ShapeFactory.MultiLineStringBuilder` `multiLineString()`
`org.locationtech.spatial4j.shape.ShapeFactory.MultiPointBuilder` `multiPoint()`
`org.locationtech.spatial4j.shape.ShapeFactory.MultiPolygonBuilder` `multiPolygon()`
`<T extends org.locationtech.spatial4j.shape.Shape> org.locationtech.spatial4j.shape.ShapeFactory.MultiShapeBuilder<T>` `multiShape(Class<T> aClass)`
`<S extends org.locationtech.spatial4j.shape.Shape> org.locationtech.spatial4j.shape.ShapeCollection<S>` `multiShape(List<S> list)`
`double` `normDist(double distance)`
`double` `normX(double x)`
`double` `normY(double y)`
`double` `normZ(double z)`
`org.locationtech.spatial4j.shape.Point` `pointXY(double x, double y)`
`org.locationtech.spatial4j.shape.Point` `pointXYZ(double x, double y, double z)`
`org.locationtech.spatial4j.shape.ShapeFactory.PolygonBuilder` `polygon()`
`org.locationtech.spatial4j.shape.Rectangle` `rect(double minX, double maxX, double minY, double maxY)`
`org.locationtech.spatial4j.shape.Rectangle` `rect(org.locationtech.spatial4j.shape.Point point, org.locationtech.spatial4j.shape.Point point1)`
`void` `setCircleAccuracy(double circleAccuracy)` Set the accuracy for circles in decimal degrees.
`void` `verifyX(double x)`
`void` `verifyY(double y)`
`void` `verifyZ(double v)`

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

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

### Constructor Detail

#### Geo3dShapeFactory

    public Geo3dShapeFactory(org.locationtech.spatial4j.context.SpatialContext context,
                             org.locationtech.spatial4j.context.SpatialContextFactory factory)

### Method Detail

#### getSpatialContext

    public org.locationtech.spatial4j.context.SpatialContext getSpatialContext()

Specified by:
  `getSpatialContext` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### setCircleAccuracy

    public void setCircleAccuracy(double circleAccuracy)

Set the accuracy for circles in decimal degrees. Note that accuracy has no effect when the planet model is a sphere. In that case, circles are always fully precise.

Parameters:
  `circleAccuracy` - the provided accuracy in decimal degrees.

#### isNormWrapLongitude

    public boolean isNormWrapLongitude()

Specified by:
  `isNormWrapLongitude` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### normX

    public double normX(double x)

Specified by:
  `normX` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### normY

    public double normY(double y)

Specified by:
  `normY` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### normZ

    public double normZ(double z)

Specified by:
  `normZ` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### normDist

    public double normDist(double distance)

Specified by:
  `normDist` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### verifyX

    public void verifyX(double x)

Specified by:
  `verifyX` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### verifyY

    public void verifyY(double y)

Specified by:
  `verifyY` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### verifyZ

    public void verifyZ(double v)

Specified by:
  `verifyZ` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### pointXY

    public org.locationtech.spatial4j.shape.Point pointXY(double x,
                                                          double y)

Specified by:
  `pointXY` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### pointXYZ

    public org.locationtech.spatial4j.shape.Point pointXYZ(double x,
                                                           double y,
                                                           double z)

Specified by:
  `pointXYZ` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### rect

    public org.locationtech.spatial4j.shape.Rectangle rect(org.locationtech.spatial4j.shape.Point point,
                                                           org.locationtech.spatial4j.shape.Point point1)

Specified by:
  `rect` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### rect

    public org.locationtech.spatial4j.shape.Rectangle rect(double minX,
                                                           double maxX,
                                                           double minY,
                                                           double maxY)

Specified by:
  `rect` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### circle

    public org.locationtech.spatial4j.shape.Circle circle(double x,
                                                          double y,
                                                          double distance)

Specified by:
  `circle` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### circle

    public org.locationtech.spatial4j.shape.Circle circle(org.locationtech.spatial4j.shape.Point point,
                                                          double distance)

Specified by:
  `circle` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### lineString

    public org.locationtech.spatial4j.shape.Shape lineString(List<org.locationtech.spatial4j.shape.Point> list,
                                                             double distance)

Specified by:
  `lineString` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### multiShape

    public <S extends org.locationtech.spatial4j.shape.Shape> org.locationtech.spatial4j.shape.ShapeCollection<S> multiShape(List<S> list)

Specified by:
  `multiShape` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### lineString

    public org.locationtech.spatial4j.shape.ShapeFactory.LineStringBuilder lineString()

Specified by:
  `lineString` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### polygon

    public org.locationtech.spatial4j.shape.ShapeFactory.PolygonBuilder polygon()

Specified by:
  `polygon` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### multiShape

    public <T extends org.locationtech.spatial4j.shape.Shape> org.locationtech.spatial4j.shape.ShapeFactory.MultiShapeBuilder<T> multiShape(Class<T> aClass)

Specified by:
  `multiShape` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### multiPoint

    public org.locationtech.spatial4j.shape.ShapeFactory.MultiPointBuilder multiPoint()

Specified by:
  `multiPoint` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### multiLineString

    public org.locationtech.spatial4j.shape.ShapeFactory.MultiLineStringBuilder multiLineString()

Specified by:
  `multiLineString` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### multiPolygon

    public org.locationtech.spatial4j.shape.ShapeFactory.MultiPolygonBuilder multiPolygon()

Specified by:
  `multiPolygon` in interface `org.locationtech.spatial4j.shape.ShapeFactory`

#### getS2CellShape

    public org.locationtech.spatial4j.shape.Shape getS2CellShape(com.google.common.geometry.S2CellId cellId)

Description copied from interface: `S2ShapeFactory`
Factory method for S2 cell shapes.

Specified by:
  `getS2CellShape` in interface `S2ShapeFactory`
Parameters:
  `cellId` - The S2 cell id
Returns:
  the shape representing the cell.