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 >>= 1joins are round, and qs indicates the number of segments to use to approximate a quarter-circle. qs = 0joins are beveled qs < 0joins 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