org.opengis.geometry.coordinate

## Interface Sphere

• All Superinterfaces:
GenericSurface, GriddedSurface, ParametricCurveSurface, SurfacePatch

```@UML(identifier="GM_Sphere",
specification=ISO_19107)
public interface Sphere
extends GriddedSurface```
A gridded surface given as a family of circles whose positions vary linearly along the axis of the sphere, and whose radius varies in proportion to the cosine function of the central angle. The horizontal circles resemble lines of constant latitude, and the vertical arcs resemble lines of constant longitude. If the control points are sorted in terms of increasing longitude, and increasing latitude, the upNormal of a sphere is the outward normal.

Example: If we take a gridded set of latitudes and longitudes in degrees, (u, v), such as

``` (-90, -180) (-90, -90) (-90, 0) (-90, 90) (-90, 180)
(-45, -180) (-45, -90) (-45, 0) (-45, 90) (-45, 180)
(  0, -180) (  0, -90) (  0, 0) (  0, 90) (  0, 180)
( 45, -180) ( 45, -90) ( 45, 0) (45, -90) ( 45, 180)
( 90, -180) ( 90, -90) ( 90, 0) (90, -90) ( 90, 180)
```
and map these points to 3D using the usual equations (where R is the radius of the required sphere)
z = R sin(u) x = R cos(u) sin(v) y = R cos(u) cos(v)
we have a sphere of radius R, centered at (0, 0), as a gridded surface. Notice that the entire first row and the entire last row of the control points map to a single point each in 3D Euclidean space, North and South poles respectively, and that each horizontal curve closes back on it self forming a geometric cycle. This gives us a metrically bounded (of finite size), topologically unbounded (not having a boundary, a cycle) surface.
Since:
GeoAPI 2.0
Author:
Martin Desruisseaux (IRD)

• ### Methods inherited from interface GriddedSurface

`getColumns, getControlPoints, getRows`
• ### Methods inherited from interface ParametricCurveSurface

`getHorizontalCurveType, getVerticalCurveType, horizontalCurve, surface, verticalCurve`
• ### Methods inherited from interface SurfacePatch

`getBoundary, getInterpolation, getNumDerivativesOnBoundary, getSurface`
• ### Methods inherited from interface GenericSurface

`getArea, getPerimeter, getUpNormal`