26 #include "ossimDatumFactory.inc" 66 std::map<std::string, const ossimDatum*>::const_iterator datum =
theDatumTable.find(code);
70 return (*datum).second;
78 return (*datum).second;
81 else if(code ==
"NAS")
86 return (*datum).second;
97 if(!alpha_code.
empty())
112 std::map<std::string, const ossimDatum*>::const_iterator datum =
theDatumTable.begin();
113 std::vector<ossimString> result;
125 std::map<std::string, const ossimDatum*>::const_iterator datum =
137 std::map<std::string, const ossimDatum*>::iterator datum;
142 delete ((*datum).second);
157 while( std::strlen(threeParamDatum[idx].theCode) )
159 if( (threeParamDatum[idx].theCode != WGE) &&
160 (threeParamDatum[idx].theCode != WGD) )
162 theDatumTable.insert(std::make_pair(std::string(threeParamDatum[idx].theCode),
164 threeParamDatum[idx].theName,
166 threeParamDatum[idx].theSigmaX,
167 threeParamDatum[idx].theSigmaY,
168 threeParamDatum[idx].theSigmaZ,
169 threeParamDatum[idx].theWestLongitude,
170 threeParamDatum[idx].theEastLongitude,
171 threeParamDatum[idx].theSouthLatitude,
172 threeParamDatum[idx].theNorthLatitude,
173 threeParamDatum[idx].theParam1,
174 threeParamDatum[idx].theParam2,
175 threeParamDatum[idx].theParam3)));
181 while( std::strlen(sevenParamDatum[idx].theCode) )
183 theDatumTable.insert(std::make_pair(std::string(sevenParamDatum[idx].theCode),
185 sevenParamDatum[idx].theName,
187 sevenParamDatum[idx].theSigmaX,
188 sevenParamDatum[idx].theSigmaY,
189 sevenParamDatum[idx].theSigmaZ,
190 sevenParamDatum[idx].theWestLongitude,
191 sevenParamDatum[idx].theEastLongitude,
192 sevenParamDatum[idx].theSouthLatitude,
193 sevenParamDatum[idx].theNorthLatitude,
194 sevenParamDatum[idx].theParam1,
195 sevenParamDatum[idx].theParam2,
196 sevenParamDatum[idx].theParam3,
197 sevenParamDatum[idx].theParam4,
198 sevenParamDatum[idx].theParam5,
199 sevenParamDatum[idx].theParam6,
200 sevenParamDatum[idx].theParam7)));
232 out <<
"typedef struct ossimSevenParamDatumType" << std::endl
234 <<
" ossimString theCode;\n" 235 <<
" ossimString theName;\n" 236 <<
" ossimString theEllipsoidCode;\n" 237 <<
" ossim_float64 theSigmaX;\n" 238 <<
" ossim_float64 theSigmaY;\n" 239 <<
" ossim_float64 theSigmaZ;\n" 240 <<
" ossim_float64 theWestLongitude;\n" 241 <<
" ossim_float64 theEastLongitude;\n" 242 <<
" ossim_float64 theSouthLatitude;\n" 243 <<
" ossim_float64 theNorthLatitude;\n" 244 <<
" ossim_float64 theParam1;\n" 245 <<
" ossim_float64 theParam2;\n" 246 <<
" ossim_float64 theParam3;\n" 247 <<
" ossim_float64 theParam4;\n" 248 <<
" ossim_float64 theParam5;\n" 249 <<
" ossim_float64 theParam6;\n" 250 <<
" ossim_float64 theParam7;\n" 253 out <<
"typedef struct ossimThreeParamDatumType" << std::endl
255 <<
" ossimString theCode;\n" 256 <<
" ossimString theName;\n" 257 <<
" ossimString theEllipsoidCode;\n" 258 <<
" ossim_float64 theSigmaX;\n" 259 <<
" ossim_float64 theSigmaY;\n" 260 <<
" ossim_float64 theSigmaZ;\n" 261 <<
" ossim_float64 theWestLongitude;\n" 262 <<
" ossim_float64 theEastLongitude;\n" 263 <<
" ossim_float64 theSouthLatitude;\n" 264 <<
" ossim_float64 theNorthLatitude;\n" 265 <<
" ossim_float64 theParam1;\n" 266 <<
" ossim_float64 theParam2;\n" 267 <<
" ossim_float64 theParam3;\n" 269 out <<
"#define NUMBER_OF_SEVEN_PARAM_DATUMS " << 2 << std::endl;
272 std::map<std::string, const ossimDatum*>::iterator datum;
273 out <<
"static ossimThreeParamDatumType threeParamDatum[] = {\n";
278 bool written =
false;
279 if( ((*datum).first !=
"NAS") &&
280 ((*datum).first !=
"NAR")&&
281 ((*datum).first !=
"EUR-7")&&
282 ((*datum).first !=
"OGB-7"))
287 out <<
"{\"" << d->
code() <<
"\", " 288 <<
"\"" << d->
name() <<
"\", " 306 out <<
"," << std::endl;
313 out <<
"};" << std::endl;
315 out <<
"#define NUMBER_OF_THREE_PARAM_DATUMS " << datumCount << std::endl;
316 out <<
"static ossimSevenParamDatumType sevenParamDatum[] = {\n";
320 out <<
"{\"" << d->
code() <<
"\", " 321 <<
"\"" << d->
name() <<
"\", " 341 out <<
"{\"" << d->
code() <<
"\", " 342 <<
"\"" << d->
name() <<
"\", " 359 out <<
"};" << std::endl;
virtual ossim_float64 param1() const =0
virtual const ossimDatum * create(const ossimString &code) const
create method
std::vector< ossimString > getList() const
virtual ossim_float64 param5() const =0
static ossimEllipsoidFactory * instance()
static const char * DATUM_KW
virtual ossim_float64 param4() const =0
Represents serializable keyword/value map.
virtual ossim_float64 sigmaY() const
const ossimDatum * theWgs84Datum
const char * find(const char *key) const
void initializeDefaults()
virtual const ossimString & code() const
virtual ossim_float64 param3() const =0
virtual const ossimString & name() const
virtual ossim_float64 southLatitude() const
virtual ossim_float64 northLatitude() const
virtual ossim_float64 sigmaX() const
virtual ossim_float64 westLongitude() const
const char * findPreference(const char *key) const
std::string::size_type size() const
unsigned int ossim_uint32
virtual const ossimEllipsoid * ellipsoid() const
static ossimDatumFactory * instance()
void writeCStructure(const ossimFilename &file)
virtual ossim_float64 param7() const =0
static ossimPreferences * instance()
virtual ossim_float64 sigmaZ() const
const ossimString & code() const
const ossimDatum * theWgs72Datum
std::map< std::string, const ossimDatum * > theDatumTable
ossimFilename dirCat(const ossimFilename &file) const
std::basic_ofstream< char > ofstream
Class for char output file streams.
virtual ossim_float64 eastLongitude() const
virtual ~ossimDatumFactory()
virtual destructor
virtual ossim_float64 param2() const =0
ossimFilename path() const
virtual ossim_float64 param6() const =0
const std::string & string() const