Quantum GIS API Documentation  1.7.4
Public Member Functions | Private Member Functions
QgsGeometryAnalyzer Class Reference

The QGis class provides vector geometry analysis functions. More...

#include <qgsgeometryanalyzer.h>

List of all members.

Public Member Functions

bool simplify (QgsVectorLayer *layer, const QString &shapefileName, double tolerance, bool onlySelectedFeatures=false, QProgressDialog *p=0)
 Simplify vector layer using (a modified) Douglas-Peucker algorithm and write it to a new shape file.
bool centroids (QgsVectorLayer *layer, const QString &shapefileName, bool onlySelectedFeatures=false, QProgressDialog *p=0)
 Calculate the true centroids, or 'center of mass' for a vector layer and write it to a new shape file.
bool extent (QgsVectorLayer *layer, const QString &shapefileName, bool onlySelectedFeatures=false, QProgressDialog *p=0)
 Create a polygon based on the extent of all (selected) features and write it to a new shape file.
bool buffer (QgsVectorLayer *layer, const QString &shapefileName, double bufferDistance, bool onlySelectedFeatures=false, bool dissolve=false, int bufferDistanceField=-1, QProgressDialog *p=0)
 Create buffers for a vector layer and write it to a new shape file.
bool convexHull (QgsVectorLayer *layer, const QString &shapefileName, bool onlySelectedFeatures=false, int uniqueIdField=-1, QProgressDialog *p=0)
 Create convex hull(s) of a vector layer and write it to a new shape file.
bool dissolve (QgsVectorLayer *layer, const QString &shapefileName, bool onlySelectedFeatures=false, int uniqueIdField=-1, QProgressDialog *p=0)
 Dissolve a vector layer and write it to a new shape file.

Private Member Functions

QList< double > simpleMeasure (QgsGeometry *geometry)
double perimeterMeasure (QgsGeometry *geometry, QgsDistanceArea &measure)
void simplifyFeature (QgsFeature &f, QgsVectorFileWriter *vfw, double tolerance)
 Helper function to simplify an individual feature.
void centroidFeature (QgsFeature &f, QgsVectorFileWriter *vfw)
 Helper function to get the cetroid of an individual feature.
void bufferFeature (QgsFeature &f, int nProcessedFeatures, QgsVectorFileWriter *vfw, bool dissolve, QgsGeometry **dissolveGeometry, double bufferDistance, int bufferDistanceField)
 Helper function to buffer an individual feature.
void convexFeature (QgsFeature &f, int nProcessedFeatures, QgsGeometry **dissolveGeometry)
 Helper function to get the convex hull of feature(s)
void dissolveFeature (QgsFeature &f, int nProcessedFeatures, QgsGeometry **dissolveGeometry)
 Helper function to dissolve feature(s)

Detailed Description

The QGis class provides vector geometry analysis functions.

Definition at line 37 of file qgsgeometryanalyzer.h.


Member Function Documentation

bool QgsGeometryAnalyzer::buffer ( QgsVectorLayer layer,
const QString &  shapefileName,
double  bufferDistance,
bool  onlySelectedFeatures = false,
bool  dissolve = false,
int  bufferDistanceField = -1,
QProgressDialog *  p = 0 
)

Create buffers for a vector layer and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
bufferDistancedistance for buffering (if no buffer field is specified)
onlySelectedFeaturesif true, only selected features are considered, else all the features
dissolveif true, merge all the buffers to a big multipolygon
bufferDistanceFieldindex of the attribute field that contains the buffer distance (or -1 if all features have the same buffer distance)
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.3

Definition at line 747 of file qgsgeometryanalyzer.cpp.

References bufferFeature(), QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), dissolveFeature(), QgsVectorDataProvider::encoding(), QgsVectorLayer::featureAtId(), QgsVectorLayer::featureCount(), QgsVectorDataProvider::fields(), QgsVectorLayer::nextFeature(), QgsVectorLayer::pendingAllAttributesList(), QgsDebugMsg, QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), QgsFeature::setGeometry(), QGis::WKBMultiPolygon, and QGis::WKBPolygon.

void QgsGeometryAnalyzer::bufferFeature ( QgsFeature f,
int  nProcessedFeatures,
QgsVectorFileWriter vfw,
bool  dissolve,
QgsGeometry **  dissolveGeometry,
double  bufferDistance,
int  bufferDistanceField 
) [private]

Helper function to get the cetroid of an individual feature.

Definition at line 236 of file qgsgeometryanalyzer.cpp.

References QgsVectorFileWriter::addFeature(), QgsFeature::attributeMap(), QgsGeometry::centroid(), QgsFeature::geometry(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().

Referenced by centroids().

bool QgsGeometryAnalyzer::centroids ( QgsVectorLayer layer,
const QString &  shapefileName,
bool  onlySelectedFeatures = false,
QProgressDialog *  p = 0 
)

Calculate the true centroids, or 'center of mass' for a vector layer and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
onlySelectedFeaturesif true, only selected features are considered, else all the features
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.4

Definition at line 145 of file qgsgeometryanalyzer.cpp.

References centroidFeature(), QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), QgsVectorDataProvider::encoding(), QgsVectorLayer::featureAtId(), QgsVectorLayer::featureCount(), QgsVectorDataProvider::fields(), QgsVectorLayer::nextFeature(), QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), and QGis::WKBPoint.

