[GRASS-dev] G_area_of_polygon through ctypes return 0.0

Pietro peter.zamb at gmail.com
Sun Jan 20 08:26:45 PST 2013


Hi all,

I'm not able to compute the area of a polygon using G_area_of_polygon,

I define a square with coords: [(0, 0), (0, 2), (2, 2), (2, 0), (0, 0)]) with:

>>> from pygrass.vector.geometry import Boundary
>>> bound = Boundary(points=[(0, 0), (0, 2), (2, 2), (2, 0), (0, 0)])

Check the content of the C structure, with:

>>> for i in xrange(bound.c_points.contents.n_points):
...         print i, " (%.1f, %.1f)" % (bound.c_points.contents.x[i],
bound.c_points.contents.y[i])
...
0  (0.0, 0.0)
1  (0.0, 2.0)
2  (2.0, 2.0)
3  (2.0, 0.0)
4  (0.0, 0.0)

It seems ok to me, now use the G_area_polygon function...

>>> import grass.lib.gis as libgis
>>> libgis.G_area_of_polygon(bound.c_points.contents.x,
...                          bound.c_points.contents.y,
...                          bound.c_points.contents.n_points)
0.0

Why G_area_of_polygon doesn't return 4.0? What is it wrong?

Best regards

Pietro


More information about the grass-dev mailing list