
Barend Gehrels a écrit :
I would like to hear the opinion of potential geometry users on the list about the following.
For the three geometries, point, linestring (= sequence of points), polygon:
What should the generic "area" algorithm return for point and linestring? - 0 (zero) - compiler error (so this function is not defined for them at all) - exception Personally I would feel for 0 (zero) because you can then request the "area" in a generic collection, regardless of what is inside.
0, indeed.
What should the generic "length" algorithm return for polygon? - 0 (zero) - its perimeter - compiler error - exception
Rename length to perimeter, since that is more generic.
What should the generic "centroid" algorithm return for point and linestring? - the point / the average its points - compiler error - exception
For all geometries, which are only sets of points, the centroid should be the average point.
and for an invalid polygon (e.g. no points at all, or not closed)? - exception - return "false" (if centroid is passed as a reference parameter) - ? (we've not always the compiler error option here because points are usually stored in a runtime collection)
Undefined behaviour. An invalid polygon shouldn't be allowed in the first place. Ideally, that should be prevented by the type system.