OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimImageElevationDatabase.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // File: ossimImageElevationDatabase.h
4 //
5 // License: MIT
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 // Author: David Burken
10 //
11 // Description: See description for class below.
12 //
13 //----------------------------------------------------------------------------
14 // $Id$
15 
16 #ifndef ossimImageElevationDatabase_HEADER
17 #define ossimImageElevationDatabase_HEADER 1
18 
23 #include <ossim/base/ossimGrect.h>
24 #include <ossim/base/ossimRefPtr.h>
25 #include <ossim/base/ossimRtti.h>
26 #include <map>
27 
28 class ossimString;
29 
39 {
40 public:
41 
44 
54  virtual bool open(const ossimString& connectionString);
55 
57  virtual void close();
58 
59  virtual ossimObject* dup() const
60  {
62  duped->open(m_connectionString);
63  return duped;
64  }
65 
71  void mapRegion(const ossimGrect& region);
72 
80  virtual double getHeightAboveMSL(const ossimGpt& gpt);
81 
89  virtual double getHeightAboveEllipsoid(const ossimGpt&);
90 
96  virtual bool pointHasCoverage(const ossimGpt& gpt) const;
97 
98 
99  virtual bool getAccuracyInfo(ossimElevationAccuracyInfo& info, const ossimGpt& gpt) const;
100 
101 
107  //virtual double getAccuracyLE90(const ossimGpt& gpt) const;
108 
114  //virtual double getAccuracyCE90(const ossimGpt& gpt) const;
115 
117  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=0);
118 
120  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=0)const;
121 
127  void getBoundingRect(ossimGrect& rect) const;
128 
139  virtual void processFile(const ossimFilename& file);
140 
141  virtual std::ostream& print(std::ostream& out) const;
142 
143 protected:
150  virtual ~ossimImageElevationDatabase();
151 
153 
154  // virtual ossim_uint64 createId(const ossimGpt& pt) const;
155 
163 
167  virtual void remove(ossim_uint64 id);
168 
169 private:
170 
171  // Private container to hold bounding rect, nominal GSD, and image handler.
173  {
176 
179 
181 
184 
187  ossimDpt m_nominalGSD; // post spacing at center
188 
191  };
192 
197  void loadFileMap();
198 
201 
202  std::map<ossim_uint64, ossimImageElevationFileEntry> m_entryMap;
205 
206  TYPE_DATA
207 };
208 
210 {
211  std::map<ossim_uint64, ossimImageElevationFileEntry>::iterator entryIter = m_entryMap.find(id);
212  if ( entryIter != m_entryMap.end() )
213  {
214  (*entryIter).second.m_loadedFlag = false;
215  }
217 }
218 
219 #endif /* ossimImageElevationDatabase_HEADER */
virtual double getHeightAboveMSL(const ossimGpt &)=0
Height access methods:
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual ossimRefPtr< ossimElevCellHandler > createCell(const ossimGpt &)
virtual void remove(ossim_uint64 id)
Represents serializable keyword/value map.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
bool m_loadedFlag
True if in ossimElevationCellDatabase::m_cacheMap.
virtual ossimObject * dup() const
virtual bool getAccuracyInfo(ossimElevationAccuracyInfo &, const ossimGpt &) const
virtual ossimRefPtr< ossimElevCellHandler > getOrCreateCellHandler(const ossimGpt &gpt)
std::map< ossim_uint64, ossimImageElevationFileEntry > m_entryMap
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned long long ossim_uint64
virtual bool pointHasCoverage(const ossimGpt &) const =0
METHOD: pointHasCoverage(gpt) Returns TRUE if coverage exists over gpt:
ossimGrect m_rect
Bounding rectangle in decimal degrees.
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
#define OSSIM_DLL
virtual void remove(ossim_uint64 id)
Removes an entry from the m_cacheMap and m_entryMap maps.
virtual bool open(const ossimString &connectionString)
Open a connection to a database.
virtual double getHeightAboveEllipsoid(const ossimGpt &)
virtual bool open(const ossimString &connectionString)=0
Open a connection to a database.
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
virtual void processFile(const ossimFilename &file)=0
Pure virtual processFile method.