[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