OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimElevationDatabase.cpp
Go to the documentation of this file.
2 
3 RTTI_DEF1(ossimElevationDatabase, "ossimElevationDatabase", ossimObject);
4 
6 {
7  double result = 0.0;
8  if(m_geoid.valid())
9  {
10  result = m_geoid->offsetFromEllipsoid(gpt);
11  }
12  else
13  {
15  }
16 
17  if(ossim::isnan(result))
18  {
19  result = 0.0;
20  }
21 
22  return result;
23 }
24 
25 bool ossimElevationDatabase::loadState(const ossimKeywordlist& kwl, const char* prefix)
26 {
27  // Connection string:
28  m_connectionString = kwl.find(prefix, "connection_string");
30  {
31  // Try backward compatability to a filename:
33  }
34 
35  // Geoid:
36  ossimString value = kwl.find(prefix, "geoid.type");
37  if( value.size() )
38  {
40  }
41 
42  // Mean spacing:
43  value = kwl.find(prefix, "mean_spacing");
44  if( value.size() )
45  {
46  m_meanSpacing = value.toFloat64();
47  }
48 
49  return ossimSource::loadState(kwl, prefix);
50 }
51 
52 bool ossimElevationDatabase::saveState(ossimKeywordlist& kwl, const char* prefix)const
53 {
54  kwl.add(prefix, "connection_string", m_connectionString, true);
55 
56  if(m_geoid.valid())
57  {
58  kwl.add(prefix, "geoid.type", m_geoid->getShortName(), true);
59  }
60 
61  return ossimSource::saveState(kwl, prefix);
62 }
63 
65 {
66  ossimKeywordlist kwl;
67  saveState(kwl);
68  out << "\nossimElevationDatabase @ "<< (ossim_uint64) this
69  << kwl <<ends;
70  return out;
71 }
RTTI_DEF1(ossimElevationDatabase, "ossimElevationDatabase", ossimObject)
Represents serializable keyword/value map.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimSource.cpp:55
bool valid() const
Definition: ossimRefPtr.h:75
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Definition: ossimSource.cpp:66
const char * find(const char *key) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual double offsetFromEllipsoid(const ossimGpt &gpt)=0
ossimRefPtr< ossimGeoid > m_geoid
std::string::size_type size() const
Definition: ossimString.h:405
ossimGeoid * findGeoidByShortName(const ossimString &shortName, bool caseSensitive=true)
unsigned long long ossim_uint64
static ossimGeoidManager * instance()
Implements singelton pattern:
ossim_float64 toFloat64() const
virtual double getOffsetFromEllipsoid(const ossimGpt &gpt)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
bool empty() const
Definition: ossimString.h:411
virtual double offsetFromEllipsoid(const ossimGpt &gpt)
static const char * FILENAME_KW
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
Definition: ossimCommon.h:91