[Mapserver-users] area Calculation in polygon-shapes

Norman Vine nhv at cape.com
Mon Feb 2 08:07:01 PST 2004


> 
> It is easy to calculate just get the polygon shape object and extract 
> the polygon vertices. Then walk through the line segment and sum the 
> area under the line segment. Or if the vertex points are in array v 
> then in sudo-code:
> 
> area = 0;
> for (i=1; i<numPoints; i++) {
>   area = area + (v[i].x - v[i-1].x)*(v[i-1].y + (v[i].y - v[i-
> 1].y)/2.0);
> }
> // and close the gap if any between the last and the first
> area = area + (v[0].x - v[numPoints-1].x)*(v[numPoints-1].y + (v[0].y 
> - v[numPoints-1].y)/2.0);


Note that this is a 'flat earth' solution and the correspondence
of the solution obtained with what a surveyor might measure on 
the actual 'ground' is *very* dependent on the size of the area, 
it's location and the projection method used.

For example if a latlon representation of the points is used
this will be ~accurate only for small areas near the equator.

http://math.rice.edu/~pcmi/sphere/
http://www.geodyssey.com/papers/ggelare.html

Cheers

Norman



More information about the MapServer-users mailing list