Hi,
My polygon has several interior rings, and I want to move all vertices in these interior rings. I define the list of interior ring points into a list of IPointCollection, but when I try to add point to an IPointCollection, I got the "Index was out of range. Must be non-negative and less than the size of the collection" error.
My code as follows:
Dim polygon As IPolygon4 = TryCast(mFeature.Shape, IPolygon4)
Dim exteriorRingGeometryBag As IGeometryBag = polygon.ExteriorRingBag
Dim exteriorRingGeometryCollection As IGeometryCollection = TryCast(exteriorRingGeometryBag, IGeometryCollection)
Dim inRing As List(Of IPointCollection) = New List(Of IPointCollection)
For i = 0 To exteriorRingGeometryCollection.GeometryCount - 1
Dim exteriorRingGeometry As IGeometry = exteriorRingGeometryCollection.Geometry(i)
Dim exteriorRingPointCollection As IPointCollection = TryCast(exteriorRingGeometry, IPointCollection)
Dim interiorRingGeometryBag As IGeometryBag = polygon.InteriorRingBag(TryCast(exteriorRingGeometry, IRing))
Dim interiorRingGeometryCollection As IGeometryCollection = TryCast(interiorRingGeometryBag, IGeometryCollection)
For k = 0 To interiorRingGeometryCollection.GeometryCount - 1
Dim InteriorRingGeometry As IGeometry = interiorRingGeometryCollection.Geometry(k)
Dim InteriorRingPointCollection As IPointCollection = TryCast(InteriorRingGeometry, IPointCollection)
For m = 0 To InteriorRingPointCollection.PointCount - 1
Dim pp As IPoint = InteriorRingPointCollection.Point(m)
pp.X = Round(pp.X, 2)
pp.Y = Round(pp.Y, 2)
inRing(k).AddPoint(pp) ' I got error this line
Next
Next<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>