[gdal-dev] problem with CloseRings

Oliver Christen oliver.christen at camptocamp.com
Wed Aug 22 09:13:05 PDT 2012


dear community

first of all please accept my apologies if this is not the correct
place to ask about such question.

I am trying to manipulate some geometric data using the gdal/ogr
python lib and Im facing a problem when trying to transform invalid
ring into valid ring.

I have polygons with unclosed holes and I expected the CloseRings
function to solve this for me, but unfortunately, that functions
doesnt seem to do anything (in my case).

see below for a simply python testcase,

if you could tell me if I am possibly not using that function
correctly or if there is a more correct way to do that, you would be
very welcome

using python version 2.6.6
osgeo ogr lib version 1.3.40

thank you very much for your attention
best regards
Oliver

from osgeo import ogr

wkt = "POLYGON ((559577.81 142165.04,559577.67 142161.79,559577.66
142161.16,559577.18 142139.0,559564.07 142140.84,559562.99
142132.4,559556.42 142134.85,559556.47 142134.96,559541.39
142140.58,559549.54 142162.4,559547.0200406529475
142163.310114102292573,559550.570425555342808
142173.455536680703517,559577.81 142165.04),(559559.95600777247455
142169.280249390256358,559550.996165407239459
142172.552877245907439,559550.996165407355875
142172.552877245907439,559547.909677243907936
142163.733065433305455,559550.443360350676812
142162.817994827404618,559542.290859716595151
142140.991299878398422,559557.417905980604701
142135.353766721702414,559557.367843619547784
142135.243629527511075,559562.407678314950317
142133.364239115995588,559563.465598454349674
142141.631689094298054,559576.497222575126216
142139.80268921770039,559576.960120304953307
142161.173134415294044,559576.970239149406552
142161.810621617711149,559577.084823867655359
142164.470624003995908,559577.084823867655359
142164.470624004025012,559570.876975534367375
142165.896950183814624,559564.754505693446845
142167.653979024267755,559564.75450569356326
142167.653979024296859,559559.956007772590965
142169.280249390256358,559559.95600777247455
142169.280249390256358),(559560.19 142169.94,559550.64
142173.43,559560.19 142169.94),(559564.97 142168.32,559560.19
142169.94,559564.97 142168.32),(559577.810000000172295
142165.04,559571.34395208011847 142166.499739240010967,559564.97
142168.32,559577.810000000172295 142165.04))"

poly = ogr.CreateGeometryFromWkt(wkt)

poly.IsValid()
ERROR 1: IllegalArgumentException: Invalid number of points in
LinearRing found 3 - must be 0 or >= 4
False

poly.CloseRings()

poly.IsValid()
ERROR 1: IllegalArgumentException: Invalid number of points in
LinearRing found 3 - must be 0 or >= 4
False


More information about the gdal-dev mailing list