examples/vp/main.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file main.cpp
22 
23  \brief A list of examples for the TerraLib Spatial Reference Systems Module.
24  */
25 
26 // TerraLib
28 #include <terralib/core/plugin.h>
29 #include <terralib/common.h>
30 
31 
32 // Examples
33 #include "VectorProcessing.h"
34 
35 // STL
36 #include <cassert>
37 #include <cstdlib>
38 #include <exception>
39 #include <iostream>
40 
41 int main(int argc, char** argv)
42 {
43 // initialize Terralib support
44 // It initializes all the data source drivers (see LoadModule.cpp)
45  try
46  {
48 
49 
51 
52  std::string plugins_path = te::core::FindInTerraLibPath("share/terralib/plugins");
53 
54 #ifdef TERRALIB_MOD_GDAL_ENABLED
55  info = te::core::JSONPluginInfoSerializer(plugins_path + "/te.da.gdal.teplg.json");
58 #endif
59 
60 #ifdef TERRALIB_MOD_OGR_ENABLED
61  info = te::core::JSONPluginInfoSerializer(plugins_path + "/te.da.ogr.teplg.json");
64 #endif
65 
66 #ifdef TERRALIB_MOD_POSTGIS_ENABLED
67  info = te::core::JSONPluginInfoSerializer(plugins_path + "/te.da.pgis.teplg.json");
70 #endif
71 
72  //Dissolve examples
73 
74  std::cout << std::endl << "OGR to OGR: " << std::endl;
75  if (DissolveOGRToOGR())
76  std::cout << "\tOK!" << std::endl;
77 
78  std::cout << std::endl << "OGR to PostGIS: " << std::endl;
79  if (DissolveOGRToPGIS())
80  std::cout << "\tOK!" << std::endl;
81 
82  std::cout << std::endl << "PostGIS to PostGIS: " << std::endl;
83  if (DissolvePGISToPGIS())
84  std::cout << "\tOK!" << std::endl;
85 
86  std::cout << std::endl << "PostGIS to OGR: " << std::endl;
87  if (DissolvePGISToOGR())
88  std::cout << "\tOK!" << std::endl;
89 
90 
91  //Intersection examples
92 
93  std::cout << std::endl << "Intersection OGR to OGR: " << std::endl;
95  std::cout << "\tOK!" << std::endl;
96 
97  std::cout << std::endl << "Intersection OGR to PostGIS: " << std::endl;
99  std::cout << "\tOK!" << std::endl;
100 
101  std::cout << std::endl << "Intersection PostGIS to PostGIS: " << std::endl;
103  std::cout << "\tOK!" << std::endl;
104 
105  std::cout << std::endl << "Intersection PostGIS to OGR: " << std::endl;
106  if (IntersectionPGISToOGR())
107  std::cout << "\tOK!" << std::endl;
108 
109 
110  //Buffer examples
111 
112  std::cout << std::endl << "Buffer OGR to OGR: " << std::endl;
113  if (BufferOGRToOGR())
114  std::cout << "\tOK!" << std::endl;
115 
116  std::cout << std::endl << "Buffer OGR to PostGIS: " << std::endl;
117  if (BufferOGRToPGIS())
118  std::cout << "\tOK!" << std::endl;
119 
120  std::cout << std::endl << "Buffer PostGIS to PostGIS: " << std::endl;
121  if (BufferPGISToPGIS())
122  std::cout << "\tOK!" << std::endl;
123 
124  std::cout << std::endl << "Buffer PostGIS to OGR: " << std::endl;
125  if (BufferPGISToOGR())
126  std::cout << "\tOK!" << std::endl;
127 
128 
129  //Identity examples
130 
131  std::cout << std::endl << "Identity OGR to OGR: " << std::endl;
132  if (IdentityOGRToOGR())
133  std::cout << "\tOK!" << std::endl;
134 
135  std::cout << std::endl << "Identity OGR to PostGIS: " << std::endl;
136  if (IdentityOGRToPGIS())
137  std::cout << "\tOK!" << std::endl;
138 
139  std::cout << std::endl << "Identity PostGIS to PostGIS: " << std::endl;
140  if (IdentityPGISToPGIS())
141  std::cout << "\tOK!" << std::endl;
142 
143  std::cout << std::endl << "Identity PostGIS to OGR: " << std::endl;
144  if (IdentityPGISToOGR())
145  std::cout << "\tOK!" << std::endl;
146 
148 
149 
151  }
152  catch(const std::exception& e)
153  {
154  std::cout << std::endl << "An exception has occurred: " << e.what() << std::endl;
155 
156  return EXIT_FAILURE;
157  }
158  catch(...)
159  {
160  std::cout << std::endl << "An unexpected exception has occurred!" << std::endl;
161 
162  return EXIT_FAILURE;
163  }
164 
165  return EXIT_SUCCESS;
166 }
bool DissolveOGRToOGR()
Include files for Core Plugin Library.
void insert(const PluginInfo &pinfo)
Adds plugin with its plugin information to the list of unloaded plugins.
bool DissolveOGRToPGIS()
This file is a wrapper around platform specific include files.
Basic information about a plugin.
bool BufferOGRToPGIS()
Definition: Buffer.cpp:95
bool BufferPGISToPGIS()
Definition: Buffer.cpp:170
bool DissolvePGISToOGR()
void load(const std::string &plugin_name, const bool start=true)
It tries to load the informed plugin.
bool IdentityOGRToOGR()
std::string name
The plugin name: an internal value used to identify the plugin in the system. Must be a unique value...
bool DissolvePGISToPGIS()
static PluginManager & instance()
Access the singleton.
bool IdentityOGRToPGIS()
void finalize()
It finalizes the TerraLib Platform.
static TerraLib & getInstance()
It returns a reference to the singleton instance.
bool IntersectionOGRToOGR()
void initialize()
It initializes the TerraLib Platform.
int main(int argc, char **argv)
bool IntersectionOGRToPGIS()
TECOREEXPORT PluginInfo JSONPluginInfoSerializer(const std::string &file_name)
A plugin finder that search for plugins in some special directories defined by compile time macros...
Definition: Serializers.cpp:44
bool IdentityPGISToPGIS()
TECOREEXPORT std::string FindInTerraLibPath(const std::string &path)
Returns the path relative to a directory or file in the context of TerraLib.
bool IntersectionPGISToOGR()
bool BufferOGRToOGR()
Definition: Buffer.cpp:19
This file contains include headers for the TerraLib Common Runtime module.
void clear()
Stop and unload all plugins, then clear the internal list of plugins.
bool BufferPGISToOGR()
Definition: Buffer.cpp:236
bool IntersectionPGISToPGIS()
bool IdentityPGISToOGR()