The values for each of the group variables are listed in the appendix. A brief definition of each variable is listed below.
If a member of the Coord group is not defined then a default value will be substituted. The default values are listed below.
Lat/lon: horizontal datum, horizontal units, latitude, longitude UTM: horizontal datum, horizontal units, UTM zone State plane: horizontal datum, horizontal units, SPC zone HPGN: horizontal datum, horizontal units, HPGN area CPP: horizontal datum, horizontal units, CPP lat, CPP long
Ellipse is used with non-NAD geographic and UTM systems as well as user-defined projections. MajorR and MinorR are used with user-defined projections.
The coordinate system information may be stored with each spatial data object within an XMDF file. The following functions are used to create or retrieve the coordinate system group id for a spatial data object. This group id is used in rest of the coordinate system functions to set or get the information for the coordinate system.
int xfCreateCoordinateGroup(xid SpatialId, xid *CoordId); int xfOpenCoordinateGroup(xid SpatialId, xid *CoordId);
SUBROUTINE XF_CREATE_COORD_GROUP(SpatialId, CoordId, Error) INTEGER(XID), INTENT(IN) :: SpatialId INTEGER(XID), INTENT(OUT) :: CoordId INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_OPEN_COORD_GROUP(SpatialId, CoordId, Error) INTEGER(XID), INTENT(IN) :: SpatialId INTEGER(XID), INTENT(OUT) :: CoordId INTEGER, INTENT(OUT) :: Error
int xfGetHorizDatum(xid CoordId, int *val); int xfGetHorizUnits(xid CoordId, int *val); int xfGetVertDatum(xid CoordId, int *val); int xfGetVertUnits(xid CoordId, int *val); int xfGetLat(xid CoordId, int *val); int xfGetLon(xid CoordId, int *val); int xfGetUTMZone(xid CoordId, int *val); int xfGetSPCZone(xid CoordId, int *val); int xfGetHPGNArea(xid CoordId, int *val); int xfGetCPPLat(xid CoordId, double *val); int xfGetCPPLon(xid CoordId, double *val); int xfGetEllipse(xid CoordId, int *val); int xfGetMajorR(xid CoordId, double *val); int xfGetMinorR(xid CoordId, double *val); int xfSetHorizDatum(xid CoordId, int val); int xfSetHorizUnits(xid CoordId, int val); int xfSetVertDatum(xid CoordId, int val); int xfSetVertUnits(xid CoordId, int val); int xfSetLat(xid CoordId, int val); int xfSetLon(xid CoordId, int val); int xfSetUTMZone(xid CoordId, int val); int xfSetSPCZone(xid CoordId, int val); int xfSetHPGNArea(xid CoordId, int val); int xfSetCPPLat(xid CoordId, double val); int xfSetCPPLon(xid CoordId, double val); int xfSetEllipse(xid CoordId, int val); int xfSetMajorR(xid CoordId, double val); int xfSetMinorR(xid CoordId, double val);
SUBROUTINE XF_GET_HORIZ_DATUM(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_HORIZ_UNITS(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_VERT_DATUM(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_VERT_UNITS(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_LAT(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_LON(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_UTM_ZONE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_SPC_ZONE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_HPGN_AREA(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_CPP_LAT(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_CPP_LON(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_ELLIPSE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_MAJOR_R(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_GET_MINOR_R(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(OUT) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_HORIZ_DATUM(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_HORIZ_UNITS(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_VERT_DATUM(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_VERT_UNITS(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_LAT(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_LON(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_UTM_ZONE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_SPC_ZONE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_HPGN_AREA(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_CPP_LAT(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_CPP_LON(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_ELLIPSE(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId INTEGER, INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_MAJOR_R(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error SUBROUTINE XF_SET_MINOR_R(CoordId, Val, Error) INTEGER(XID), INTENT(IN) :: CoordId REAL(DOUBLE), INTENT(IN) :: Val INTEGER, INTENT(OUT) :: Error