OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimKmlSuperOverlayWriterFactory.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: LGPL
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Author: Mingjie Su, Harsh Govind
8 //
9 // Description: Factory for OSSIM KmlSuperOverlay writers.
10 //----------------------------------------------------------------------------
11 // $Id: ossimKmlSuperOverlayWriterFactory.cpp 2178 2011-02-17 18:38:30Z ming.su $
12 
14 #include <ossim/base/ossimRefPtr.h>
16 
19 
21 
23  "ossimKmlSuperOverlayWriterFactory",
25 
27 {
28  theInstance = 0;
29 }
30 
32 {
33  if(!theInstance)
34  {
36  }
37  return theInstance;
38 }
39 
41  const ossimString& fileExtension)const
42 {
43  ossimImageFileWriter* writer = 0;
44 
45  if(fileExtension == "kml" || fileExtension == "kmz")
46  {
47  writer = new ossimKmlSuperOverlayWriter;
48  }
49  return writer;
50 }
51 
53  const ossimString& ext)const
54 {
55  ossimString testExt = ext.downcase();
56  if(testExt == "kml" || testExt == "kmz")
57  {
59  }
60 }
61 
64  const char *prefix)const
65 {
67  const char* type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
68  if (type)
69  {
70  writer = createWriter(ossimString(type));
71  if (writer.valid())
72  {
73  if (writer->loadState(kwl, prefix) == false)
74  {
75  writer = 0;
76  }
77  }
78  }
79  return writer.release();
80 }
81 
83  const ossimString& typeName)const
84 {
86  if (typeName == "ossimKmlSuperOverlayWriter" || typeName == "ossim_kmlsuperoverlay")
87  {
88  writer = new ossimKmlSuperOverlayWriter;
89  }
90  return writer.release();
91 }
92 
94  const ossimKeywordlist& kwl, const char *prefix)const
95 {
96  return createWriter(kwl, prefix);
97 }
98 
100  const ossimString& typeName) const
101 {
102  return createWriter(typeName);
103 }
104 
106  std::vector<ossimString>& result)const
107 {
108  result.push_back("kml");
109  result.push_back("kmz");
110 }
111 
112 void ossimKmlSuperOverlayWriterFactory::getTypeNameList(std::vector<ossimString>& typeList)const
113 {
114  getImageTypeList(typeList);
115 }
116 
117 //---
118 // Adds our writers to the list of writers...
119 //---
120 void ossimKmlSuperOverlayWriterFactory::getImageTypeList(std::vector<ossimString>& imageTypeList)const
121 {
123  writer->getImageTypeList(imageTypeList);
124 }
125 
127 
129 
131 
virtual ossimImageFileWriter * createWriterFromExtension(const ossimString &fileExtension) const
Creates a writer from extension like "sid".
void operator=(const ossimKmlSuperOverlayWriterFactory &)
hidden from use copy constructor
Represents serializable keyword/value map.
bool valid() const
Definition: ossimRefPtr.h:75
const char * find(const char *key) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Factory for kmlsuperoverlay based image writers.
ossimKmlSuperOverlayWriterFactory()
hidden from use default constructor
Pure virtual base class for image file writers.
virtual void getImageFileWritersBySuffix(ossimImageWriterFactoryBase::ImageFileWriterList &result, const ossimString &ext) const
static const char * TYPE_KW
static ossimKmlSuperOverlayWriterFactory * instance()
static method to return instance (the only one) of this class.
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const =0
void getImageTypeList(std::vector<ossimString>& imageTypeList)const
void push_back(char c)
Equivalent to insert(end(), c).
Definition: ossimString.h:905
virtual ~ossimKmlSuperOverlayWriterFactory()
virtual destructor
RTTI_DEF1(ossimKmlSuperOverlayWriterFactory, "ossimKmlSuperOverlayWriterFactory", ossimImageWriterFactoryBase)
static ossimKmlSuperOverlayWriterFactory * theInstance
static instance of this class
virtual void getTypeNameList(std::vector< ossimString > &typeList) const
Adds "ossimKakaduWriter" to list.
T * release()
Definition: ossimRefPtr.h:93
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
virtual void getImageTypeList(std::vector< ossimString > &imageTypeList) const
Adds "ossim_kakada_nitf_j2k" to writer list.
virtual ossimObject * createObject(const ossimKeywordlist &kwl, const char *prefix=0) const
Creates and object given a keyword list.
std::vector< ossimRefPtr< ossimImageFileWriter > > ImageFileWriterList
virtual ossimImageFileWriter * createWriter(const ossimKeywordlist &kwl, const char *prefix=0) const
Create that takes a keyword list and prefix.
virtual void getExtensions(std::vector< ossimString > &extList) const
Adds "ntf" to list.