...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Calculates the centroid of a geometry using the specified strategy.
The free function centroid calculates the geometric center (or: center of mass) of a geometry. This version with the return_ prefix returns the centroid, and a template parameter must therefore be specified in the call.. Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation.
template<typename Point, typename Geometry, typename Strategy> Point return_centroid(Geometry const & geometry, Strategy const & strategy)
Type 
Concept 
Name 
Description 

Point 
Any type fulfilling a Point Concept 
 
Must be specified 
Geometry const & 
Any type fulfilling a Geometry Concept 
geometry 
A model of the specified concept 
Strategy const & 
Any type fulfilling a centroid Strategy Concept 
strategy 
The strategy which will be used for centroid calculations 
The calculated centroid
Either
#include <boost/geometry/geometry.hpp>
Or
#include <boost/geometry/algorithms/centroid.hpp>
Case 
Behavior 

Point 
Returns the point itself as the centroid 
Multi Point 
Calculates centroid (based on average) 
linear (e.g. linestring) 
Calculates centroid (based on weighted length) 
areal (e.g. polygon) 
Calculates centroid 
Empty (e.g. polygon without points) 
Throws a centroid_exception 
Cartesian 
Implemented 
Spherical 
Calculates the centroid as if based on Cartesian coordinates 
2D 
3D 


Point 


Segment 


Box 


Linestring 


Ring 


Polygon 


MultiPoint 


MultiLinestring 


MultiPolygon 


Linear