27 #include "../common/Exception.h"
28 #include "../common/StringUtils.h"
29 #include "../common/Translator.h"
30 #include "../dataaccess/dataset/DataSetType.h"
31 #include "../datatype/NumericProperty.h"
32 #include "../datatype/Property.h"
33 #include "../datatype/StringProperty.h"
34 #include "../geometry/Enums.h"
35 #include "../geometry/Envelope.h"
36 #include "../geometry/GeometryProperty.h"
37 #include "../raster/BandProperty.h"
38 #include "../raster/Grid.h"
39 #include "../raster/RasterProperty.h"
43 #include <terralib4/kernel/TeBox.h>
44 #include <terralib4/kernel/TeDatabaseFactoryParams.h>
45 #include <terralib4/kernel/TeDecoderDatabase.h>
46 #include <terralib4/kernel/TeProjection.h>
47 #include <terralib4/kernel/TeTable.h>
48 #include <terralib4/kernel/TeRasterParams.h>
51 #include <boost/lexical_cast.hpp>
55 std::string* defaultValue = attRep.defaultValue_.empty() ? 0 :
new std::string(attRep.defaultValue_);
57 bool isRequired = !attRep.null_;
65 if(attRep.numChar_ == 0)
109 case TePOLYGONSETTYPE:
133 std::auto_ptr<TeDatabaseFactoryParams> fparams(
new TeDatabaseFactoryParams());
135 fparams->dbms_name_ = dsInfo.at(
"T4_DRIVER");
136 fparams->database_ = dsInfo.at(
"T4_DB_NAME");
137 fparams->host_ = dsInfo.at(
"T4_HOST");
139 fparams->user_ = dsInfo.at(
"T4_USER");
140 fparams->password_ = dsInfo.at(
"T4_PASSWORD");
178 case TePOLYGONSETTYPE:
219 case TePOLYGONSETTYPE:
261 case TeUNSIGNEDSHORT:
315 return TeUNSIGNEDINT;
340 return TePOLYGONTYPE;
343 return TePOINTSETTYPE;
346 return TeLINESETTYPE;
349 return TePOLYGONSETTYPE;
358 std::auto_ptr<te::gm::Envelope> env(
new te::gm::Envelope(box.x1(), box.y1(), box.x2(), box.y2()));
365 TeAttributeList attrList = table.attributeList();
369 for(std::size_t i = 0; i < attrList.size(); ++i)
371 TeAttributeRep attr = attrList[i].rep_;
375 newDst->add(prop.release());
385 unsigned int ncols = rparams.ncols_;
386 unsigned int nrows = rparams.nlines_;
387 std::auto_ptr<te::gm::Envelope> mbr(
Convert2T5(rparams.boundingBox()));
389 int srid = rparams.projection()->epsgCode();
394 std::auto_ptr<te::rst::Grid> grid(
new te::rst::Grid(ncols, nrows, rparams.resx_, rparams.resy_, cord, srid));
396 rproperty->set(grid.release());
398 std::vector<te::rst::BandProperty::ColorEntry> palette;
399 if(rparams.photometric_[0] == TeRasterParams::TePallete)
401 std::size_t size = rparams.lutr_.size();
403 for(std::size_t j = 0; j < size; ++j)
406 c.
c1 = rparams.lutr_[j];
407 c.
c2 = rparams.lutg_[j];
408 c.
c3 = rparams.lutb_[j];
409 palette.push_back(c);
413 for(
int i = 0; i != rparams.nBands(); ++i)
417 bp->
m_blkh = rparams.blockHeight_;
418 bp->
m_blkw = rparams.blockWidth_;
423 bp->
m_palette.assign(palette.begin(), palette.end());
431 return rproperty.release();
TeAttrDataType Convert2T4GeomType(te::gm::GeomType type)
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
An atomic property like an integer or double.
std::vector< ColorEntry > m_palette
The color palette.
A raster band description.
A class that models the description of a dataset.
int m_nblocksx
The number of blocks in x.
int m_nblocksy
The number of blocks in y.
An utility struct for representing 2D coordinates.
double m_noDataValue
Value to indicate elements where there is no data, default is std::numeric_limits::max().
#define TE_TR(message)
It marks a string in order to get translated.
std::string ReplaceSpecialChars(const std::string &str, bool &changed)
It replace special characters of a string.
std::auto_ptr< te::dt::Property > Convert2T5(const TeAttributeRep &attRep)
It creates a valid TerraLib 5 property given a valid TerraLib 4.x attribute representation.
std::auto_ptr< TeDatabaseFactoryParams > Convert2T4DatabaseParams(const std::map< std::string, std::string > &dsInfo)
It converts a data source information to a TerraLib 4.x database params.
te::gm::GeomType Convert2T5GeomType(TeAttrDataType type)
An Envelope defines a 2D rectangular region.
int m_blkw
Block width (pixels).
The type for string types: FIXED_STRING, VAR_STRING or STRING.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
short c1
gray, red, cyan or hue.
short c3
blue, yellow, or saturation.
An structure to represent a color tuple.
std::complex< double > m_valuesOffset
Offset is the values (real and imaginary) to add to grid values for this sample dimension, default is 0.
int m_blkh
Block height (pixels).
TeAttrDataType Convert2T4(int type)
It converts a Terralib 5 data type to Terralib 4.x data type.
A rectified grid is the spatial support for raster data.
Utilitary functions for dealing with TerraLib 5 and 4.x conversion.
short c2
green, magenta, or lightness.