24 #include "../dataaccess/dataset/DataSet.h"
25 #include "../dataaccess/dataset/DataSetAdapter.h"
26 #include "../dataaccess/dataset/DataSetType.h"
27 #include "../dataaccess/dataset/DataSetTypeConverter.h"
28 #include "../dataaccess/datasource/DataSource.h"
29 #include "../dataaccess/datasource/DataSourceCapabilities.h"
30 #include "../dataaccess/utils/Utils.h"
32 #include "../datatype/Property.h"
33 #include "../datatype/StringProperty.h"
35 #include "../geometry/GeometryProperty.h"
37 #include "../statistics/core/Utils.h"
49 std::string inDsetName,
50 std::auto_ptr<te::da::DataSetType> inDsetType)
53 m_inDsetName = inDsetName;
54 m_inDsetType = inDsetType;
58 std::vector<te::vp::GeometricOperation> operations,
60 std::string attribute,
63 m_selectedProps = selectedProps;
64 m_operations = operations;
65 m_objStrategy = objStrategy;
66 m_attribute = attribute;
67 m_outputLayer = m_outputLayer;
73 m_outDsetName = dsname;
78 if (!m_inDsetType.get())
81 if (!m_inDsetType->hasGeom())
84 if (m_outDsetName.empty() || !m_outDsrc.get())
92 return m_outDsetNameVec;
102 std::map<std::string, std::string> options;
104 m_outDsrc->createDataSet(dsTypeResult, options);
107 result->moveBeforeFirst();
108 std::string name = dsTypeResult->getName();
109 m_outDsrc->add(dsTypeResult->getName(),result.get(), options);
112 if (m_outDsrc->getCapabilities().getDataSetTypeCapabilities().supportsPrimaryKey())
114 std::string pk_name = dsTypeResult->getName() +
"_pkey";
116 pk->
add(dsTypeResult->getProperty(0));
117 m_outDsrc->addPrimaryKey(outDsType->getName(), pk);
124 bool multiGeomColumns,
136 dsType->
setTitle(m_outDsetName +
"_convex_hull");
142 dsType->
setTitle(m_outDsetName +
"_centroid");
148 dsType->
setTitle(m_outDsetName +
"_mbr");
161 dsType->
add(pkProperty);
169 for(std::size_t i = 0; i < m_selectedProps.size(); ++i)
184 for(std::size_t i = 0; i < m_operations.size(); ++i)
186 int op = m_operations[i];
204 dsType->
add(perimeter);
215 bool flagGeom =
false;
216 for(std::size_t i = 0; i< m_operations.size(); ++i)
218 switch(m_operations[i])
225 dsType->
add(convGeom);
234 dsType->
add(centroidGeom);
243 dsType->
add(mbrGeom);
269 dsType->
add(geometry);
275 bool flagGeom =
false;
283 dsType->
add(geometry);
292 dsType->
add(geometry);
301 dsType->
add(geometry);
326 dsType->
add(geometry);
void setAutoNumber(bool a)
It tells if the property is an autonumber or not.
void setTitle(const std::string &title)
It sets a human descriptive title for the DataSetType.
te::da::DataSetType * GetDataSetType(te::vp::GeometricOpObjStrategy, bool MultiGeomColumns, int geomOp=-1)
void add(te::dt::Property *p)
It adds a property to the list of properties of the primary key.
void setSRID(int srid)
It sets the spatial reference system identifier associated to this property.
void setGeometryType(GeomType t)
It sets the geometry subtype.
std::vector< std::string > GetOutputDSetNames()
An atomic property like an integer or double.
The geographic operation Line.
boost::shared_ptr< DataSource > DataSourcePtr
The geographic operation Minimum Bounding Rectangle.
A class that models the description of a dataset.
DataSetType * getResult() const
virtual Property * clone() const =0
It returns a clone of the object.
It models a property definition.
GeometricOpObjStrategy
Defines the strategy used for the processing of the input geometries.
An converter for DataSetType.
The geographic operation Area.
int getSRID() const
It returns the spatial reference system identifier associated to this property.
GeomType getGeometryType() const
It returns the geometry subtype allowed for the property.
Aggregate objects by attribute.
The geographic operation Perimeter.
void setOutput(std::auto_ptr< te::da::DataSource > outDsrc, std::string dsname)
The geographic operation Centroid.
void add(Constraint *c)
It adds a new constraint.
bool save(std::auto_ptr< te::mem::DataSet > result, std::auto_ptr< te::da::DataSetType > outDsType)
It describes a primary key (pk) constraint.
virtual bool paramsAreValid()
The geographic operation Convex Hull.
TEDATAACCESSEXPORT te::gm::GeometryProperty * GetFirstGeomProperty(const DataSetType *dt)
TEDATAACCESSEXPORT DataSetAdapter * CreateAdapter(DataSet *ds, DataSetTypeConverter *converter, bool isOwner=false)
void setInput(te::da::DataSourcePtr inDsrc, std::string inDsetName, std::auto_ptr< te::da::DataSetType > inDsetType)
All objects individually.
void setParams(std::vector< std::string > selectedProps, std::vector< te::vp::GeometricOperation > operations, te::vp::GeometricOpObjStrategy objStrategy, std::string attribute, bool outputLayer)
void setPrimaryKey(PrimaryKey *pk)
It sets the primary key constraint.
void setParent(Property *p)
It associate this property to the informed parent.