A concrete class to compute the buffer operation. More...
#include <BufferQuery.h>
Public Member Functions | |
| BufferQuery () | |
| Default constructor. More... | |
| virtual bool | paramsAreValid () |
| It verifies if the parameters are valid. More... | |
| bool | run () throw (te::common::Exception) |
| It executes the operation. More... | |
| void | setInput (te::da::DataSourcePtr inDsrc, std::string inDsetName, std::unique_ptr< te::da::DataSetTypeConverter > converter, const te::da::ObjectIdSet *oidSet=0) |
| It sets the input data will be calculated. More... | |
| void | setOutput (te::da::DataSourcePtr outDsrc, std::string dsname) |
| It sets the output parameters that will be used to persist operation result. More... | |
| void | setParams (const double &distance, const int &newSrid, const int &bufferPolygonRule, const int &bufferBoundariesRule, const bool ©InputColumns, const int &levels, const int &attributePosition=-1) |
| It sets the input parameters that will be consumed to execute the operation. More... | |
| ~BufferQuery () | |
| Destructor. More... | |
Protected Member Functions | |
| std::vector< std::vector< te::gm::Geometry * > > | dissolveQuery (te::da::DataSet *dsQuery, const int &levels) |
| It dissolves the bounders between buffers. More... | |
| te::da::DataSetType * | GetDataSetType () |
| It builds the output DataSetType. More... | |
| void | prepareDataSet (te::da::DataSet *dataSetQuery, te::mem::DataSet *outputDataSet, const int &sourceSRID) |
| It prepare the dataset to be persisted. More... | |
| void | prepareDataSet (std::vector< std::vector< te::gm::Geometry * > > vecDissolvedGeom, te::mem::DataSet *outputDataSet, const int &sourceSRID, const double &distance) |
| It prepare the dataset to be persisted with dissolved geometries. More... | |
Protected Attributes | |
| int | m_attributePosition |
| The buffer can be calculated by attribute values. The attribute must be numeric type. More... | |
| int | m_bufferBoundariesRule |
| The buffer boundary rule (DISSOLVE = 0 and NOT_DISSOLVE = 1). More... | |
| int | m_bufferPolygonRule |
| The buffer polygon rule (INSIDE_OUTSIDE = 0, ONLY_OUTSIDE = 1, ONLY_INSIDE = 2). More... | |
| std::unique_ptr< te::da::DataSetTypeConverter > | m_converter |
| The input datasettype. More... | |
| bool | m_copyInputColumns |
| Copy columns from input DataSet. More... | |
| double | m_distance |
| The fixed distance. More... | |
| std::string | m_inDsetName |
| The input dataset name. More... | |
| te::da::DataSourcePtr | m_inDsrc |
| The input datasource. More... | |
| int | m_levels |
| The number of levels buffer will have. More... | |
| int | m_newSRID |
| A new SRID if it's necessary to transform the data. More... | |
| const te::da::ObjectIdSet * | m_oidSet |
| The input objectid set. More... | |
| std::string | m_outDsetName |
| The output dataset name. More... | |
| te::da::DataSourcePtr | m_outDsrc |
| The output datasource. More... | |
A concrete class to compute the buffer operation.
Definition at line 61 of file BufferQuery.h.
|
default |
Default constructor.
|
default |
Destructor.
|
protected |
It dissolves the bounders between buffers.
| outDSet | The dataSet with buffers. |
| levels | The number of levels the dataset has. |
Definition at line 333 of file BufferQuery.cpp.
References te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::clear(), te::gm::Geometry::difference(), te::da::DataSet::getExtent(), te::da::DataSet::getGeometry(), te::gm::Geometry::getMBR(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::insert(), te::gm::Geometry::intersects(), te::da::DataSet::isNull(), te::gm::Geometry::isValid(), te::da::DataSet::moveBeforeFirst(), te::da::DataSet::moveNext(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::remove(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::search(), and te::gm::Geometry::Union().
Referenced by run().
|
protectedinherited |
It builds the output DataSetType.
Definition at line 96 of file BufferOp.cpp.
References te::da::PrimaryKey::add(), te::da::DataSetType::add(), te::gm::GeometryProperty::clone(), te::dt::DOUBLE_TYPE, te::dt::GEOMETRY_TYPE, te::da::GetFirstGeomProperty(), te::dt::INT32_TYPE, te::vp::BufferOp::m_converter, te::vp::BufferOp::m_copyInputColumns, te::vp::BufferOp::m_outDsetName, te::gm::MultiPolygonType, p, te::dt::SimpleProperty::setAutoNumber(), te::gm::GeometryProperty::setGeometryType(), te::da::DataSetType::setPrimaryKey(), and te::gm::GeometryProperty::setSRID().
Referenced by run(), and te::vp::BufferMemory::run().
|
virtualinherited |
It verifies if the parameters are valid.
Definition at line 85 of file BufferOp.cpp.
References te::vp::BufferOp::m_converter, te::vp::BufferOp::m_outDsetName, and te::vp::BufferOp::m_outDsrc.
Referenced by BufferOGRToOGR(), BufferOGRToPGIS(), BufferPGISToOGR(), BufferPGISToPGIS(), and te::vp::BufferDialog::onOkPushButtonClicked().
|
protected |
It prepare the dataset to be persisted.
| dataSetQuery | The dataSet that was returned by query. |
| outputDataSet | The dataSet prepared to be persisted. |
Definition at line 417 of file BufferQuery.cpp.
References te::mem::DataSet::add(), te::dt::DOUBLE_TYPE, te::dt::GEOMETRY_TYPE, te::da::DataSet::getDouble(), te::da::GetFirstSpatialPropertyPos(), te::da::DataSet::getGeometry(), te::da::DataSet::getInt32(), te::da::DataSet::getInt64(), te::da::DataSet::getNumeric(), te::da::DataSet::getNumProperties(), te::da::DataSet::getPropertyDataType(), te::da::DataSet::getString(), te::dt::INT32_TYPE, te::dt::INT64_TYPE, te::da::DataSet::isNull(), te::da::DataSet::moveBeforeFirst(), te::da::DataSet::moveNext(), te::gm::MultiPolygonType, te::dt::NUMERIC_TYPE, te::mem::DataSetItem::setDouble(), te::mem::DataSetItem::setGeometry(), te::mem::DataSetItem::setInt32(), te::mem::DataSetItem::setInt64(), te::mem::DataSetItem::setNumeric(), te::mem::DataSetItem::setString(), te::dt::STRING_TYPE, and TE_LOG_INFO.
Referenced by run().
|
protected |
It prepare the dataset to be persisted with dissolved geometries.
| vecDissolvedGeom | A vecter with dissolved geometries by level. |
| outputDataSet | The dataSet prepared to be persisted. |
| distance | The buffer distance. |
Definition at line 529 of file BufferQuery.cpp.
References te::mem::DataSet::add(), te::gm::MultiPolygonType, te::mem::DataSetItem::setDouble(), te::mem::DataSetItem::setGeometry(), and te::mem::DataSetItem::setInt32().
|
virtual | |||||||||||||
It executes the operation.
Implements te::vp::BufferOp.
Definition at line 91 of file BufferQuery.cpp.
References te::da::AssociateDataSetTypeConverterSRID(), te::da::CreateAdapter(), te::vp::DISSOLVE, dissolveQuery(), te::dt::GEOMETRY_TYPE, te::vp::BufferOp::GetDataSetType(), te::da::ObjectIdSet::getExpression(), te::da::GetFirstGeomProperty(), te::dt::Property::getName(), te::da::DataSetTypeConverter::getResult(), te::gm::GeometryProperty::getSRID(), te::vp::INSIDE_OUTSIDE, te::vp::BufferOp::m_attributePosition, te::vp::BufferOp::m_bufferBoundariesRule, te::vp::BufferOp::m_bufferPolygonRule, te::vp::BufferOp::m_converter, te::vp::BufferOp::m_copyInputColumns, te::vp::BufferOp::m_distance, te::vp::BufferOp::m_inDsrc, te::vp::BufferOp::m_levels, te::vp::BufferOp::m_newSRID, te::vp::BufferOp::m_oidSet, te::vp::BufferOp::m_outDsrc, te::vp::ONLY_OUTSIDE, prepareDataSet(), and te::vp::Save().
|
inherited |
It sets the input data will be calculated.
| inDsrc | Where data is located. |
| inDsetName | DataSet name. |
| converter | DataSetTypeConverterr. |
| oidSet | ObjectIdSet - It is necessary if has need to execute with a set of specific objects |
Definition at line 51 of file BufferOp.cpp.
References te::vp::BufferOp::m_converter, te::vp::BufferOp::m_inDsetName, te::vp::BufferOp::m_inDsrc, and te::vp::BufferOp::m_oidSet.
Referenced by BufferOGRToOGR(), BufferOGRToPGIS(), BufferPGISToOGR(), BufferPGISToPGIS(), and te::vp::BufferDialog::onOkPushButtonClicked().
|
inherited |
It sets the output parameters that will be used to persist operation result.
| outDsrc | Where data is will be persisted. |
| dsname | The name os output data. |
Definition at line 79 of file BufferOp.cpp.
References te::vp::BufferOp::m_outDsetName, and te::vp::BufferOp::m_outDsrc.
Referenced by BufferOGRToOGR(), BufferOGRToPGIS(), BufferPGISToOGR(), BufferPGISToPGIS(), and te::vp::BufferDialog::onOkPushButtonClicked().
|
inherited |
It sets the input parameters that will be consumed to execute the operation.
| distance | A numeric value to set a fixed distance to buffer. |
| bufferPolygonRule | The rule used for buffer result (INSIDE_OUTSIDE = 0, ONLY_OUTSIDE = 1, ONLY_INSIDE = 2). |
| bufferBoundariesRule | The BoundariesBetweenBuffers can be dissolved or not - (DISSOLVE = 0 and NOT_DISSOLVE = 1). |
| copyInputColumns | Copy columns from input DataSet. |
| levels | The number of levels buffer will have. |
| attributePosition | The buffer can be calculated by attribute values. The attribute must be numeric type. |
Definition at line 62 of file BufferOp.cpp.
References te::vp::BufferOp::m_attributePosition, te::vp::BufferOp::m_bufferBoundariesRule, te::vp::BufferOp::m_bufferPolygonRule, te::vp::BufferOp::m_copyInputColumns, te::vp::BufferOp::m_distance, te::vp::BufferOp::m_levels, and te::vp::BufferOp::m_newSRID.
Referenced by BufferOGRToOGR(), BufferOGRToPGIS(), BufferPGISToOGR(), BufferPGISToPGIS(), and te::vp::BufferDialog::onOkPushButtonClicked().
|
protectedinherited |
The buffer can be calculated by attribute values. The attribute must be numeric type.
Definition at line 148 of file BufferOp.h.
Referenced by te::vp::BufferMemory::dissolveMemory(), run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The buffer boundary rule (DISSOLVE = 0 and NOT_DISSOLVE = 1).
Definition at line 145 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The buffer polygon rule (INSIDE_OUTSIDE = 0, ONLY_OUTSIDE = 1, ONLY_INSIDE = 2).
Definition at line 144 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::setBuffer(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The input datasettype.
Definition at line 139 of file BufferOp.h.
Referenced by te::vp::BufferMemory::dissolveMemory(), te::vp::BufferOp::GetDataSetType(), te::vp::BufferOp::paramsAreValid(), run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setInput().
|
protectedinherited |
Copy columns from input DataSet.
Definition at line 146 of file BufferOp.h.
Referenced by te::vp::BufferOp::GetDataSetType(), run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The fixed distance.
Definition at line 142 of file BufferOp.h.
Referenced by te::vp::BufferMemory::dissolveMemory(), run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The input dataset name.
Definition at line 138 of file BufferOp.h.
Referenced by te::vp::BufferMemory::run(), and te::vp::BufferOp::setInput().
|
protectedinherited |
The input datasource.
Definition at line 137 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setInput().
|
protectedinherited |
The number of levels buffer will have.
Definition at line 147 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
A new SRID if it's necessary to transform the data.
Definition at line 143 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setParams().
|
protectedinherited |
The input objectid set.
Definition at line 140 of file BufferOp.h.
Referenced by run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setInput().
|
protectedinherited |
The output dataset name.
Definition at line 151 of file BufferOp.h.
Referenced by te::vp::BufferOp::GetDataSetType(), te::vp::BufferOp::paramsAreValid(), and te::vp::BufferOp::setOutput().
|
protectedinherited |
The output datasource.
Definition at line 150 of file BufferOp.h.
Referenced by te::vp::BufferOp::paramsAreValid(), run(), te::vp::BufferMemory::run(), and te::vp::BufferOp::setOutput().