[gdal-dev] Area of hourglass shaped polygon

Peter J Halls P.Halls at york.ac.uk
Fri Mar 19 03:13:39 EDT 2010


Whilst I agree with Chris that the 'winding' method for calculating polygon 
areas would need tweaking to work with a shape like this, the 'complementary 
areas' method or the triangulation method would.  See Stephen Wise, GIS Basics, 
London: Taylor & Francis (2002) pp61-64 or Joseph O'Rourke, Computational 
Geometry in C, Cambridge (2nd Edn): Cambridge University Press (1998) pp18-22.

Best wishes,

Peter

Chris 'Xenon' Hanson wrote:
> On 3/18/2010 10:20 AM, Ramiro Gonzalez wrote:
>> I use gdal to calculate the area of polygons drawn by a user over a map.
>> The points are added to the polygon in same order the user selects them.
>> An hourglass shaped polygon can be created adding 4 points like a 'z'.
>> When the polygon has the shape of an hourglass, the measure returned by
>> get_Area() is smaller than the sum of the areas of the two independent
>> triangles.
>> I'd like to know if there is a way to calculate the area in this situation?
>> I tried to intersect the polygon with another that contains it but the
>> operation fails when the polygon cross itself(return NULL). I could use
>> this to inform that the area calculated is invalid, but I'd like to know
>> if there is a better way of knowing this.
> 
>   I'm pretty sure this would be considered nonsensical topology. Area calculations usually
> rely on the points in a polygon winding either consistently clockwise or
> counter-clockwise, but yours are mixed.
> 
>   Don't do that. It's bad.
> 
>   If you want to measure the area of a shape like that, create it out of two normal
> consistently-wound triangles stacked tip-to-tip.
> 
>> Thanks,
>> Ramiro
> 

-- 
--------------------------------------------------------------------------------
Peter J Halls, GIS Advisor, University of York
Telephone: 01904 433806     Fax: 01904 433740
Snail mail: Computing Service, University of York, Heslington, York YO10 5DD
This message has the status of a private and personal communication
--------------------------------------------------------------------------------


More information about the gdal-dev mailing list