[GRASS-dev] Re: [GRASS GIS] #699: v.buffer segfault: in
Vect_get_isle_points()
GRASS GIS
trac at osgeo.org
Sun Jul 26 05:04:05 EDT 2009
#699: v.buffer segfault: in Vect_get_isle_points()
----------------------+-----------------------------------------------------
Reporter: neteler | Owner: grass-dev at lists.osgeo.org
Type: defect | Status: new
Priority: normal | Milestone: 6.4.0
Component: Vector | Version: 6.4.0 RCs
Resolution: | Keywords:
Platform: All | Cpu: All
----------------------+-----------------------------------------------------
Comment (by mmetz):
v.buffer is broken for areas. After I fixed the segfault (not submitted),
it hangs with the above example. Further on, with some simple test
vectors, it throws away isles of areas, removes boundaries between
adjacent areas with different categories, and buffers both boundaries and
areas causing damaged topology.
IMO,
- boundaries shared between two areas should not be touched when buffering
areas, because it can not be decided where the buffered boundary should be
- isles should only be modified if they consist of areas without centroid,
otherwise the should be preserved as is
- v.buffer should buffer either boundaries or areas, not both at the same
time
There is redundant code in Vlib/buffer2.c, functions that are present
elsewhere in the vector libs. New Vect_*() functions should make use of
existing functions instead of writing duplicates of existing functions.
Someone has to maintain all the code...
This is bad news, I have no time right now to attempt to fix it, best
would be if Rosen Matev fixes it, he knows the code best.
Markus M
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/699#comment:3>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list