| Home | Libraries | People | FAQ | More

##### perimeter

Calculates the perimeter of a geometry.

###### Description

The function perimeter returns the perimeter of a geometry, using the default distance-calculation-strategy

###### Synopsis

    template<typename Geometry>
    default_length_result<Geometry>::type perimeter(Geometry const & geometry)

###### Parameters

Type | Concept | Name | Description
--- | --- | --- | ---
Geometry const & | Any type fulfilling a Geometry Concept | geometry | A model of the specified concept

###### Returns

The calculated perimeter

###### Header

Either

`#include <boost/geometry.hpp>`

Or

`#include <boost/geometry/algorithms/perimeter.hpp>`

###### Conformance

The function perimeter is not defined by OGC.

| Note
PostGIS contains an algorithm with the same name and the same functionality. See the PostGIS documentation.

###### Behavior

Case | Behavior
--- | ---
pointlike (e.g. point) | Returns zero
linear (e.g. linestring) | Returns zero
areal (e.g. polygon) | Returns the perimeter

###### Complexity

Linear

###### Example

Calculate the perimeter of a polygon

    #include <iostream>

    #include <boost/geometry.hpp>
    #include <boost/geometry/geometries/point_xy.hpp>
    #include <boost/geometry/geometries/polygon.hpp>

    namespace bg = boost::geometry;

    int main()
    {
        // Calculate the perimeter of a cartesian polygon
        bg::model::polygon<bg::model::d2::point_xy<double> > poly;
        bg::read_wkt("POLYGON((0 0,3 4,5 -5,-2 -4, 0 0))", poly);
        double perimeter = bg::perimeter(poly);
        std::cout << "Perimeter: " << perimeter << std::endl;

        return 0;
    }

| Convenient namespace alias

Output:

    Perimeter: 25.7627