thrownewArgumentOutOfRangeException("size",size,"Must be in the form <digit> * 10^<digit>.");
if(!IsValidSize(horizontalPrecision))
thrownewArgumentOutOfRangeException("horizontalPrecision",horizontalPrecision,"Must be in the form <digit> * 10^<digit>.");
if(!IsValidSize(verticalPrecision))
thrownewArgumentOutOfRangeException("verticalPrecision",verticalPrecision,"Must be in the form <digit> * 10^<digit>.");
Version=version;
Size=size;
HorizontalPrecision=horizontalPrecision;
VerticalPrecision=verticalPrecision;
Latitude=latitude;
Longitude=longitude;
Altitude=altitude;
}
/// <summary>
/// Version number of the representation.
/// This must be zero.
/// Implementations are required to check this field and make no assumptions about the format of unrecognized versions.
/// </summary>
publicbyteVersion{get;privateset;}
/// <summary>
/// The diameter of a sphere enclosing the described entity, in centimeters.
/// Only numbers of the form decimal digit times 10 in the power of a decimal digit are allowed since it is expressed as a pair of four-bit unsigned integers,
/// each ranging from zero to nine, with the most significant four bits representing the base and the second number representing the power of ten by which to multiply the base.
/// This allows sizes from 0e0 (<1cm) to 9e9(90,000km) to be expressed.
/// This representation was chosen such that the hexadecimal representation can be read by eye; 0x15 = 1e5.
/// Four-bit values greater than 9 are undefined, as are values with a base of zero and a non-zero exponent.
///
/// Since 20000000m (represented by the value 0x29) is greater than the equatorial diameter of the WGS 84 ellipsoid (12756274m),
/// it is therefore suitable for use as a "worldwide" size.
/// </summary>
publiculongSize{get;privateset;}
/// <summary>
/// The horizontal precision of the data, in centimeters, expressed using the same representation as Size.
/// This is the diameter of the horizontal "circle of error", rather than a "plus or minus" value.
/// (This was chosen to match the interpretation of Size; to get a "plus or minus" value, divide by 2.)
/// </summary>
publiculongHorizontalPrecision{get;privateset;}
/// <summary>
/// The vertical precision of the data, in centimeters, expressed using the sane representation as for Size.
/// This is the total potential vertical error, rather than a "plus or minus" value.
/// (This was chosen to match the interpretation of SIize; to get a "plus or minus" value, divide by 2.)
/// Note that if altitude above or below sea level is used as an approximation for altitude relative to the ellipsoid, the precision value should be adjusted.
/// </summary>
publiculongVerticalPrecision{get;privateset;}
/// <summary>
/// The latitude of the center of the sphere described by the Size field, expressed as a 32-bit integer,
/// most significant octet first (network standard byte order), in thousandths of a second of arc.
/// 2^31 represents the equator; numbers above that are north latitude.
/// </summary>
publicuintLatitude{get;privateset;}
/// <summary>
/// The longitude of the center of the sphere described by the Size field, expressed as a 32-bit integer,
/// most significant octet first (network standard byte order), in thousandths of a second of arc, rounded away from the prime meridian.
/// 2^31 represents the prime meridian; numbers above that are east longitude.
/// </summary>
publicuintLongitude{get;privateset;}
/// <summary>
/// The altitude of the center of the sphere described by the Size field, expressed as a 32-bit integer,
/// most significant octet first (network standard byte order), in centimeters,
/// from a base of 100,000m below the reference spheroid used by GPS (semimajor axis a=6378137.0, reciprocal flattening rf=298.257223563).
/// Altitude above (or below) sea level may be used as an approximation of altitude relative to the the spheroid,
/// though due to the Earth's surface not being a perfect spheroid, there will be differences.
/// (For example, the geoid (which sea level approximates) for the continental US ranges from 10 meters to 50 meters below the spheroid.
/// Adjustments to Altitude and/or VerticalPrecision will be necessary in most cases.
/// The Defense Mapping Agency publishes geoid height values relative to the ellipsoid.