GeoAPI
Details of axis. This is used to label axes, and indicate the orientation.
Initializes a new instance of an AxisInfo.
Name of axis
Axis orientation
Human readable name for axis. Possible values are X, Y, Long, Lat or any other short string.
Gets enumerated value for orientation.
Returns the Well-known text for this object
as defined in the simple features specification.
Gets an XML representation of this object
Orientation of axis. Some coordinate systems use non-standard orientations.
For example, the first axis in South African grids usually points West,
instead of East. This information is obviously relevant for algorithms
converting South African grid coordinates into Lat/Long.
Unknown or unspecified axis orientation. This can be used for local or fitted coordinate systems.
Increasing ordinates values go North. This is usually used for Grid Y coordinates and Latitude.
Increasing ordinates values go South. This is rarely used.
Increasing ordinates values go East. This is rarely used.
Increasing ordinates values go West. This is usually used for Grid X coordinates and Longitude.
Increasing ordinates values go up. This is used for vertical coordinate systems.
Increasing ordinates values go down. This is used for vertical coordinate systems.
A vertical datum of geoid model derived heights, also called GPS-derived heights.
These heights are approximations of orthometric heights (H), constructed from the
ellipsoidal heights (h) by the use of the given geoid undulation model (N) through
the equation: H=h-N.
Lowest possible value for horizontal datum types
Unspecified horizontal datum type. Horizontal datums with this type should never
supply a conversion to WGS84 using Bursa Wolf parameters.
These datums, such as ED50, NAD27 and NAD83, have been designed to support
horizontal positions on the ellipsoid as opposed to positions in 3-D space. These datums were designed mainly to support a horizontal component of a position in a domain of limited extent, such as a country, a region or a continent.
A geocentric datum is a "satellite age" modern geodetic datum mainly of global
extent, such as WGS84 (used in GPS), PZ90 (used in GLONASS) and ITRF. These
datums were designed to support both a horizontal component of position and
a vertical component of position (through ellipsoidal heights). The regional
realizations of ITRF, such as ETRF, are also included in this category.
Highest possible value for horizontal datum types.
Lowest possible value for vertical datum types.
Unspecified vertical datum type.
A vertical datum for orthometric heights that are measured along the plumb line.
A vertical datum for ellipsoidal heights that are measured along the normal to
the ellipsoid used in the definition of horizontal datum.
The vertical datum of altitudes or heights in the atmosphere. These are
approximations of orthometric heights obtained with the help of a barometer or
a barometric altimeter. These values are usually expressed in one of the
following units: meters, feet, millibars (used to measure pressure levels), or
theta value (units used to measure geopotential height).
A normal height system.
A vertical datum of geoid model derived heights, also called GPS-derived heights.
These heights are approximations of orthometric heights (H), constructed from the
ellipsoidal heights (h) by the use of the given geoid undulation model (N)
through the equation: H=h-N.
This attribute is used to support the set of datums generated for hydrographic
engineering projects where depth measurements below sea level are needed. It is
often called a hydrographic or a marine datum. Depths are measured in the
direction perpendicular (approximately) to the actual equipotential surfaces of
the earth's gravity field, using such procedures as echo-sounding.
Highest possible value for vertical datum types.
Lowest possible value for local datum types.
Highest possible value for local datum types.
The IAngularUnit interface defines methods on angular units.
The IUnit interface abstracts different kinds of units, it has no methods.
The ISpatialReferenceInfo interface defines the standard
information stored with spatial reference objects. This
interface is reused for many of the spatial reference
objects in the system.
Checks whether the values of this instance is equal to the values of another instance.
Only parameters used for coordinate system are used for comparison.
Name, abbreviation, authority, alias and remarks are ignored in the comparison.
True if equal
Gets or sets the name of the object.
Gets or sets the authority name for this object, e.g., “POSC”,
is this is a standard object with an authority specific
identity code. Returns “CUSTOM” if this is a custom object.
Gets or sets the authority specific identification code of the object
Gets or sets the alias of the object.
Gets or sets the abbreviation of the object.
Gets or sets the provider-supplied remarks for the object.
Returns the Well-known text for this spatial reference object
as defined in the simple features specification.
Gets an XML representation of this object.
Gets or sets the number of radians per angular unit.
An aggregate of two coordinate systems (CRS). One of these is usually a
CRS based on a two dimensional coordinate system such as a geographic or
a projected coordinate system with a horizontal datum. The other is a
vertical CRS which is a one-dimensional coordinate system with a vertical
datum.
Base interface for all coordinate systems
A coordinate system is a mathematical space, where the elements of the space are called
positions. Each position is described by a list of numbers. The length of the list corresponds
to the dimension of the coordinate system. So in a 2D coordinate system each position is
described by a list containing 2 numbers.
However, in a coordinate system, not all lists of numbers correspond to a position -
some lists may be outside the domain of the coordinate system. For example, in a 2D Lat/Lon
coordinate system, the list (91,91) does not correspond to a position.
Some coordinate systems also have a mapping from the mathematical space into locations
in the real world. So in a Lat/Lon coordinate system, the mathematical position (lat, long)
corresponds to a location on the surface of the Earth. This mapping from the mathematical
space into real-world locations is called a Datum.
Gets axis details for dimension within coordinate system.
Dimension
Axis info
Gets units for dimension within coordinate system.
Dimension of the coordinate system.
Gets default envelope of coordinate system.
Gets default envelope of coordinate system. Coordinate systems
which are bounded should return the minimum bounding box of their
domain. Unbounded coordinate systems should return a box which is
as large as is likely to be used. For example, a (lon,lat)
geographic coordinate system in degrees should return a box from
(-180,-90) to (180,90), and a geocentric coordinate system could
return a box from (-r,-r,-r) to (+r,+r,+r) where r is the
approximate radius of the Earth.
Gets first sub-coordinate system.
Gets second sub-coordinate system.
Creates spatial reference objects using codes.
The codes are maintained by an external authority. A commonly used authority is EPSG, which is also used in the GeoTIFF standard and in SharpMap.
Returns a projected coordinate system object corresponding to the given code.
The identification code.
The projected coordinate system object with the given code.
Returns a geographic coordinate system object corresponding to the given code.
The identification code.
The geographic coordinate system object with the given code.
Returns a horizontal datum object corresponding to the given code.
The identification code.
The horizontal datum object with the given code.
Returns an ellipsoid object corresponding to the given code.
The identification code.
The ellipsoid object with the given code.
Returns a prime meridian object corresponding to the given code.
The identification code.
The prime meridian object with the given code.
Returns a linear unit object corresponding to the given code.
The identification code.
The linear unit object with the given code.
Returns an angular unit object corresponding to the given code.
The identification code.
The angular unit object for the given code.
Creates a from a code.
Authority code
Vertical datum for the given code
Create a vertical coordinate system from a code.
Authority code
Creates a 3D coordinate system from a code.
Authority code
Compound coordinate system for the given code
Creates a horizontal co-ordinate system from a code.
The horizontal coordinate system could be geographic or projected.
Authority code
Horizontal coordinate system for the given code
Gets the Geoid code from a WKT name.
In the OGC definition of WKT horizontal datums, the geoid is referenced
by a quoted string, which is used as a key value. This method converts
the key value string into a code recognized by this authority.
Gets the WKT name of a Geoid.
In the OGC definition of WKT horizontal datums, the geoid is referenced by
a quoted string, which is used as a key value. This method gets the OGC WKT
key value from a geoid code.
Returns the authority name for this factory (e.g., "EPSG" or "POSC").
Gets a description of the object corresponding to a code.
Builds up complex objects from simpler objects or values.
ICoordinateSystemFactory allows applications to make coordinate systems that
cannot be created by a . This factory is very
flexible, whereas the authority factory is easier to use.
So can be used to make 'standard' coordinate
systems, and can be used to make 'special'
coordinate systems.
For example, the EPSG authority has codes for USA state plane coordinate systems
using the NAD83 datum, but these coordinate systems always use meters. EPSG does not
have codes for NAD83 state plane coordinate systems that use feet units. This factory
lets an application create such a hybrid coordinate system.
Creates a .
Name of compound coordinate system.
Head coordinate system
Tail coordinate system
Compound coordinate system
Creates an from radius values.
Name of ellipsoid
Ellipsoid
Creates a .
The units of the axes in the fitted coordinate system will be
inferred from the units of the base coordinate system. If the affine map
performs a rotation, then any mixed axes must have identical units. For
example, a (lat_deg,lon_deg,height_feet) system can be rotated in the
(lat,lon) plane, since both affected axes are in degrees. But you
should not rotate this coordinate system in any other plane.
Name of coordinate system
Base coordinate system
Fitted coordinate system
Creates an from an major radius, and inverse flattening.
Name of ellipsoid
Semi major-axis
Inverse flattening
Linear unit
Ellipsoid
Creates a coordinate system object from an XML string.
XML representation for the spatial reference
The resulting spatial reference object
Creates a spatial reference object given its Well-known text representation.
The output object may be either a or
a .
The Well-known text representation for the spatial reference
The resulting spatial reference object
Creates a , which could be Lat/Lon or Lon/Lat.
Name of geographical coordinate system
Angular units
Horizontal datum
Prime meridian
First axis
Second axis
Geographic coordinate system
Creates from ellipsoid and Bursa-World parameters.
Since this method contains a set of Bursa-Wolf parameters, the created
datum will always have a relationship to WGS84. If you wish to create a
horizontal datum that has no relationship with WGS84, then you can
either specify a horizontalDatumType of , or create it via WKT.
Name of ellipsoid
Type of datum
Ellipsoid
Wgs84 conversion parameters
Horizontal datum
Creates a local coordinate system.
The dimension of the local coordinate system is determined by the size of
the axis array. All the axes will have the same units. If you want to make
a coordinate system with mixed units, then you can make a compound
coordinate system from different local coordinate systems.
Name of local coordinate system
Local datum
Units
Axis info
Local coordinate system
Creates a .
Name of datum
Datum type
Creates a , relative to Greenwich.
Name of prime meridian
Angular unit
Longitude
Prime meridian
Creates a using a projection object.
Name of projected coordinate system
Geographic coordinate system
Projection
Linear unit
Primary axis
Secondary axis
Projected coordinate system
Creates a .
Name of projection
Projection class
Projection parameters
Projection
Creates a from a datum and linear units.
Name of vertical coordinate system
Vertical datum
Unit
Axis info
Vertical coordinate system
Creates a from an enumerated type value.
Name of datum
Type of datum
Vertical datum
A set of quantities from which other quantities are calculated.
For the OGC abstract model, it can be defined as a set of real points on the earth
that have coordinates. EG. A datum can be thought of as a set of parameters
defining completely the origin and orientation of a coordinate system with respect
to the earth. A textual description and/or a set of parameters describing the
relationship of a coordinate system to some predefined physical locations (such
as center of mass) and physical directions (such as axis of spin). The definition
of the datum may also include the temporal behavior (such as the rate of change of
the orientation of the coordinate axes).
Gets or sets the type of the datum as an enumerated code.
The IEllipsoid interface defines the standard information stored with ellipsoid objects.
Gets or sets the value of the semi-major axis.
Gets or sets the value of the semi-minor axis.
Gets or sets the value of the inverse of the flattening constant of the ellipsoid.
Gets or sets the value of the axis unit.
Is the Inverse Flattening definitive for this ellipsoid? Some ellipsoids use the
IVF as the defining value, and calculate the polar radius whenever asked. Other
ellipsoids use the polar radius to calculate the IVF whenever asked. This
distinction can be important to avoid floating-point rounding errors.
A coordinate system which sits inside another coordinate system. The fitted
coordinate system can be rotated and shifted, or use any other math transform
to inject itself into the base coordinate system.
Gets Well-Known Text of a math transform to the base coordinate system.
The dimension of this fitted coordinate system is determined by the source
dimension of the math transform. The transform should be one-to-one within
this coordinate system's domain, and the base coordinate system dimension
must be at least as big as the dimension of this coordinate system.
Gets underlying coordinate system.
A 3D coordinate system, with its origin at the center of the Earth.
Returns the HorizontalDatum. The horizontal datum is used to determine where
the centre of the Earth is considered to be. All coordinate points will be
measured from the centre of the Earth, and not the surface.
Gets the units used along all the axes.
Returns the PrimeMeridian.
The IGeodeticSpatialReference interface defines a root interface for all types of geodetic
spatial references, it is a subclass of ICoordinateSystem.
The IGeographicCoordinateSystem interface is a subclass of IGeodeticSpatialReference and
defines the standard information stored with geographic coordinate system objects.
A 2D coordinate system suitable for positions on the Earth's surface.
Returns the HorizontalDatum.
Gets details on a conversion to WGS84.
Gets or sets the angular units of the geographic coordinate system.
Gets or sets the prime meridian of the geographic coordinate system.
Gets the number of available conversions to WGS84 coordinates.
The IGeographicTransform interface is implemented on geographic transformation
objects and implements datum transformations between geographic coordinate systems.
Transforms an array of points from the source geographic coordinate system
to the target geographic coordinate system.
Points in the source geographic coordinate system
Points in the target geographic coordinate system
Transforms an array of points from the target geographic coordinate system
to the source geographic coordinate system.
Points in the target geographic coordinate system
Points in the source geographic coordinate system
Gets or sets source geographic coordinate system for the transformation.
Gets or sets the target geographic coordinate system for the transformation.
Returns an accessor interface to the parameters for this geographic transformation.
Procedure used to measure positions on the surface of the Earth.
Gets or sets the ellipsoid of the datum.
Gets preferred parameters for a Bursa Wolf transformation into WGS84. The 7 returned values
correspond to (dx,dy,dz) in meters, (ex,ey,ez) in arc-seconds, and scaling in parts-per-million.
The ILinearUnit interface defines methods on linear units.
Gets or sets the number of meters per .
A local coordinate system, with uncertain relationship to the world.
In general, a local coordinate system cannot be related to other coordinate
systems. However, if two objects supporting this interface have the same dimension,
axes, units and datum then client code is permitted to assume that the two coordinate
systems are identical. This allows several datasets from a common source (e.g. a CAD
system) to be overlaid. In addition, some implementations of the Coordinate
Transformation (CT) package may have a mechanism for correlating local datums. (E.g.
from a database of transformations, which is created and maintained from real-world
measurements.)
Gets or sets the local datum
Local datum. If two local datum objects have the same datum type and name,
then they can be considered equal. This means that coordinates can be
transformed between two different local coordinate systems, as long as
they are based on the same local datum.
The IParameterInfo interface provides an interface through which clients of a
Projected Coordinate System or of a Projection can set the parameters of the
projection. It provides a generic interface for discovering the names and default
values of parameters, and for setting and getting parameter values. Subclasses of
this interface may provide projection specific parameter access methods.
Returns the default parameters for this projection.
Gets the parameter by its name
Gets the number of parameters expected.
Gets or sets the parameters set for this projection.
The IPrimeMeridian interface defines the standard information stored with prime
meridian objects. Any prime meridian object must implement this interface as
well as the ISpatialReferenceInfo interface.
Gets or sets the longitude of the prime meridian (relative to the Greenwich prime meridian).
Gets or sets the AngularUnits.
The IProjectedCoordinateSystem interface defines the standard information stored with
projected coordinate system objects. A projected coordinate system is defined using a
geographic coordinate system object and a projection object that defines the
coordinate transformation from the geographic coordinate system to the projected
coordinate systems. The instances of a single ProjectedCoordinateSystem COM class can
be used to model different projected coordinate systems (e.g., UTM Zone 10, Albers)
by associating the ProjectedCoordinateSystem instances with Projection instances
belonging to different Projection COM classes (Transverse Mercator and Albers,
respectively).
Gets or sets the geographic coordinate system associated with the projected
coordinate system.
Gets or sets the linear (projected) units of the projected coordinate system.
Gets or sets the projection for the projected coordinate system.
The IProjection interface defines the standard information stored with projection
objects. A projection object implements a coordinate transformation from a geographic
coordinate system to a projected coordinate system, given the ellipsoid for the
geographic coordinate system. It is expected that each coordinate transformation of
interest, e.g., Transverse Mercator, Lambert, will be implemented as a COM class of
coType Projection, supporting the IProjection interface.
Gets an indexed parameter of the projection.
Index of parameter
n'th parameter
Gets an named parameter of the projection.
The parameter name is case insensitive
Name of parameter
parameter or null if not found
Gets number of parameters of the projection.
Gets the projection classification name (e.g. 'Transverse_Mercator').
A one-dimensional coordinate system suitable for vertical measurements.
Gets the vertical datum, which indicates the measurement method
Gets the units used along the vertical axis.
Procedure used to measure vertical distances.
A named parameter value.
Creates an instance of a parameter
Units are always either meters or degrees.
Name of parameter
Value
Parameter name
Parameter value
A named projection parameter value.
The linear units of parameters' values match the linear units of the containing
projected coordinate system. The angular units of parameter values match the
angular units of the geographic coordinate system that the projected coordinate
system is based on. (Notice that this is different from ,
where the units are always meters and degrees.)
Initializes an instance of a ProjectionParameter
Name of parameter
Parameter value
Function to get a textual representation of this envelope
A textual representation of this envelope
Parameter name.
Parameter value.
The linear units of a parameters' values match the linear units of the containing
projected coordinate system. The angular units of parameter values match the
angular units of the geographic coordinate system that the projected coordinate
system is based on.
Returns the Well-known text for this object
as defined in the simple features specification.
Gets an XML representation of this object
Flags indicating parts of domain covered by a convex hull.
These flags can be combined. For example, the value 3
corresponds to a combination of and ,
which means that some parts of the convex hull are inside the
domain, and some parts of the convex hull are outside the domain.
At least one point in a convex hull is inside the transform's domain.
At least one point in a convex hull is outside the transform's domain.
At least one point in a convex hull is not transformed continuously.
As an example, consider a "Longitude_Rotation" transform which adjusts
longitude coordinates to take account of a change in Prime Meridian. If
the rotation is 5 degrees east, then the point (Lat=175,Lon=0) is not
transformed continuously, since it is on the meridian line which will
be split at +180/-180 degrees.
Describes a coordinate transformation. This interface only describes a
coordinate transformation, it does not actually perform the transform
operation on points. To transform points you must use a math transform.
Human readable description of domain in source coordinate system.
Authority which defined transformation and parameter values.
An Authority is an organization that maintains definitions of Authority Codes. For example the European Petroleum Survey Group (EPSG) maintains a database of coordinate systems, and other spatial referencing objects, where each object has a code number ID. For example, the EPSG code for a WGS84 Lat/Lon coordinate system is ‘4326’
Code used by authority to identify transformation. An empty string is used for no code.
The AuthorityCode is a compact string defined by an Authority to reference a particular spatial reference object. For example, the European Survey Group (EPSG) authority uses 32 bit integers to reference coordinate systems, so all their code strings will consist of a few digits. The EPSG code for WGS84 Lat/Lon is ‘4326’.
Gets math transform.
Name of transformation.
Gets the provider-supplied remarks.
Source coordinate system.
Target coordinate system.
Semantic type of transform. For example, a datum transformation or a coordinate conversion.
Creates coordinate transformations.
Creates a transformation between two coordinate systems.
This method will examine the coordinate systems in order to construct
a transformation between them. This method may fail if no path between
the coordinate systems is found, using the normal failing behavior of
the DCP (e.g. throwing an exception).
Source coordinate system
Target coordinate system
Transforms muti-dimensional coordinate points.
If a client application wishes to query the source and target coordinate
systems of a transformation, then it should keep hold of the
interface, and use the contained
math transform object whenever it wishes to perform a transform.
Tests whether this transform does not move any points.
Gets the derivative of this transform at a point. If the transform does
not have a well-defined derivative at the point, then this function should
fail in the usual way for the DCP. The derivative is the matrix of the
non-translating portion of the approximate affine map at the point. The
matrix will have dimensions corresponding to the source and target
coordinate systems. If the input dimension is M, and the output dimension
is N, then the matrix will have size [M][N]. The elements of the matrix
{elt[n][m] : n=0..(N-1)} form a vector in the output space which is
parallel to the displacement caused by a small change in the m'th ordinate
in the input space.
Gets transformed convex hull.
The supplied ordinates are interpreted as a sequence of points, which generates a convex
hull in the source space. The returned sequence of ordinates represents a convex hull in the
output space. The number of output points will often be different from the number of input
points. Each of the input points should be inside the valid domain (this can be checked by
testing the points' domain flags individually). However, the convex hull of the input points
may go outside the valid domain. The returned convex hull should contain the transformed image
of the intersection of the source convex hull and the source domain.
A convex hull is a shape in a coordinate system, where if two positions A and B are
inside the shape, then all positions in the straight line between A and B are also inside
the shape. So in 3D a cube and a sphere are both convex hulls. Other less obvious examples
of convex hulls are straight lines, and single points. (A single point is a convex hull,
because the positions A and B must both be the same - i.e. the point itself. So the straight
line between A and B has zero length.)
Some examples of shapes that are NOT convex hulls are donuts, and horseshoes.
Gets flags classifying domain points within a convex hull.
The supplied ordinates are interpreted as a sequence of points, which
generates a convex hull in the source space. Conceptually, each of the
(usually infinite) points inside the convex hull is then tested against
the source domain. The flags of all these tests are then combined. In
practice, implementations of different transforms will use different
short-cuts to avoid doing an infinite number of tests.
Creates the inverse transform of this object.
This method may fail if the transform is not one to one. However, all cartographic projections should succeed.
Transforms a coordinate point. The passed parameter point should not be modified.
Transforms a a coordinate. The input coordinate remains unchanged.
The coordinate to transform
The transformed coordinate
Transforms a a coordinate. The input coordinate remains unchanged.
The coordinate to transform
The transformed coordinate
Transforms a list of coordinate point ordinal values.
This method is provided for efficiently transforming many points. The supplied array
of ordinal values will contain packed ordinal values. For example, if the source
dimension is 3, then the ordinals will be packed in this order (x0,y0,z0,x1,y1,z1 ...).
The size of the passed array must be an integer multiple of DimSource. The returned
ordinal values are packed in a similar way. In some DCPs. the ordinals may be
transformed in-place, and the returned array may be the same as the passed array.
So any client code should not attempt to reuse the passed ordinal values (although
they can certainly reuse the passed array). If there is any problem then the server
implementation will throw an exception. If this happens then the client should not
make any assumptions about the state of the ordinal values.
Transforms a list of coordinates.
This method is provided for efficiently transforming many points. The supplied array
of ordinal values will contain packed ordinal values. For example, if the source
dimension is 3, then the ordinals will be packed in this order (x0,y0,z0,x1,y1,z1 ...).
The size of the passed array must be an integer multiple of DimSource. The returned
ordinal values are packed in a similar way. In some DCPs. the ordinals may be
transformed in-place, and the returned array may be the same as the passed array.
So any client code should not attempt to reuse the passed ordinal values (although
they can certainly reuse the passed array). If there is any problem then the server
implementation will throw an exception. If this happens then the client should not
make any assumptions about the state of the ordinal values.
Reverses the transformation
Transforms a coordinate sequence. The input coordinate sequence remains unchanged.
The coordinate sequence to transform.
The transformed coordinate sequence.
Gets the dimension of input points.
Gets the dimension of output points.
Gets a Well-Known text representation of this object.
Gets an XML representation of this object.
Creates math transforms.
CT_MathTransformFactory is a low level factory that is used to create CT_MathTransform objects. Many high level GIS applications will never need to use a CT_MathTransformFactory directly; they can use a CT_CoordinateTransformationFactory instead. However, the CT_MathTransformFactory interface is specified here, since it can be used directly by applications that wish to transform other types of coordinates (e.g. color coordinates, or image pixel coordinates).
The following comments assume that the same vendor implements the math transform factory interfaces and math transform interfaces.
A math transform is an object that actually does the work of applying formulae to coordinate values. The math transform does not know or care how the coordinates relate to positions in the real world. This lack of semantics makes implementing CT_MathTransformFactory significantly easier than it would be otherwise.
For example CT_MathTransformFactory can create affine math transforms. The affine transform applies a matrix to the coordinates without knowing how what it is doing relates to the real world. So if the matrix scales Z values by a factor of 1000, then it could be converting meters into millimeters, or it could be converting kilometers into meters.
Because math transforms have low semantic value (but high mathematical value), programmers who do not have much knowledge of how GIS applications use coordinate systems, or how those coordinate systems relate to the real world can implement CT_MathTransformFactory.
The low semantic content of math transforms also means that they will be useful in applications that have nothing to do with GIS coordinates. For example, a math transform could be used to map color coordinates between different color spaces, such as converting (red, green, blue) colors into (hue, light, saturation) colors.
Since a math transform does not know what its source and target coordinate systems mean, it is not necessary or desirable for a math transform object to keep information on its source and target coordinate systems.
Creates an affine transform from a matrix.
If the transform's input dimension is M, and output dimension is N, then the matrix will have size [N+1][M+1]. The +1 in the matrix dimensions allows the matrix to do a shift, as well as a rotation. The [M][j] element of the matrix will be the j'th ordinate of the moved origin. The [i][N] element of the matrix will be 0 for i less than M, and 1 for i equals M.
Creates a transform by concatenating two existing transforms. A concatenated transform acts in the same way as applying two transforms, one after the other.
The dimension of the output space of the first transform must match the dimension of the input space in the second transform. If you wish to concatenate more than two transforms, then you can repeatedly use this method.
Creates a math transform from a Well-Known Text string.
Creates a math transform from XML.
Creates a transform from a classification name and parameters.
The client must ensure that all the linear parameters are expressed in meters, and all the angular parameters are expressed in degrees. Also, they must supply "semi_major" and "semi_minor" parameters for cartographic projection transforms.
Creates a transform which passes through a subset of ordinates to another transform.
This allows transforms to operate on a subset of ordinates. For example, if you have (Lat,Lon,Height) coordinates, then you may wish to convert the height values from meters to feet without affecting the (Lat,Lon) values. If you wanted to affect the (Lat,Lon) values and leave the Height values alone, then you would have to swap the ordinates around to (Height,Lat,Lon). You can do this with an affine map.
Tests whether parameter is angular. Clients must ensure that all angular parameter values are in degrees.
Tests whether parameter is linear. Clients must ensure that all linear parameter values are in meters.
Semantic type of transform used in coordinate transformation.
Unknown or unspecified type of transform.
Transform depends only on defined parameters. For example, a cartographic projection.
Transform depends only on empirically derived parameters. For example a datum transformation.
Transform depends on both defined and empirical parameters.
Parameters for a geographic transformation into WGS84. The Bursa Wolf parameters should be applied
to geocentric coordinates, where the X axis points towards the Greenwich Prime Meridian, the Y axis
points East, and the Z axis points North.
These parameters can be used to approximate a transformation from the horizontal datum to the
WGS84 datum using a Bursa Wolf transformation. However, it must be remembered that this transformation
is only an approximation. For a given horizontal datum, different Bursa Wolf transformations can be
used to minimize the errors over different regions.
If the DATUM clause contains a TOWGS84 clause, then this should be its “preferred” transformation,
which will often be the transformation which gives a broad approximation over the whole area of interest
(e.g. the area of interest in the containing geographic coordinate system).
Sometimes, only the first three or six parameters are defined. In this case the remaining
parameters must be zero. If only three parameters are defined, then they can still be plugged into the
Bursa Wolf formulas, or you can take a short cut. The Bursa Wolf transformation works on geocentric
coordinates, so you cannot apply it onto geographic coordinates directly. If there are only three
parameters then you can use the Molodenski or abridged Molodenski formulas.
If a datums ToWgs84Parameters parameter values are zero, then the receiving
application can assume that the writing application believed that the datum is approximately equal to
WGS84.
Initializes an instance of Wgs84ConversionInfo with default parameters (all values = 0)
Initializes an instance of Wgs84ConversionInfo
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf scaling in parts per million.
Initializes an instance of Wgs84ConversionInfo
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf scaling in parts per million.
Area of use for this transformation
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf shift in meters.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf rotation in arc seconds.
Bursa Wolf scaling in parts per million.
Human readable text describing intended region of transformation.
Affine Bursa-Wolf matrix transformation
Transformation of coordinates from one geographic coordinate system into another
(also colloquially known as a "datum transformation") is usually carried out as an
implicit concatenation of three transformations:
[geographical to geocentric >> geocentric to geocentric >> geocentric to geographic
The middle part of the concatenated transformation, from geocentric to geocentric, is usually
described as a simplified 7-parameter Helmert transformation, expressed in matrix form with 7
parameters, in what is known as the "Bursa-Wolf" formula:
S = 1 + Ppm/1000000
[ Xt ] [ S -Ez*S +Ey*S Dx ] [ Xs ]
[ Yt ] = [ +Ez*S S -Ex*S Dy ] [ Ys ]
[ Zt ] [ -Ey*S +Ex*S S Dz ] [ Zs ]
[ 1 ] [ 0 0 0 1 ] [ 1 ]
The parameters are commonly referred to defining the transformation "from source coordinate system
to target coordinate system", whereby (XS, YS, ZS) are the coordinates of the point in the source
geocentric coordinate system and (XT, YT, ZT) are the coordinates of the point in the target
geocentric coordinate system. But that does not define the parameters uniquely; neither is the
definition of the parameters implied in the formula, as is often believed. However, the
following definition, which is consistent with the "Position Vector Transformation" convention,
is common E&P survey practice:
(dX, dY, dZ): Translation vector, to be added to the point's position vector in the source
coordinate system in order to transform from source system to target system; also: the coordinates
of the origin of source coordinate system in the target coordinate system
(RX, RY, RZ): Rotations to be applied to the point's vector. The sign convention is such that
a positive rotation about an axis is defined as a clockwise rotation of the position vector when
viewed from the origin of the Cartesian coordinate system in the positive direction of that axis;
e.g. a positive rotation about the Z-axis only from source system to target system will result in a
larger longitude value for the point in the target system. Although rotation angles may be quoted in
any angular unit of measure, the formula as given here requires the angles to be provided in radians.
: The scale correction to be made to the position vector in the source coordinate system in order
to obtain the correct scale in the target coordinate system. M = (1 + dS*10-6), whereby dS is the scale
correction expressed in parts per million.
for an explanation of the Bursa-Wolf transformation
Returns the Well Known Text (WKT) for this object.
The WKT format of this object is: TOWGS84[dx, dy, dz, ex, ey, ez, ppm]
WKT representaion
Indicates whether the current object is equal to another object of the same type.
Returns a hash code for the specified object
A hash code for the specified object
Checks whether the values of this instance is equal to the values of another instance.
Only parameters used for coordinate system are used for comparison.
Name, abbreviation, authority, alias and remarks are ignored in the comparison.
True if equal
Returns the Well Known Text (WKT) for this object.
The WKT format of this object is: TOWGS84[dx, dy, dz, ex, ey, ez, ppm]
WKT representaion
Gets an XML representation of this object
Returns true of all 7 parameter values are 0.0
Structure for a closed 1-dimensional ℝ-interval
The lower bound of the interval
The upper bound of the interval
Initializes this structure with = =
The value for min and max
Initializes this structure with and values
The minimum interval values
The maximum interval values
Method to expand
Function to compute an interval that contains this and
The interval
An interval
Function to test if this overlaps .
The interval to test
true if this interval overlaps
Function to test if this overlaps the interval ℝ[, ].
The mimimum value of the interval
The maximum value of the interval
true if this interval overlaps the interval ℝ[, ]
Function to test if this contains .
This is more rigid than
The interval to test
true if this interval contains
Function to test if this contains the interval ℝ[, ].
This is more rigid than
The mimimum value of the interval
The maximum value of the interval
true if this interval contains the interval ℝ[, ]
Function to test if this contains the value .
The value to test
true if this interval contains the value
Function to test if this intersects the interval .
true if this interval intersects
Function to test if this intersects the interval ℝ[, ].
The mimimum value of the interval
The maximum value of the interval
true if this interval intersects the interval ℝ[, ].
Creates an empty or uninitialzed Interval
An empty or uninitialized
Creates an interval with the range ℝ[,]
The value
An
Creates an interval with the range ℝ[,].
If necessary, val1 and val2 are exchanged.
The minimum value
The maximum value
An
Creates an interval with the range ℝ[,].
The template interval
An
Equality operator for s
The left-hand-side
The right-hand-side
true if the s are equal.
Inequality operator for s
The left-hand-side
The right-hand-side
true if the s are not equal.
Gets a value if this interval is empty/undefined
Gets a value indicating the width of the
Gets a value indicating the centre of the interval (Min + Width * 0.5)
A lightweight class used to store coordinates on the 2-dimensional Cartesian plane.
It is distinct from , which is a subclass of .
Unlike objects of type (which contain additional
information such as an envelope, a precision model, and spatial reference
system information), a Coordinate only contains ordinate values
and propertied.
Coordinates are two-dimensional points, with an additional Z-ordinate.
If an Z-ordinate value is not specified or not defined,
constructed coordinates have a Z-ordinate of NaN
(which is also the value of ).
Apart from the basic accessor functions, NTS supports
only specific operations involving the Z-ordinate.
Interface for lightweight classes used to store coordinates on the 2-dimensional Cartesian plane.
A framework replacement for the System.ICloneable interface.
Function to create a new object that is a (deep) copy of the current instance.
A new object that is a copy of this instance.
Computes the 2-dimensional distance to the coordiante.
The other coordinate
The 2-dimensional distance to other
Compares equality for x- and y-ordinates
The other coordinate
true if x- and y-ordinates of coordinate and coordiante are equal.
Compares equality for x-, y- and z-ordinates
The other coordinate
true if x-, y- and z-ordinates of coordinate and coordiante are equal.
The x-ordinate value
The y-ordinate value
The z-ordinate value
The measure value
Gets or sets all ordinate values
Gets or sets the value of this
The index
The value used to indicate a null or missing ordinate value.
In particular, used for the value of ordinates for dimensions
greater than the defined dimension of a coordinate.
X coordinate.
X coordinate.
X coordinate.
Constructs a Coordinate at (x,y,z).
X value.
Y value.
Z value.
Constructs a Coordinate at (0,0,NaN).
Constructs a Coordinate having the same (x,y,z) values as
other.
Coordinate to copy.
Constructs a Coordinate having the same (x,y,z) values as
other.
Coordinate to copy.
Constructs a Coordinate at (x,y,NaN).
X value.
Y value.
Returns whether the planar projections of the two Coordinates are equal.
Coordinate with which to do the 2D comparison.
true if the x- and y-coordinates are equal;
the Z coordinates do not have to be equal.
Tests if another coordinate has the same value for X and Y, within a tolerance.
A .
The tolerance value.
true if the X and Y ordinates are within the given tolerance.
The Z ordinate is ignored.
Returns true if other has the same values for the x and y ordinates.
Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
Coordinate with which to do the comparison.
true if other is a Coordinate with the same values for the x and y ordinates.
Compares this object with the specified object for order.
Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
Returns
-1 : this.x lowerthan other.x || ((this.x == other.x) AND (this.y lowerthan other.y))
0 : this.x == other.x AND this.y = other.y
1 : this.x greaterthan other.x || ((this.x == other.x) AND (this.y greaterthan other.y))
Coordinate with which this Coordinate is being compared.
A negative integer, zero, or a positive integer as this Coordinate
is less than, equal to, or greater than the specified Coordinate.
Compares this object with the specified object for order.
Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
Returns
-1 : this.x lowerthan other.x || ((this.x == other.x) AND (this.y lowerthan other.y))
0 : this.x == other.x AND this.y = other.y
1 : this.x greaterthan other.x || ((this.x == other.x) AND (this.y greaterthan other.y))
Coordinate with which this Coordinate is being compared.
A negative integer, zero, or a positive integer as this Coordinate
is less than, equal to, or greater than the specified Coordinate.
Returns true if
has the same values for X, Y and Z.
A with which to do the 3D comparison.
true if is a
with the same values for X, Y and Z.
Tests if another coordinate has the same value for Z, within a tolerance.
A .
The tolerance value.
true if the Z ordinates are within the given tolerance.
Returns a string of the form (x,y,z) .
string of the form (x,y,z)
Create a new object as copy of this instance.
Computes the 2-dimensional Euclidean distance to another location.
A with which to do the distance comparison.
the 2-dimensional Euclidean distance between the locations.
The Z-ordinate is ignored.
Computes the 3-dimensional Euclidean distance to another location.
A with which to do the distance comparison.
the 3-dimensional Euclidean distance between the locations.
Gets a hashcode for this coordinate.
A hashcode for this coordinate.
Computes a hash code for a double value, using the algorithm from
Joshua Bloch's book Effective Java"
A hashcode for the double value
Returns whether the planar projections of the two Coordinates are equal.
Coordinate with which to do the 2D comparison.
true if the x- and y-coordinates are equal;
the Z coordinates do not have to be equal.
Compares this object with the specified object for order.
Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
Returns
-1 : this.x lowerthan other.x || ((this.x == other.x) AND (this.y lowerthan other.y))
0 : this.x == other.x AND this.y = other.y
1 : this.x greaterthan other.x || ((this.x == other.x) AND (this.y greaterthan other.y))
Coordinate with which this Coordinate is being compared.
A negative integer, zero, or a positive integer as this Coordinate
is less than, equal to, or greater than the specified Coordinate.
Compares this object with the specified object for order.
Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
Returns
-1 : this.x lowerthan other.x || ((this.x == other.x) AND (this.y lowerthan other.y))
0 : this.x == other.x AND this.y = other.y
1 : this.x greaterthan other.x || ((this.x == other.x) AND (this.y greaterthan other.y))
Coordinate with which this Coordinate is being compared.
A negative integer, zero, or a positive integer as this Coordinate
is less than, equal to, or greater than the specified Coordinate.
Returns true if other has the same values for x, y and z.
Coordinate with which to do the 3D comparison.
true if other is a Coordinate with the same values for x, y and z.
Computes the 2-dimensional Euclidean distance to another location.
The Z-ordinate is ignored.
Coordinate with which to do the distance comparison.
the 2-dimensional Euclidean distance between the locations
Gets or sets the ordinate value for the given index.
The supported values for the index are
, and .
The ordinate index
The ordinate value
Thrown if is not in the valid range.
Gets/Sets Coordinates (x,y,z) values.
X coordinate.
Y coordinate.
Z coordinate.
The measure value
Gets/Sets Coordinates (x,y,z) values.
Gets/Sets the ordinate value for a given index
The index of the ordinate
The ordinate value
Defines a rectangular region of the 2D coordinate plane.
It is often used to represent the bounding box of a Geometry,
e.g. the minimum and maximum x and y values of the Coordinates.
Note that Envelopes support infinite or half-infinite regions, by using the values of
Double.PositiveInfinity and Double.NegativeInfinity.
When Envelope objects are created or initialized,
the supplies extent values are automatically sorted into the correct order.
Defines a rectangular region of the 2D coordinate plane.
It is often used to represent the bounding box of a Geometry,
e.g. the minimum and maximum x and y values of the Coordinates.
Note that Envelopes support infinite or half-infinite regions, by using the values of
Double.PositiveInfinity and Double.NegativeInfinity.
When Envelope objects are created or initialized,
the supplies extent values are automatically sorted into the correct order.
Returns if the point specified by and is contained by the envelope.
The x-ordinate
The y-ordinate
True if the point is contained by the envlope
Returns if the point specified by is contained by the envelope.
The point
True if the point is contained by the envlope
Returns if the envelope specified by is contained by this envelope.
The envelope to test
True if the other envelope is contained by this envlope
Tests if the given point lies in or on the envelope.
the x-coordinate of the point which this Envelope is being checked for containing
the y-coordinate of the point which this Envelope is being checked for containing
true if (x, y) lies in the interior or on the boundary of this Envelope.
Tests if the given point lies in or on the envelope.
the point which this Envelope is being checked for containing
true if the point lies in the interior or on the boundary of this Envelope.
Tests if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).
the Envelope to check
true if this Envelope covers the other
Computes the distance between this and another
Envelope.
The distance between overlapping Envelopes is 0. Otherwise, the
distance is the Euclidean distance between the closest points.
The distance between this and another Envelope.
Expands this envelope by a given distance in all directions.
Both positive and negative distances are supported.
The distance to expand the envelope.
Expands this envelope by a given distance in all directions.
Both positive and negative distances are supported.
The distance to expand the envelope along the the X axis.
The distance to expand the envelope along the the Y axis.
Enlarges this Envelope so that it contains
the given .
Has no effect if the point is already on or within the envelope.
The Coordinate.
Enlarges this Envelope so that it contains
the given .
Has no effect if the point is already on or within the envelope.
The value to lower the minimum x to or to raise the maximum x to.
The value to lower the minimum y to or to raise the maximum y to.
Enlarges this Envelope so that it contains
the other Envelope.
Has no effect if other is wholly on or
within the envelope.
the Envelope to expand to include.
Method to initialize the envelope. Calling this function will result in returning true
Method to initialize the envelope with a . Calling this function will result in an envelope having no extent but a location.
The point
Method to initialize the envelope. Calling this function will result in an envelope having the same extent as .
The envelope
Method to initialize the envelope with two s.
The first point
The second point
Initialize an Envelope for a region defined by maximum and minimum values.
The first x-value.
The second x-value.
The first y-value.
The second y-value.
Computes the intersection of two s.
The envelope to intersect with
A new Envelope representing the intersection of the envelopes (this will be
the null envelope if either argument is null, or they do not intersect
Translates this envelope by given amounts in the X and Y direction.
The amount to translate along the X axis.
The amount to translate along the Y axis.
Check if the point p overlaps (lies inside) the region of this Envelope.
the Coordinate to be tested.
true if the point overlaps this Envelope.
Check if the point (x, y) overlaps (lies inside) the region of this Envelope.
the x-ordinate of the point.
the y-ordinate of the point.
true if the point overlaps this Envelope.
Check if the region defined by other
overlaps (intersects) the region of this Envelope.
the Envelope which this Envelope is
being checked for overlapping.
true if the Envelopes overlap.
Makes this Envelope a "null" envelope..
Gets the area of the envelope
Gets the width of the envelope
Gets the height of the envelope
Gets the maximum x-ordinate of the envelope
Gets the maximum y-ordinate of the envelope
Gets the minimum x-ordinate of the envelope
Gets the mimimum y-ordinate of the envelope
Gets the or the center of the envelope
Returns true if this Envelope is a "null" envelope.
true if this Envelope is uninitialized
or is the envelope of the empty point.
Interface describing objects that can perform an intersects predicate with objects.
The type of the component that can intersect
Predicate function to test if intersects with this object.
The object to test
true if this objects intersects with
Interface describing objects that can expand themselves by objects of type .
The type of objects that can expand clients
Method to expand this object by
The object to expand with
Function to expand compute a new object that is this object by expanded by .
The object to expand with
The expanded object
Test the point q to see whether it intersects the Envelope
defined by p1-p2.
One extremal point of the envelope.
Another extremal point of the envelope.
Point to test for intersection.
true if q intersects the envelope p1-p2.
Tests whether the envelope defined by p1-p2
and the envelope defined by q1-q2
intersect.
One extremal point of the envelope Point.
Another extremal point of the envelope Point.
One extremal point of the envelope Q.
Another extremal point of the envelope Q.
true if Q intersects Point
Creates a null Envelope.
Creates an Envelope for a region defined by maximum and minimum values.
The first x-value.
The second x-value.
The first y-value.
The second y-value.
Creates an Envelope for a region defined by two Coordinates.
The first Coordinate.
The second Coordinate.
Creates an Envelope for a region defined by a single Coordinate.
The Coordinate.
Create an Envelope from an existing Envelope.
The Envelope to initialize from.
Initialize to a null Envelope.
Initialize an Envelope for a region defined by maximum and minimum values.
The first x-value.
The second x-value.
The first y-value.
The second y-value.
Initialize an Envelope for a region defined by two Coordinates.
The first Coordinate.
The second Coordinate.
Initialize an Envelope for a region defined by a single Coordinate.
The Coordinate.
Initialize an Envelope from an existing Envelope.
The Envelope to initialize from.
Makes this Envelope a "null" envelope..
Expands this envelope by a given distance in all directions.
Both positive and negative distances are supported.
The distance to expand the envelope.
Expands this envelope by a given distance in all directions.
Both positive and negative distances are supported.
The distance to expand the envelope along the the X axis.
The distance to expand the envelope along the the Y axis.
Enlarges this Envelope so that it contains
the given .
Has no effect if the point is already on or within the envelope.
The Coordinate.
Enlarges this Envelope so that it contains
the given .
Has no effect if the point is already on or within the envelope.
The value to lower the minimum x to or to raise the maximum x to.
The value to lower the minimum y to or to raise the maximum y to.
Enlarges this Envelope so that it contains
the other Envelope.
Has no effect if other is wholly on or
within the envelope.
the Envelope to expand to include.
Enlarges this Envelope so that it contains
the other Envelope.
Has no effect if other is wholly on or
within the envelope.
the Envelope to expand to include.
Translates this envelope by given amounts in the X and Y direction.
The amount to translate along the X axis.
The amount to translate along the Y axis.
Computes the intersection of two s.
The envelope to intersect with
A new Envelope representing the intersection of the envelopes (this will be
the null envelope if either argument is null, or they do not intersect
Check if the region defined by other
overlaps (intersects) the region of this Envelope.
the Envelope which this Envelope is
being checked for overlapping.
true if the Envelopes overlap.
Use Intersects instead. In the future, Overlaps may be
changed to be a true overlap check; that is, whether the intersection is
two-dimensional.
Use Intersects instead.
Use Intersects instead.
Check if the point p overlaps (lies inside) the region of this Envelope.
the Coordinate to be tested.
true if the point overlaps this Envelope.
Check if the point (x, y) overlaps (lies inside) the region of this Envelope.
the x-ordinate of the point.
the y-ordinate of the point.
true if the point overlaps this Envelope.
Tests if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).
Note that this is not the same definition as the SFS contains,
which would exclude the envelope boundary.
The Envelope to check
true if other is contained in this Envelope
Tests if the given point lies in or on the envelope.
Note that this is not the same definition as the SFS contains,
which would exclude the envelope boundary.
the point which this Envelope is being checked for containing
true if the point lies in the interior or on the boundary of this Envelope.
Tests if the given point lies in or on the envelope.
Note that this is not the same definition as the SFS contains, which would exclude the envelope boundary.
the x-coordinate of the point which this Envelope is being checked for containing
the y-coordinate of the point which this Envelope is being checked for containing
true if (x, y) lies in the interior or on the boundary of this Envelope.
Tests if the given point lies in or on the envelope.
the x-coordinate of the point which this Envelope is being checked for containing
the y-coordinate of the point which this Envelope is being checked for containing
true if (x, y) lies in the interior or on the boundary of this Envelope.
Tests if the given point lies in or on the envelope.
the point which this Envelope is being checked for containing
true if the point lies in the interior or on the boundary of this Envelope.
Tests if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).
the Envelope to check
true if this Envelope covers the other
Computes the distance between this and another
Envelope.
The distance between overlapping Envelopes is 0. Otherwise, the
distance is the Euclidean distance between the closest points.
The distance between this and another Envelope.
Compares two envelopes using lexicographic ordering.
The ordering comparison is based on the usual numerical
comparison between the sequence of ordinates.
Null envelopes are less than all non-null envelopes.
An envelope
Compares two envelopes using lexicographic ordering.
The ordering comparison is based on the usual numerical
comparison between the sequence of ordinates.
Null envelopes are less than all non-null envelopes.
An envelope
Function to get a textual representation of this envelope
A textual representation of this envelope
Creates a new object that is a copy of the current instance.
A new object that is a copy of this instance.
Creates a deep copy of the current envelope.
Calculates the union of the current box and the given point.
Calculates the union of the current box and the given coordinate.
Calculates the union of the current box and the given box.
Moves the envelope to the indicated coordinate.
The new centre coordinate.
Moves the envelope to the indicated point.
The new centre point.
Resizes the envelope to the indicated point.
The new width.
The new height.
Moves and resizes the current envelope.
The new centre point.
The new width.
The new height.
Moves and resizes the current envelope.
The new centre coordinate.
The new width.
The new height.
Zoom the box.
Possible values are e.g. 50 (to zoom in a 50%) or -50 (to zoom out a 50%).
Negative do Envelope smaller.
Positive do Envelope bigger.
perCent = -50 compact the envelope a 50% (make it smaller).
perCent = 200 enlarge envelope by 2.
Initialize to a null Envelope.
Initialize an Envelope for a region defined by two Coordinates.
The first Coordinate.
The second Coordinate.
Initialize an Envelope for a region defined by a single Coordinate.
The Coordinate.
Initialize an Envelope from an existing Envelope.
The Envelope to initialize from.
Enlarges this Envelope so that it contains
the given .
Has no effect if the point is already on or within the envelope.
The Coordinate.
Enlarges this Envelope so that it contains
the other Envelope.
Has no effect if other is wholly on or
within the envelope.
the Envelope to expand to include.
Computes the intersection of two s.
The envelope to intersect with
A new Envelope representing the intersection of the envelopes (this will be
the null envelope if either argument is null, or they do not intersect
Check if the region defined by other
overlaps (intersects) the region of this Envelope.
the Envelope which this Envelope is
being checked for overlapping.
true if the Envelopes overlap.
Use Intersects instead. In the future, Overlaps may be
changed to be a true overlap check; that is, whether the intersection is
two-dimensional.
Use Intersects instead.
Check if the point p overlaps (lies inside) the region of this Envelope.
the Coordinate to be tested.
true if the point overlaps this Envelope.
Tests if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).
Note that this is not the same definition as the SFS contains,
which would exclude the envelope boundary.
The Envelope to check
true if other is contained in this Envelope
Tests if the given point lies in or on the envelope.
Note that this is not the same definition as the SFS contains,
which would exclude the envelope boundary.
the point which this Envelope is being checked for containing
true if the point lies in the interior or on the boundary of this Envelope.
Tests if the given point lies in or on the envelope.
the point which this Envelope is being checked for containing
true if the point lies in the interior or on the boundary of this Envelope.
Tests if the Envelope other lies wholely inside this Envelope (inclusive of the boundary).
the Envelope to check
true if this Envelope covers the other
Computes the distance between this and another
Envelope.
The distance between overlapping Envelopes is 0. Otherwise, the
distance is the Euclidean distance between the closest points.
The distance between this and another Envelope.
Method to parse an envelope from its value
The envelope string
The envelope
Returns true if this Envelope is a "null" envelope.
true if this Envelope is uninitialized
or is the envelope of the empty point.
Returns the difference between the maximum and minimum x values.
max x - min x, or 0 if this is a null Envelope.
Returns the difference between the maximum and minimum y values.
max y - min y, or 0 if this is a null Envelope.
Returns the Envelopes minimum x-value. min x > max x
indicates that this is a null Envelope.
The minimum x-coordinate.
Returns the Envelopes maximum x-value. min x > max x
indicates that this is a null Envelope.
The maximum x-coordinate.
Returns the Envelopes minimum y-value. min y > max y
indicates that this is a null Envelope.
The minimum y-coordinate.
Returns the Envelopes maximum y-value. min y > max y
indicates that this is a null Envelope.
The maximum y-coordinate.
Gets the area of this envelope.
The area of the envelope, or 0.0 if envelope is null
Gets the minimum extent of this envelope across both dimensions.
Gets the maximum extent of this envelope across both dimensions.
Computes the coordinate of the centre of this envelope (as long as it is non-null).
The centre coordinate of this envelope,
or null if the envelope is null.
.
Computes the coordinate of the centre of this envelope (as long as it is non-null).
The centre coordinate of this envelope,
or null if the envelope is null.
.
A spatial object in an AbstractSTRtree.
Returns a representation of space that encloses this Boundable, preferably
not much bigger than this Boundable's boundary yet fast to test for intersection
with the bounds of other Boundables. The class of object returned depends
on the subclass of AbstractSTRtree.
An Envelope (for STRtrees), an Interval (for SIRtrees), or other object
(for other subclasses of AbstractSTRtree).
Gets the item that is bounded
Interface for a coordinate buffer
Adds a coordinate made up of the ordinates (x, y, z, m) to the buffer.
The x-Ordinate
The y-Ordinate
The (optional) z-Ordinate
The (optional) m-Ordinate
Allows repated coordinates to be added
true if the coordinate was successfully added.
Inserts a coordinate made up of the ordinates (, , , ) at index to the buffer.
The index at which to insert the ordinate.
The x-Ordinate
The y-Ordinate
The (optional) z-Ordinate
The (optional) m-Ordinate
Allows repated coordinates to be added
true if the coordinate was successfully inserted.
Sets a m-value at the provided
The index
The value
Sets a z-value at the provided
The index
The value
Converts the contents of this to a .
Optionally you may assign a factory to create the sequence
The factory to use in order to create the sequence.
A coordinate sequence
Gets the (current) capacity of the buffer
Gets the (current) number of coordinates in the buffer
An interface for classes which use the values of the coordinates in a .
Coordinate filters can be used to implement centroid and
envelope computation, and many other functions.
ICoordinateFilter is
an example of the Gang-of-Four Visitor pattern.
Note: it is not recommended to use these filters to mutate the coordinates.
There is no guarantee that the coordinate is the actual object stored in the geometry.
In particular, modified values may not be preserved if the target Geometry uses a non-default .
If in-place mutation is required, use .
Performs an operation with or on coord.
Coordinate to which the filter is applied.
The internal representation of a list of coordinates inside a Geometry.
This allows Geometries to store their
points using something other than the NTS class.
For example, a storage-efficient implementation
might store coordinate sequences as an array of x's
and an array of y's.
Or a custom coordinate class might support extra attributes like M-values.
Implementing a custom coordinate storage structure
requires implementing the and
interfaces.
To use the custom CoordinateSequence, create a
new parameterized by the CoordinateSequenceFactory
The can then be used to create new s.
The new Geometries will use the custom CoordinateSequence implementation.
Returns (possibly a copy of) the ith Coordinate in this collection.
Whether or not the Coordinate returned is the actual underlying
Coordinate or merely a copy depends on the implementation.
Note that in the future the semantics of this method may change
to guarantee that the Coordinate returned is always a copy. Callers are
advised not to assume that they can modify a CoordinateSequence by
modifying the Coordinate returned by this method.
Returns a copy of the i'th coordinate in this sequence.
This method optimizes the situation where the caller is
going to make a copy anyway - if the implementation
has already created a new Coordinate object, no further copy is needed.
The index of the coordinate to retrieve.
A copy of the i'th coordinate in the sequence
Copies the i'th coordinate in the sequence to the supplied Coordinate.
At least the first two dimensions must be copied.
The index of the coordinate to copy.
A Coordinate to receive the value.
Returns ordinate X (0) of the specified coordinate.
The value of the X ordinate in the index'th coordinate.
Returns ordinate Y (1) of the specified coordinate.
The value of the Y ordinate in the index'th coordinate.
Returns the ordinate of a coordinate in this sequence.
Ordinate indices 0 and 1 are assumed to be X and Y.
Ordinate indices greater than 1 have user-defined semantics
(for instance, they may contain other dimensions or measure values).
If the sequence does not provide value for the required ordinate, the implementation must not throw an exception, it should return .
The coordinate index in the sequence.
The ordinate index in the coordinate (in range [0, dimension-1]).
The ordinate value, or if the sequence does not provide values for "/>
Sets the value for a given ordinate of a coordinate in this sequence.
If the sequence can't store the ordinate value, the implementation must not throw an exception, it should simply ignore the call.
The coordinate index in the sequence.
The ordinate index in the coordinate (in range [0, dimension-1]).
The new ordinate value.
Returns (possibly copies of) the Coordinates in this collection.
Whether or not the Coordinates returned are the actual underlying
Coordinates or merely copies depends on the implementation. Note that
if this implementation does not store its data as an array of Coordinates,
this method will incur a performance penalty because the array needs to
be built from scratch.
Expands the given Envelope to include the coordinates in the sequence.
Allows implementing classes to optimize access to coordinate values.
The envelope to expand.
A reference to the expanded envelope.
Creates a reversed version of this coordinate sequence with cloned s
A reversed version of this sequence
Returns the dimension (number of ordinates in each coordinate) for this sequence.
Returns the kind of ordinates this sequence supplys. .
Returns the number of coordinates in this sequence.
An object that knows how to build a particular implementation of
ICoordinateSequence from an array of Coordinates.
Returns a based on the given array;
whether or not the array is copied is implementation-dependent.
A coordinates array, which may not be null nor contain null elements
A coordinate sequence.
Creates a which is a copy
of the given .
This method must handle null arguments by creating an empty sequence.
A coordinate sequence
Creates a of the specified size and dimension.
For this to be useful, the implementation must be mutable.
If the requested dimension is larger than the CoordinateSequence implementation
can provide, then a sequence of maximum possible dimension should be created.
An error should not be thrown.
the dimension of the coordinates in the sequence
(if user-specifiable, otherwise ignored)
A coordinate sequence
Creates a of the specified size and ordinates.
For this to be useful, the implementation must be mutable.
The number of coordinates.
The ordinates each coordinate has. is fix, and can be set.
A coordinate sequence.
Gets the Ordinate flags that sequences created by this factory can maximal cope with.
An interface for classes which process the coordinates in a .
A filter can either record information about each coordinate,
or change the value of the coordinate.
Filters can be
used to implement operations such as coordinate transformations, centroid and
envelope computation, and many other functions.
classes support the concept of applying a
CoordinateSequenceFilter to each
s they contain.
For maximum efficiency, the execution of filters can be short-circuited by using the property.
CoordinateSequenceFilter is an example of the Gang-of-Four Visitor pattern.
Note: In general, it is preferable to treat Geometrys as immutable.
Mutation should be performed by creating a new Geometry object (see
and for convenient ways to do this).
An exception to this rule is when a new Geometry has been created via .
In this case mutating the Geometry will not cause aliasing issues,
and a filter is a convenient way to implement coordinate transformation.
Martin Davis
Performs an operation on a coordinate in a .
the CoordinateSequence to which the filter is applied
i the index of the coordinate to apply the filter to
Reports whether the application of this filter can be terminated.
Once this method returns false, it should
continue to return false on every subsequent call.
Reports whether the execution of this filter has modified the coordinates of the geometry.
If so, will be executed
after this filter has finished being executed.
Most filters can simply return a constant value reflecting whether they are able to change the coordinates.
Geometry classes support the concept of applying
an IGeometryComponentFilter filter to the Geometry.
The filter is applied to every component of the Geometry
which is itself a Geometry
and which does not itself contain any components.
(For instance, all the LinearRings in Polygons are visited,
but in a MultiPolygon the Polygons themselves are not visited.)
Thus the only classes of Geometry which must be
handled as arguments to
are s, s and s.
An IGeometryComponentFilter filter can either
record information about the Geometry
or change the Geometry in some way.
IGeometryComponentFilter is an example of the Gang-of-Four Visitor pattern.
>
Performs an operation with or on geom.
A Geometry to which the filter is applied.
Supplies a set of utility methods for building Geometry objects
from lists of Coordinates.
Build an appropriate Geometry, MultiGeometry, or
GeometryCollection to contain the Geometrys in
it.
If geomList contains a single Polygon,
the Polygon is returned.
If geomList contains several Polygons, a
MultiPolygon is returned.
If geomList contains some Polygons and
some LineStrings, a GeometryCollection is
returned.
If geomList is empty, an empty GeometryCollection
is returned.
The Geometry to combine.
A Geometry of the "smallest", "most type-specific"
class that can contain the elements of geomList.
Returns a clone of g based on a CoordinateSequence created by this
GeometryFactory's CoordinateSequenceFactory.
Creates a Point using the given Coordinate; a null Coordinate will create
an empty Geometry.
The coordinate
A Point
Creates a Point using the given CoordinateSequence; a null or empty
CoordinateSequence will create an empty Point.
The coordiante sequence.
A Point
Creates a LineString using the given Coordinates; a null or empty array will
create an empty LineString. Consecutive points must not be equal.
An array without null elements, or an empty array, or null.
A LineString
Creates a LineString using the given Coordinates; a null or empty array will
create an empty LineString. Consecutive points must not be equal.
An array without null elements, or an empty array, or null.
A LineString
Creates a LinearRing using the given Coordinates; a null or empty array will
create an empty LinearRing. The points must form a closed and simple
linestring. Consecutive points must not be equal.
An array without null elements, or an empty array, or null.
Creates a LinearRing using the given CoordinateSequence; a null or empty CoordinateSequence will
create an empty LinearRing. The points must form a closed and simple
linestring. Consecutive points must not be equal.
A CoordinateSequence possibly empty, or null.
Constructs a Polygon with the given exterior boundary and
interior boundaries.
The outer boundary of the new Polygon, or
null or an empty LinearRing if
the empty point is to be created.
The inner boundaries of the new Polygon, or
null or empty LinearRing s if
the empty point is to be created.
Constructs a Polygon with the given exterior boundary.
the outer boundary of the new Polygon, or
null or an empty LinearRing if
the empty geometry is to be created.
The polygon
Constructs a Polygon with the given exterior boundary.
the outer boundary of the new Polygon, or
null or an empty LinearRing if
the empty geometry is to be created.
The polygon
Constructs a Polygon with the given exterior boundary.
the outer boundary of the new Polygon, or
null or an empty LinearRing if
the empty geometry is to be created.
The polygon
Creates a using the given Coordinates.
A null or empty array will create an empty MultiPoint.
An array (without null elements), or an empty array, or null
A object
Creates a using the given Points.
A null or empty array will create an empty MultiPoint.
An array (without null elements), or an empty array, or null.
A object
Creates a using the given CoordinateSequence.
A null or empty CoordinateSequence will create an empty MultiPoint.
A CoordinateSequence (possibly empty), or null.
Creates a MultiLineString using the given LineStrings; a null or empty
array will create an empty MultiLineString.
LineStrings, each of which may be empty but not null-
Creates a MultiPolygon using the given Polygons; a null or empty array
will create an empty Polygon. The polygons must conform to the
assertions specified in the OpenGIS Simple Features
Specification for SQL.
Polygons, each of which may be empty but not null.
Creates a GeometryCollection using the given Geometries; a null or empty
array will create an empty GeometryCollection.
Geometries, each of which may be empty but not null.
Creates a with the same extent as the given envelope.
Gets the coordinate sequence factory to use when creating geometries.
Gets the spatial reference id to assign when creating geometries
Gets the PrecisionModel that Geometries created by this factory
will be associated with.
GeometryCollection classes support the concept of
applying a IGeometryFilter to the Geometry.
The filter is applied to every element Geometry.
A IGeometryFilter can either record information about the Geometry
or change the Geometry in some way.
IGeometryFilter is an example of the Gang-of-Four Visitor pattern.
Performs an operation with or on geom.
A Geometry to which the filter is applied.
Interface for basic implementation of Geometry.
Gets an array of ordinate values.
Gets the geometry at the given index
A method moved in IGeometry
The index of the geometry to get
A geometry that is part of the
Normalizes this geometry
Creates a new Geometry which is a normalized copy of this Geometry.
A normalized copy of this geometry.
Gets the Well-Known-Binary representation of this geometry
A byte array describing this geometry
Gets the Well-Known-Text representation of this geometry
A text describing this geometry
Computes the convex hull for this geometry
The convex hull
Tests whether this geometry is topologically equal to the argument geometry
as defined by the SFS equals predicate.
A geometry
true if this geometry is topologically equal to
Tests whether two geometries are exactly equal
in their normalized forms.
>
A geometry
true if the input geometries are exactly equal in their normalized form
Returns the minimum distance between this Geometry
and the Geometry g.
The Geometry from which to compute the distance.
Performs an operation with or on this Geometry's
coordinates. If you are using this method to modify the point, be sure
to call afterwards.
Note that you cannot use this method to modify this Geometry
if its underlying 's Get method
returns a copy of the , rather than the actual
Coordinate stored (if it even stores Coordinates at all).
The filter to apply to this Geometry's coordinates
Performs an operation on the coordinates in this Geometry's s.
If this method modifies any coordinate values, must be called to update the geometry state.
The filter to apply
Performs an operation with or on this Geometry and its
subelement Geometrys (if any).
Only GeometryCollections and subclasses
have subelement Geometry's.
The filter to apply to this Geometry (and
its children, if it is a GeometryCollection).
Performs an operation with or on this Geometry and its
component Geometry's. Only GeometryCollections and
Polygons have component Geometry's; for Polygons they are the LinearRings
of the shell and holes.
The filter to apply to this Geometry.
Notifies this geometry that its coordinates have been changed by an external
party (using a CoordinateFilter, for example). The Geometry will flush
and/or update any information it has cached (such as its ).
Notifies this Geometry that its Coordinates have been changed by an external
party. When is called, this method will be called for
this Geometry and its component geometries.
The used to create this geometry
The the used to create this.
Gets the spatial reference id
Gets the geometry type
Gets the OGC geometry type
Gets the area of this geometry if applicable, otherwise 0d
A method moved in IGeometry
Gets the length of this geometry if applicable, otherwise 0d
A method moved in IGeometry
Gets the number of geometries that make up this geometry
A method moved in IGeometry
Get the number of coordinates, that make up this geometry
A method moved to IGeometry
Gets the boundary geometry
Gets the of the boundary
Gets the centroid of the geometry
A property moved in IGeometry
Gets a that is guaranteed to be part of the geometry, usually the first.
Gets an array of s that make up this geometry.
Gets the of this geometry
Gets the envelope this would fit into.
Gets the envelope this would fit into.
Gets a point that is ensured to lie inside this geometry.
A ISurface method moved in IGeometry
Gets or sets the user data associated with this geometry
Floating precision corresponds to the standard
double-precision floating-point representation, which is
based on the IEEE-754 standard
Floating single precision corresponds to the standard
single-precision floating-point representation, which is
based on the IEEE-754 standard
Fixed Precision indicates that coordinates have a fixed number of decimal places.
The number of decimal places is determined by the log10 of the scale factor.
Interface for classes specifying the precision model of the Coordinates in a IGeometry.
In other words, specifies the grid of allowable points for all IGeometrys.
Function to compute a precised value of
The value to precise
The precised value
Method to precise .
The coordinate to precise
Gets a value indicating the precision model type
Gets a value indicating if this precision model has floating precision
Gets a value indicating the maximum precision digits
Gets a value indicating the scale factor of a fixed precision model
The number of decimal places of precision is
equal to the base-10 logarithm of the scale factor.
Non-integral and negative scale factors are supported.
Negative scale factors indicate that the places
of precision is to the left of the decimal point.
Interface for surfaces
Interface for a curve
Gets a value indicating the sequence of coordinates that make up curve
Gets a value indicating the start point of the curve
Gets a value indicating the end point of the curve
Gets a value indicating that the curve is closed.
In this case an are equal.
Gets a value indicating that the curve is a ring.
Interface to identify all IGeometry subclasses that have a Dimension of
and have components that are s.
Martin Davis
Interface to identify all IGeometry subclasses that have a Dimension of
and have components which are s.
Martin Davis
Gets a value indicating whether this ring is oriented counter-clockwise.
Provides constants representing the dimensions of a point, a curve and a surface.
Also provides constants representing the dimensions of the empty geometry and
non-empty geometries, and the wildcard constant meaning "any dimension".
These constants are used as the entries in s.
Dimension value of a point (0).
Dimension value of a curve (1).
Dimension value of a surface (2).
Dimension value of a empty point (-1).
Dimension value of non-empty geometries (= {Point,Curve,A}).
Dimension value for any dimension (= {False, True}).
Class containing static methods for conversions
between dimension values and characters.
Symbol for the FALSE pattern matrix entry
Symbol for the TRUE pattern matrix entry
Symbol for the DONTCARE pattern matrix entry
Symbol for the P (dimension 0) pattern matrix entry
Symbol for the L (dimension 1) pattern matrix entry
Symbol for the A (dimension 2) pattern matrix entry
Converts the dimension value to a dimension symbol,
for example, True => 'T'
Number that can be stored in the IntersectionMatrix.
Possible values are True, False, Dontcare, 0, 1, 2.
Character for use in the string representation of an IntersectionMatrix.
Possible values are T, F, * , 0, 1, 2.
Converts the dimension symbol to a dimension value,
for example, '*' => Dontcare
Character for use in the string representation of an IntersectionMatrix.
Possible values are T, F, * , 0, 1, 2.
Number that can be stored in the IntersectionMatrix.
Possible values are True, False, Dontcare, 0, 1, 2.
Interface to identify all IGeometry subclasses that have a Dimension of
and have components that ar s.
Martin Davis
Enumeration of OGC Geometry Types
Point.
LineString.
Polygon.
MultiPoint.
MultiLineString.
MultiPolygon.
GeometryCollection.
CircularString
CompoundCurve
CurvePolygon
MultiCurve
MultiSurface
Curve
Surface
PolyhedralSurface
TIN
Static utility functions for dealing with and dimension
Translates the -flag to a number of dimensions.
The ordinates flag
The number of dimensions
Translates a dimension value to an -flag.
The flag for is set first.
The dimension.
The ordinates-flag
Converts an encoded flag to an array of indices.
The ordinate flags
The maximum oridinate flag that is to be checked
The ordinate indices
Converts an array of values to an flag.
An array of values
An flag.
An interface for classes which prepare s
in order to optimize the performance of repeated calls to specific geometric operations.
A given implementation may provide optimized implementations
for only some of the specified methods, and delegate the remaining
methods to the original operations.
An implementation may also only optimize certain situations, and delegate others.
See the implementing classes for documentation about which methods and situations
they optimize.
Subclasses are intended to be thread-safe, to allow IPreparedGeometry
to be used in a multi-threaded context
(which allows extracting maximum benefit from the prepared state).
Martin Davis
Tests whether the base contains a given geometry.
The Geometry to test
true if this Geometry contains the given Geometry
Tests whether the base contains a given geometry.
The ContainsProperly predicate has the following equivalent definitions:
- Every point of the other geometry is a point of this geometry's interior.
- The DE-9IM Intersection Matrix for the two geometries matches >[T**FF*FF*]
The advantage to using this predicate is that it can be computed
efficiently, with no need to compute topology at individual points.
An example use case for this predicate is computing the intersections
of a set of geometries with a large polygonal geometry.
Since intersection is a fairly slow operation, it can be more efficient
to use containsProperly to filter out test geometries which lie
wholly inside the area. In these cases the intersection
known a priori to be simply the original test geometry.
The geometry to test
true if this geometry properly contains the given geometry
Tests whether the base is covered by a given geometry.
The geometry to test
true if this geometry is covered by the given geometry
Tests whether the base covers a given geometry.
The geometry to test
true if this geometry covers the given geometry
Tests whether the base crosses a given geometry.
The geometry to test
true if this geometry crosses the given geometry
Tests whether the base is disjoint from given geometry.
This method supports s as input
The geometry to test
true if this geometry is disjoint from the given geometry
Tests whether the base intersects a given geometry.
This method supports s as input
The geometry to test
true if this geometry intersects the given geometry
Tests whether the base overlaps a given geometry.
The geometry to test
true if this geometry overlaps the given geometry
Tests whether the base touches a given geometry.
The geometry to test
true if this geometry touches the given geometry
Tests whether the base is within a given geometry.
The geometry to test
true if this geometry is within the given geometry
Gets the original which has been prepared.
Models a Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.
DE-9IM matrices (such as "212FF1FF2")
specify the topological relationship between two s.
This class can also represent matrix patterns (such as "T*T******")
which are used for matching instances of DE-9IM matrices.
Methods are provided to:
- Set and query the elements of the matrix in a convenient fashion.
- Convert to and from the standard string representation (specified in SFS Section 2.1.13.2).
- Test to see if a matrix matches a given pattern string.
For a description of the DE-9IM and the spatial predicates derived from it, see the
OGC 99-049 OpenGIS Simple Features Specification for SQL. as well as
OGC 06-103r4 OpenGIS
Implementation Standard for Geographic information -
Simple feature access - Part 1: Common architecture
(which provides some further details on certain predicate specifications).
The entries of the matrix are defined by the constants in the enum.
The indices of the matrix represent the topological locations
that occur in a geometry (Interior, Boundary, Exterior).
These are provided as constants in the enum.
Internal representation of this .
Creates an with null location values.
Creates an with the given dimension
symbols.
A string of nine dimension symbols in row major order.
Creates an with the same elements as
other.
An to copy.
Adds one matrix to another.
Addition is defined by taking the maximum dimension value of each position
in the summand matrices.
The matrix to add.
Tests if the dimension value matches TRUE
(i.e. has value 0, 1, 2 or TRUE).
A number that can be stored in the IntersectionMatrix.
Possible values are {, , , , , }
true if the dimension value matches
Tests if the dimension value satisfies the dimension symbol.
a number that can be stored in the IntersectionMatrix.
Possible values are {True, False, Dontcare, 0, 1, 2}.
A character used in the string
representation of an .
Possible values are T, F, * , 0, 1, 2.
true if the dimension symbol encompasses the dimension value.
Tests if each of the actual dimension symbols in a matrix string satisfies the
corresponding required dimension symbol in a pattern string.
Nine dimension symbols to validate.
Possible values are T, F, * , 0, 1, 2.
Nine dimension symbols to validate
against. Possible values are T, F, * , 0, 1, 2.
true if each of the required dimension
symbols encompass the corresponding actual dimension symbol.
Changes the value of one of this elements.
The row of this ,
indicating the interior, boundary or exterior of the first
The column of this ,
indicating the interior, boundary or exterior of the second
The new value of the element
Changes the elements of this to the
dimension symbols in dimensionSymbols.
Nine dimension symbols to which to set this
s elements. Possible values are {T, F, * , 0, 1, 2}
Changes the specified element to minimumDimensionValue if the element is less.
The row of this ,
indicating the interior, boundary or exterior of the first .
The column of this ,
indicating the interior, boundary or exterior of the second .
The dimension value with which to compare the
element. The order of dimension values from least to greatest is
True, False, Dontcare, 0, 1, 2.
If row >= 0 and column >= 0, changes the specified element to minimumDimensionValue
if the element is less. Does nothing if row is smaller to 0 or column is smaller to 0.
For each element in this , changes the
element to the corresponding minimum dimension symbol if the element is
less.
Nine dimension symbols with which to
compare the elements of this . The
order of dimension values from least to greatest is Dontcare, True, False, 0, 1, 2.
Changes the elements of this to dimensionValue.
The dimension value to which to set this
s elements. Possible values True, False, Dontcare, 0, 1, 2}.
Returns the value of one of this s
elements.
The row of this , indicating
the interior, boundary or exterior of the first .
The column of this ,
indicating the interior, boundary or exterior of the second .
The dimension value at the given matrix position.
Returns true if this is FF*FF****.
true if the two 's related by
this are disjoint.
Returns true if isDisjoint returns false.
true if the two 's related by
this intersect.
Returns true if this is
FT*******, F**T***** or F***T****.
The dimension of the first .
The dimension of the second .
true if the two
s related by this touch; Returns false
if both s are points.
Returns true if this is
T*T****** (for a point and a curve, a point and an area or a line
and an area) 0******** (for two curves).
The dimension of the first .
The dimension of the second .
true if the two
s related by this cross. For this
function to return true, the s must
be a point and a curve; a point and a surface; two curves; or a curve
and a surface.
Returns true if this is
T*F**F***.
true if the first is within the second.
Returns true if this is
T*****FF*.
true if the first contains the second.
Returns true if this is T*****FF*
or *T****FF* or ***T**FF* or ****T*FF*.
true if the first covers the second
Returns true if this is T*F**F***
or *TF**F*** or **FT*F*** or **F*TF***
true if the first is covered by the second
Tests whether the argument dimensions are equal and
this IntersectionMatrix matches
the pattern T*F**FFF*.
Note: This pattern differs from the one stated in
Simple feature access - Part 1: Common architecture.
That document states the pattern as TFFFTFFFT. This would
specify that
two identical POINTs are not equal, which is not desirable behaviour.
The pattern used here has been corrected to compute equality in this situation.
The dimension of the first .
The dimension of the second .
true if the two s
related by this are equal; the
s must have the same dimension to be equal.
Returns true if this is
T*T***T** (for two points or two surfaces)
1*T***T** (for two curves).
The dimension of the first .
The dimension of the second .
true if the two
s related by this overlap. For this
function to return true, the s must
be two points, two curves or two surfaces.
Returns whether the elements of this
satisfies the required dimension symbols.
Nine dimension symbols with which to
compare the elements of this . Possible
values are {T, F, * , 0, 1, 2}.
true if this
matches the required dimension symbols.
Transposes this IntersectionMatrix.
This as a convenience,
Returns a nine-character String representation of this .
The nine dimension symbols of this
in row-major order.
See methods Get(int, int) and Set(int, int, int value)
The location of a relative to a
DE-9IM row index of the interior of the first point and column index of
the interior of the second point. Location value for the interior of a
point.
int value = 0;
DE-9IM row index of the boundary of the first point and column index of
the boundary of the second point. Location value for the boundary of a
point.
int value = 1;
DE-9IM row index of the exterior of the first point and column index of
the exterior of the second point. Location value for the exterior of a
point.
int value = 2;
Used for uninitialized location values.
int value = 1;
Utility class for enumeration
Converts the location value to a location symbol, for example, EXTERIOR => 'e'.
Either 'e', 'b', 'i' or '-'.
Flags for Ordinate values
No ordinates
Flag for the x-ordinate
Flag for the y-ordinate
Flag for both x- and y-ordinate
Flag for the z-ordinate
Flag for x-, y- and z-ordinate
Flag for the m-ordinate
Flag for x-, y- and m-ordinate
Flag for x-, y-, z- and m-ordinate
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 2
Flag for ordinate at index 10
Flag for ordinate at index 11
Flag for ordinate at index 12
Flag for ordinate at index 13
Flag for ordinate at index 14
Flag for ordinate at index 15
Flag for ordinate at index 16
Flag for ordinate at index 17
Flag for ordinate at index 18
Flag for ordinate at index 19
Flag for ordinate at index 20
Flag for ordinate at index 21
Flag for ordinate at index 22
Flag for ordinate at index 23
Flag for ordinate at index 24
Flag for ordinate at index 25
Flag for ordinate at index 26
Flag for ordinate at index 27
Flag for ordinate at index 28
Flag for ordinate at index 29
Flag for ordinate at index 30
Flag for ordinate at index 31
Flag for ordinate at index 32
Standard ordinate index values.
X Ordinate = 0.
Y Ordinate = 1.
Z Ordinate = 2.
M Ordinate = 3
Ordinate at index 2
Ordinate at index 3
Ordinate at index 4
Ordinate at index 5
Ordinate at index 6
Ordinate at index 7
Ordinate at index 8
Ordinate at index 9
Ordinate at index 10
Ordinate at index 11
Ordinate at index 12
Ordinate at index 13
Ordinate at index 14
Ordinate at index 15
Ordinate at index 16
Ordinate at index 17
Ordinate at index 18
Ordinate at index 19
Ordinate at index 20
Ordinate at index 21
Ordinate at index 22
Ordinate at index 23
Ordinate at index 24
Ordinate at index 25
Ordinate at index 26
Ordinate at index 27
Ordinate at index 28
Ordinate at index 29
Ordinate at index 30
Ordinate at index 31
Ordinate at index 32
Static class that provides access to a class.
Gets or sets the instance.
Interface for classes that provide access to coordinate system and tranformation facilities.
Returns the coordinate system by identifier
The initialization for the coordinate system
The coordinate system.
Returns the coordinate system by and .
The authority for the coordinate system
The code assigned to the coordinate system by .
The coordinate system.
Method to get the identifier, by which this coordinate system can be accessed.
The authority name
The code assigned by
The identifier or null
Method to create a coordinate tranformation between two spatial reference systems, defined by their identifiers
This is a convenience function for .
The identifier for the source spatial reference system.
The identifier for the target spatial reference system.
A coordinate transformation, null if no transformation could be created.
Method to create a coordinate tranformation between two spatial reference systems
The source spatial reference system.
The target spatial reference system.
A coordinate transformation, null if no transformation could be created.
Delegate function to get a coordinate system from a given initialization string
The initialization string
The type of the coordinate sytem.
An interface for classes that offer access to geometry creating facillities.
Creates a precision model based on given precision model type
The precision model type
Creates a precision model based on given precision model.
The precision model
Creates a precision model based on the given scale factor.
The scale factor
The precision model.
Creates a new geometry factory, using , and .
The geometry factory
Creates a geometry fractory using and .
The geometry factory
Creates a geometry factory using the given along with and .
The coordinate sequence factory to use.
The geometry factory.
Creates a geometry factory using the given along with and .
The coordinate sequence factory to use.
The geometry factory.
Creates a geometry factory using the given along with and .
The coordinate sequence factory to use.
The spatial reference id.
The geometry factory.
Creates a geometry factory using the given ,
and .
The coordinate sequence factory to use.
The spatial reference id.
The coordinate sequence factory.
The geometry factory.
Reads the configuration from the configuration
Writes the current configuration to the configuration
Gets the default spatial reference id
Gets or sets the coordiate sequence factory to use
Gets or sets the default precision model
Byte order
BigEndian
LittleEndian
Lightweight class that handles OGC Geometry type declaration
Initializes this instance
The value describing the
Inititalizes this instance based on a geometry and an Ordinates flag.
The geometry.
The ordinates flag.
Inititalizes this instance based on an
The OGC geometry type
Inititalizes this instance based on an and an SRID indicator
The OGC geometry type
Indicator if a SRID is supplied.
Inititalizes this instance based on an and an SRID indicator
The OGC geometry type
The ordinates flag.
Indicator if a SRID is supplied.
Gets or sets the base geometry type
Gets the OGC Well-Known-Binary type code
Gets the PostGIS Enhanced Well-Known-Binary type code
Gets or sets whether z-ordinate values are stored along with the geometry.
Gets or sets whether m-ordinate values are stored along with the geometry.
Gets whether SRID value is stored along with the geometry.
Gets or sets whether z-ordinate values are stored along with the geometry.
Gets or sets whether m-ordinate values are stored along with the geometry.
Gets or sets whether z-ordinates are stored along with the geometry.
PostGis EWKB format.
Gets or sets whether z-ordinates are stored along with the geometry.
PostGis EWKB format.
Gets or sets whether z-ordinates are stored along with the geometry.
PostGis EWKB format.
Interface for input/parsing of instances.
The type of the source to read from.
Base interface for geometry reader or writer interfaces.
Gets or sets whether the SpatialReference ID must be handled.
Gets and flag that indicate which ordinates can be handled.
This flag must always return at least .
Gets and sets flag that indicate which ordinates shall be handled.
No matter which flag you supply, are always processed,
the rest is binary and 'ed with .
Reads a geometry representation from a to a Geometry.
The source to read the geometry from
For WKT is string,
for WKB is byte[],
A Geometry
Reads a geometry representation from a to a Geometry.
The stream to read from.
A Geometry
Gets or sets whether invalid linear rings should be fixed
Interface for textual input of instances.
Interface for binary input of instances.
Interface for binary output of instances.
The type of the output to produce.
Writes a binary representation of a given geometry.
The geometry
The binary representation of
Writes a binary representation of a given geometry.
Interface for binary output of instances.
Gets or sets the desired
Interface for textual output of instances.
Thrown by a WKTReader when a parsing problem occurs.
Creates a ParseException with the given detail message.
A description of this ParseException.
Creates a ParseException with es detail message.
An exception that occurred while a WKTReader was
parsing a Well-known Text string.
Creates a ParseException with s detail message
The inner exception
Buffer style.
Specifies a round line buffer end cap endCapStyle (Default).
/
Specifies a butt (or flat) line buffer end cap endCapStyle.
Specifies a square line buffer end cap endCapStyle.
End cap style constants
Specifies a round line buffer end cap style.
Specifies a flat line buffer end cap style.
Specifies a square line buffer end cap style.
An interface for classes that control the parameters for the buffer building process
The parameters allow control over:
- Quadrant segments (accuracy of approximation for circular arcs)
- End Cap style
- Join style
- Mitre limit
- whether the buffer is single-sided
Gets/Sets the number of quadrant segments which will be used
QuadrantSegments is the number of line segments used to approximate an angle fillet.
- qs >>= 1
joins are round, and qs indicates the number of segments to use to approximate a quarter-circle.
- qs = 0
joins are beveled
- qs < 0
joins are mitred, and the value of qs indicates the mitre ration limit as mitreLimit = |qs|
Gets/Sets the end cap style of the generated buffer.
The styles supported are , , and .
The default is .
Gets/Sets the join style for outside (reflex) corners between line segments.
Allowable values are (which is the default), and
Sets the limit on the mitre ratio used for very sharp corners.
The mitre ratio is the ratio of the distance from the corner
to the end of the mitred offset corner.
When two line segments meet at a sharp angle,
a miter join will extend far beyond the original geometry.
(and in the extreme case will be infinitely far.)
To prevent unreasonable geometry, the mitre limit
allows controlling the maximum length of the join corner.
Corners with a ratio which exceed the limit will be beveled.
Gets or sets whether the computed buffer should be single-sided.
A single-sided buffer is constructed on only one side of each input line.
The side used is determined by the sign of the buffer distance:
- a positive distance indicates the left-hand side
- a negative distance indicates the right-hand side
The single-sided buffer of point geometries is the same as the regular buffer.
The End Cap Style for single-sided buffers is always ignored,
and forced to the equivalent of .
Gets or sets the factor used to determine the simplify distance tolerance
for input simplification.
Simplifying can increase the performance of computing buffers.
Generally the simplify factor should be greater than 0.
Values between 0.01 and .1 produce relatively good accuracy for the generate buffer.
Larger values sacrifice accuracy in return for performance.
Join style constants
Specifies a round join style.
Specifies a mitre join style.
Specifies a bevel join style.
A framework replacement for the System.BitConverter class
Only partial functionality is provided!
Function to convert the bits of a double to a the bits of a long
The double value
The long value
Function to convert the bits of a long to a the bits of a double
The long value
The double value