00001
00002
00003 #include <string.h>
00004 #include "MGRSorUSNGCoordinates.h"
00005 #include "Precision.h"
00006
00007
00008 using namespace MSP::CCS;
00009
00010
00011 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates() :
00012 CoordinateTuple( CoordinateType::militaryGridReferenceSystem ),
00013 _precision( Precision::tenthOfSecond )
00014 {
00015 strncpy( _MGRSString, "31NEA0000000000", 20 );
00016 }
00017
00018
00019 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType ) :
00020 CoordinateTuple( _coordinateType ),
00021 _precision( Precision::tenthOfSecond )
00022 {
00023 strncpy( _MGRSString, "31NEA0000000000", 20 );
00024 }
00025
00026
00027 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __MGRSString ) :
00028 CoordinateTuple( _coordinateType ),
00029 _precision( Precision::tenthOfSecond )
00030 {
00031 strncpy( _MGRSString, __MGRSString, 20 );
00032 _MGRSString[20] = '\0';
00033 }
00034
00035
00036 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __MGRSString, Precision::Enum __precision ) :
00037 CoordinateTuple( _coordinateType ),
00038 _precision( __precision )
00039 {
00040 strncpy( _MGRSString, __MGRSString, 20 );
00041 _MGRSString[20] = '\0';
00042 }
00043
00044
00045 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( CoordinateType::Enum _coordinateType, const char* __warningMessage, const char* __MGRSString, Precision::Enum __precision ) :
00046 CoordinateTuple( _coordinateType ),
00047 _precision( __precision )
00048 {
00049 strncpy( _MGRSString, __MGRSString, 20 );
00050 _MGRSString[20] = '\0';
00051
00052 int length = strlen( __warningMessage );
00053 strncpy( _warningMessage, __warningMessage, length );
00054 _warningMessage[ length ] = '\0';
00055 }
00056
00057
00058 MGRSorUSNGCoordinates::MGRSorUSNGCoordinates( const MGRSorUSNGCoordinates &c )
00059 {
00060 _coordinateType = c._coordinateType;
00061
00062 strncpy( _MGRSString, c._MGRSString, 20 );
00063 _MGRSString[20] = '\0';
00064
00065 _precision = c._precision;
00066
00067 int length = strlen( c._warningMessage );
00068 strncpy( _warningMessage, c._warningMessage, length );
00069 _warningMessage[ length ] = '\0';
00070 }
00071
00072
00073 MGRSorUSNGCoordinates::~MGRSorUSNGCoordinates()
00074 {
00075 }
00076
00077
00078 MGRSorUSNGCoordinates& MGRSorUSNGCoordinates::operator=( const MGRSorUSNGCoordinates &c )
00079 {
00080 if( this != &c )
00081 {
00082 _coordinateType = c._coordinateType;
00083
00084 strncpy( _MGRSString, c._MGRSString, 20 );
00085 _MGRSString[20] = '\0';
00086
00087 _precision = c._precision;
00088
00089 int length = strlen( c._warningMessage );
00090 strncpy( _warningMessage, c._warningMessage, length );
00091 _warningMessage[ length ] = '\0';
00092 }
00093
00094 return *this;
00095 }
00096
00097
00098 void MGRSorUSNGCoordinates::set( char __MGRSString[21] )
00099 {
00100 strncpy( _MGRSString, __MGRSString, 20 );
00101 _MGRSString[20] = '\0';
00102 }
00103
00104
00105 char* MGRSorUSNGCoordinates::MGRSString()
00106 {
00107 return _MGRSString;
00108 }
00109
00110
00111 Precision::Enum MGRSorUSNGCoordinates::precision() const
00112 {
00113 return _precision;
00114 }
00115
00116