org.opengis.geometry.coordinate.Sphere Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gt-opengis Show documentation
Show all versions of gt-opengis Show documentation
Standard interfaces implemented throughout the library.
The newest version!
/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2011, Open Source Geospatial Foundation (OSGeo)
* (C) 2003-2005, Open Geospatial Consortium Inc.
*
* All Rights Reserved. http://www.opengis.org/legal/
*/
package org.opengis.geometry.coordinate;
import static org.opengis.annotation.Specification.*;
import org.opengis.annotation.UML;
/**
* A {@linkplain GriddedSurface 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 {@linkplain #getControlPoints
* control points} are sorted in terms of increasing longitude, and increasing latitude, the
* {@linkplain #getUpNormal 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. * * @version ISO 19107 * @author Martin Desruisseaux (IRD) * @since GeoAPI 2.0 */ @UML(identifier = "GM_Sphere", specification = ISO_19107) public interface Sphere extends GriddedSurface {}