18 #ifndef __otbVectorDataToGISTableFilter_txx
19 #define __otbVectorDataToGISTableFilter_txx
26 template<
class TVectorData,
class TGISTable>
30 m_InputGISConnection = InputGISConnectionType::New();
31 m_DropExistingGISTable =
false;
32 m_GISTableName =
"vectordata_to_gis";
35 template<
class TVectorData,
class TGISTable>
42 const_cast<InputVectorDataType *>(input));
45 template<
class TVectorData,
class TGISTable>
52 const_cast<InputVectorDataType *>(input));
55 template<
class TVectorData,
class TGISTable>
60 if (this->GetNumberOfInputs() < 1)
65 return static_cast<const TVectorData *
>
69 template<
class TVectorData,
class TGISTable>
74 return static_cast<const TVectorData *
>
78 template<
class TVectorData,
class TGISTable>
104 template<
class TVectorData,
class TGISTable>
111 this->AllocateOutputs();
118 output->SetConnection (this->GetInputGISConnection ());
121 output->SetProjectionRef(input->GetProjectionRef());
124 output->GetConnection()->ConnectToDB();
129 output->SetTableName (
"");
134 for (
unsigned int idx = 0; idx < this->GetNumberOfInputs(); ++idx)
136 if (this->GetInput(idx))
147 const std::string outputOGRConnStr = output->GetOGRStrConnection();
150 if (gisWriter->CanWriteFile(outputOGRConnStr.data()))
153 gisWriter->SetFileName(outputOGRConnStr);
157 std::string overStr(
"OVERWRITE=yes");
158 char *overOptions[] = { const_cast <
char *> (overStr.c_str()) };
160 gisWriter->Write(input, overOptions);
162 output->SetTableName (inputRoot->Get()->GetNodeId());
167 itkGenericExceptionMacro(<<
"Not valid connection string (PG:*) " << outputOGRConnStr);
174 template<
class TVectorData,
class TGISTable>
179 Superclass::PrintSelf(os, indent);