void QgsGeometryAnalyzer::convexFeature ( QgsFeature f,
int  nProcessedFeatures,
QgsGeometry **  dissolveGeometry 
) [private]

Helper function to get the convex hull of feature(s)

Definition at line 564 of file qgsgeometryanalyzer.cpp.

References QgsGeometry::combine(), QgsGeometry::convexHull(), and QgsFeature::geometry().

Referenced by convexHull().

bool QgsGeometryAnalyzer::convexHull ( QgsVectorLayer layer,
const QString &  shapefileName,
bool  onlySelectedFeatures = false,
int  uniqueIdField = -1,
QProgressDialog *  p = 0 
)

Create convex hull(s) of a vector layer and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
onlySelectedFeaturesif true, only selected features are considered, else all the features
uniqueIdFieldindex of the attribute field that contains the unique convex hull id (or -1 if all features have the same buffer distance)
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.4

Definition at line 380 of file qgsgeometryanalyzer.cpp.

References convexFeature(), QgsGeometry::convexHull(), QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), dissolveFeature(), QgsVectorDataProvider::encoding(), QgsVectorLayer::featureAtId(), QgsVectorLayer::featureCount(), QgsVectorLayer::nextFeature(), QgsVectorLayer::pendingAllAttributesList(), QgsDebugMsg, QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), QgsFeature::setAttributeMap(), QgsFeature::setGeometry(), simpleMeasure(), and QGis::WKBPolygon.

bool QgsGeometryAnalyzer::dissolve ( QgsVectorLayer layer,
const QString &  shapefileName,
bool  onlySelectedFeatures = false,
int  uniqueIdField = -1,
QProgressDialog *  p = 0 
)

Dissolve a vector layer and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
onlySelectedFeaturesif true, only selected features are considered, else all the features
uniqueIdFieldindex of the attribute field that contains the unique id to dissolve on (or -1 if all features should be dissolved together)
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.4

Definition at line 590 of file qgsgeometryanalyzer.cpp.

References QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), dissolveFeature(), QgsVectorDataProvider::encoding(), QgsVectorLayer::featureAtId(), QgsVectorLayer::featureCount(), QgsVectorDataProvider::fields(), QgsVectorDataProvider::geometryType(), QgsVectorLayer::nextFeature(), QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), QgsFeature::setAttributeMap(), and QgsFeature::setGeometry().

void QgsGeometryAnalyzer::dissolveFeature ( QgsFeature f,
int  nProcessedFeatures,
QgsGeometry **  dissolveGeometry 
) [private]

Helper function to dissolve feature(s)

Definition at line 724 of file qgsgeometryanalyzer.cpp.

References QgsGeometry::asWkb(), QgsGeometry::combine(), QgsFeature::geometry(), and QgsGeometry::wkbSize().

Referenced by buffer(), convexHull(), and dissolve().

bool QgsGeometryAnalyzer::extent ( QgsVectorLayer layer,
const QString &  shapefileName,
bool  onlySelectedFeatures = false,
QProgressDialog *  p = 0 
)

Create a polygon based on the extent of all (selected) features and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
onlySelectedFeaturesif true, only selected features are considered, else all the features
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.4

Definition at line 259 of file qgsgeometryanalyzer.cpp.

References QgsVectorLayer::boundingBoxOfSelected(), QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), QgsVectorDataProvider::encoding(), QgsMapLayer::extent(), QgsGeometry::fromRect(), QgsFeature::setAttributeMap(), QgsFeature::setGeometry(), QGis::WKBPolygon, and QgsRectangle::xMinimum().

double QgsGeometryAnalyzer::perimeterMeasure ( QgsGeometry geometry,
QgsDistanceArea measure 
) [private]
QList< double > QgsGeometryAnalyzer::simpleMeasure ( QgsGeometry geometry) [private]
bool QgsGeometryAnalyzer::simplify ( QgsVectorLayer layer,
const QString &  shapefileName,
double  tolerance,
bool  onlySelectedFeatures = false,
QProgressDialog *  p = 0 
)

Simplify vector layer using (a modified) Douglas-Peucker algorithm and write it to a new shape file.

Parameters:
layerinput vector layer
shapefileNamepath to the output shp
tolerance(level of simplification)
onlySelectedFeaturesif true, only selected features are considered, else all the features
pprogress dialog (or 0 if no progress dialog is to be shown)
Note:
: added in version 1.4

Definition at line 31 of file qgsgeometryanalyzer.cpp.

References QgsMapLayer::crs(), QgsVectorLayer::dataProvider(), QgsVectorDataProvider::encoding(), QgsVectorLayer::featureAtId(), QgsVectorLayer::featureCount(), QgsVectorDataProvider::fields(), QgsVectorDataProvider::geometryType(), QgsVectorLayer::nextFeature(), QgsVectorLayer::pendingAllAttributesList(), QgsVectorLayer::select(), QgsVectorLayer::selectedFeaturesIds(), and simplifyFeature().

void QgsGeometryAnalyzer::simplifyFeature ( QgsFeature f,
QgsVectorFileWriter vfw,
double  tolerance 
) [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines