3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
5 <link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../../../index.html" title="Chapter 1. Geometry">
8 <link rel="up" href="../area.html" title="area">
9 <link rel="prev" href="../area.html" title="area">
10 <link rel="next" href="area_2_with_strategy.html" title="area (with strategy)">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="../area.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../area.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="area_2_with_strategy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h5 class="title">
27 <a name="geometry.reference.algorithms.area.area_1"></a><a class="link" href="area_1.html" title="area">area</a>
28 </h5></div></div></div>
30 <a class="indexterm" name="idm46187009970336"></a>
31 Calculates the area of a geometry.
34 <a name="geometry.reference.algorithms.area.area_1.h0"></a>
35 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.description"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.description">Description</a>
38 The free function area calculates the area of a geometry. It uses the
39 default strategy, based on the coordinate system of the geometry.
42 The area algorithm calculates the surface area of all geometries having
43 a surface, namely box, polygon, ring, multipolygon. The units are the
44 square of the units used for the points defining the surface. If subject
45 geometry is defined in meters, then area is calculated in square meters.
48 The area calculation can be done in all three common coordinate systems,
49 Cartesian, Spherical and Geographic as well.
52 <a name="geometry.reference.algorithms.area.area_1.h1"></a>
53 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.synopsis"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.synopsis">Synopsis</a>
57 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Geometry</span><span class="special">></span>
58 <span class="identifier">area_result</span><span class="special"><</span><span class="identifier">Geometry</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">area</span><span class="special">(</span><span class="identifier">Geometry</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">geometry</span><span class="special">)</span></pre>
62 <a name="geometry.reference.algorithms.area.area_1.h2"></a>
63 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.parameters"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.parameters">Parameters</a>
65 <div class="informaltable"><table class="table">
102 Any type fulfilling a Geometry Concept
112 A model of the specified concept
118 <a name="geometry.reference.algorithms.area.area_1.h3"></a>
119 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.returns"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.returns">Returns</a>
125 <a name="geometry.reference.algorithms.area.area_1.h4"></a>
126 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.header"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.header">Header</a>
132 <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
138 <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">algorithms</span><span class="special">/</span><span class="identifier">area</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
141 <a name="geometry.reference.algorithms.area.area_1.h5"></a>
142 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.conformance"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.conformance">Conformance</a>
145 The function area implements function Area from the <a href="http://www.opengeospatial.org/standards/sfa" target="_top">OGC
146 Simple Feature Specification</a>.
149 <a name="geometry.reference.algorithms.area.area_1.h6"></a>
150 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.behavior"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.behavior">Behavior</a>
152 <div class="informaltable"><table class="table">
173 pointlike (e.g. point)
185 linear (e.g. linestring)
214 Returns the area in the same units as the input coordinates
226 Returns the area on a unit sphere (or another sphere, if specified
227 as such in the constructor of the strategy)
234 Reversed polygon (coordinates not according their orientiation)
239 Returns the negative area
246 <a name="geometry.reference.algorithms.area.area_1.h7"></a>
247 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.supported_geometries"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.supported_geometries">Supported
250 <div class="informaltable"><table class="table">
276 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
288 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
300 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
312 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
324 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
336 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
348 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
360 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
372 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
384 <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
391 <a name="geometry.reference.algorithms.area.area_1.h8"></a>
392 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.complexity"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.complexity">Complexity</a>
398 <a name="geometry.reference.algorithms.area.area_1.h9"></a>
399 <span class="phrase"><a name="geometry.reference.algorithms.area.area_1.examples"></a></span><a class="link" href="area_1.html#geometry.reference.algorithms.area.area_1.examples">Examples</a>
402 Calculate the area of a polygon
406 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
408 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
409 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">/</span><span class="identifier">point_xy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
410 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">/</span><span class="identifier">polygon</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
412 <span class="keyword">namespace</span> <span class="identifier">bg</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">;</span> <a class="co" name="geometry.reference.algorithms.area.area_1.c0" href="area_1.html#geometry.reference.algorithms.area.area_1.c1"><img src="../../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a>
414 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
415 <span class="special">{</span>
416 <span class="comment">// Calculate the area of a cartesian polygon</span>
417 <span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">polygon</span><span class="special"><</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">d2</span><span class="special">::</span><span class="identifier">point_xy</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span> <span class="identifier">poly</span><span class="special">;</span>
418 <span class="identifier">bg</span><span class="special">::</span><span class="identifier">read_wkt</span><span class="special">(</span><span class="string">"POLYGON((0 0,0 7,4 2,2 0,0 0))"</span><span class="special">,</span> <span class="identifier">poly</span><span class="special">);</span>
419 <span class="keyword">double</span> <span class="identifier">area</span> <span class="special">=</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">area</span><span class="special">(</span><span class="identifier">poly</span><span class="special">);</span>
420 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Area: "</span> <span class="special"><<</span> <span class="identifier">area</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
422 <span class="comment">// Calculate the area of a spherical equatorial polygon</span>
423 <span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">polygon</span><span class="special"><</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">point</span><span class="special"><</span><span class="keyword">float</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">cs</span><span class="special">::</span><span class="identifier">spherical_equatorial</span><span class="special"><</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">degree</span><span class="special">></span> <span class="special">></span> <span class="special">></span> <span class="identifier">sph_poly</span><span class="special">;</span>
424 <span class="identifier">bg</span><span class="special">::</span><span class="identifier">read_wkt</span><span class="special">(</span><span class="string">"POLYGON((0 0,0 45,45 0,0 0))"</span><span class="special">,</span> <span class="identifier">sph_poly</span><span class="special">);</span>
425 <span class="identifier">area</span> <span class="special">=</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">area</span><span class="special">(</span><span class="identifier">sph_poly</span><span class="special">);</span>
426 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Area: "</span> <span class="special"><<</span> <span class="identifier">area</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
428 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
429 <span class="special">}</span>
433 <div class="calloutlist"><table border="0" summary="Callout list"><tr>
434 <td width="5%" valign="top" align="left"><p><a name="geometry.reference.algorithms.area.area_1.c1"></a><a href="#geometry.reference.algorithms.area.area_1.c0"><img src="../../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
435 <td valign="top" align="left"><p>
436 Convenient namespace alias
442 <pre class="programlisting">Area: 16
446 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
447 <td align="left"></td>
448 <td align="right"><div class="copyright-footer">Copyright © 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
449 Wulkiewicz, Oracle and/or its affiliates<p>
450 Distributed under the Boost Software License, Version 1.0. (See accompanying
451 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
456 <div class="spirit-nav">
457 <a accesskey="p" href="../area.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../area.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="area_2_with_strategy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>