Shapefile: Storing counter clock wise polygons does not work - reverseRing() 
incorrect
--------------------------------------------------------------------------------------

                 Key: GEOT-2974
                 URL: http://jira.codehaus.org/browse/GEOT-2974
             Project: GeoTools
          Issue Type: Bug
          Components: data shapefile
         Environment: java 1.6
geotools-2.6.2
            Reporter: Marcel Heckel
            Assignee: Andrea Aime
             Fix For: 2.6.2


Function: org.geotools.data.shapefile.shp.JTSUtilities.reverseRing(LinearRing)
Line 181: Missing setOrdinate() function call

Current (incorrect):
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public static final LinearRing reverseRing(LinearRing lr) {
        GeometryFactory gf = lr.getFactory();
        CoordinateSequenceFactory csf = gf.getCoordinateSequenceFactory();
        
        CoordinateSequence csOrig = lr.getCoordinateSequence();
                int numPoints = csOrig.size();
                int dimensions = csOrig.getDimension();
                CoordinateSequence csNew = csf.create(numPoints, dimensions);

                for (int i = 0; i < numPoints; i++) {
                        for (int j = 0; j < dimensions; j++) {
                                csOrig.getOrdinate(i, j);
                        }
                }

        return gf.createLinearRing(csNew);
    }
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Modified (correct):
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public static final LinearRing reverseRing(LinearRing lr) {
        GeometryFactory gf = lr.getFactory();
        CoordinateSequenceFactory csf = gf.getCoordinateSequenceFactory();
        
        CoordinateSequence csOrig = lr.getCoordinateSequence();
                int numPoints = csOrig.size();
                int dimensions = csOrig.getDimension();
                CoordinateSequence csNew = csf.create(numPoints, dimensions);

                for (int i = 0; i < numPoints; i++) {
                        for (int j = 0; j < dimensions; j++) {
                                csNew.setOrdinate(i,j, csOrig.getOrdinate(i, 
j));
                        }
                }

        return gf.createLinearRing(csNew);
    }
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to