claeis / iox-ili

implementation of IOX API
3 stars 8 forks source link

Iox2jtsext und Iox2jts erzeugen doppelte Koordinaten #94

Open edigonzales opened 3 years ago

edigonzales commented 3 years ago

Falls ein IomObjekt mehrere Polylines hat, erzeugen die beiden Klassen doppelte Koordinaten:

        Iom_jObject objSurface = new Iom_jObject(ILI_CLASSE, OBJ_OID1);
        IomObject multisurfaceValue = objSurface.addattrobj("gebietseinteilung", "MULTISURFACE");
        IomObject surfaceValue = multisurfaceValue.addattrobj("surface", "SURFACE");
        IomObject outerBoundary = surfaceValue.addattrobj("boundary", "BOUNDARY");

        IomObject polylineValue1 = outerBoundary.addattrobj("polyline", "POLYLINE");
        IomObject segments1 = polylineValue1.addattrobj("sequence", "SEGMENTS");
        IomObject startSegment1 = segments1.addattrobj("segment", "COORD");
        startSegment1.setattrvalue("C1", "0.000");
        startSegment1.setattrvalue("C2", "0.000");
        IomObject endSegment1 = segments1.addattrobj("segment", "COORD");
        endSegment1.setattrvalue("C1", "0.000");
        endSegment1.setattrvalue("C2", "10.000");

        IomObject polylineValue2 = outerBoundary.addattrobj("polyline", "POLYLINE");
        IomObject segments2 = polylineValue2.addattrobj("sequence", "SEGMENTS");
        IomObject startSegment2 = segments2.addattrobj("segment", "COORD");
        startSegment2.setattrvalue("C1", "0.000");
        startSegment2.setattrvalue("C2", "10.000");
        IomObject endSegment2 = segments2.addattrobj("segment", "COORD");
        endSegment2.setattrvalue("C1", "5.000");
        endSegment2.setattrvalue("C2", "10.000");

        IomObject polylineValue6 = outerBoundary.addattrobj("polyline", "POLYLINE");
        IomObject segments6 = polylineValue6.addattrobj("sequence", "SEGMENTS");
        IomObject startSegment6 = segments6.addattrobj("segment", "COORD");
        startSegment6.setattrvalue("C1", "5.000");
        startSegment6.setattrvalue("C2", "10.000");
        IomObject endSegment6 = segments6.addattrobj("segment", "COORD");
        endSegment6.setattrvalue("C1", "10.000");
        endSegment6.setattrvalue("C2", "10.000");

        IomObject polylineValue7 = outerBoundary.addattrobj("polyline", "POLYLINE");
        IomObject segments7 = polylineValue7.addattrobj("sequence", "SEGMENTS");
        IomObject startSegment7 = segments7.addattrobj("segment", "COORD");
        startSegment7.setattrvalue("C1", "10.000");
        startSegment7.setattrvalue("C2", "10.000");
        IomObject endSegment7 = segments7.addattrobj("segment", "COORD");
        endSegment7.setattrvalue("C1", "10.000");
        endSegment7.setattrvalue("C2", "0.000");

        IomObject polylineValue8 = outerBoundary.addattrobj("polyline", "POLYLINE");
        IomObject segments8 = polylineValue8.addattrobj("sequence", "SEGMENTS");
        IomObject startSegment8 = segments8.addattrobj("segment", "COORD");
        startSegment8.setattrvalue("C1", "10.000");
        startSegment8.setattrvalue("C2", "0.000");
        IomObject endSegment8 = segments8.addattrobj("segment", "COORD");
        endSegment8.setattrvalue("C1", "0.000");
        endSegment8.setattrvalue("C2", "0.000");
POLYGON ((0 0, 0 10, 0 10, 5 10, 5 10, 10 10, 10 10, 10 0, 10 0, 0 0))

Korrekt wäre:

POLYGON ((0 0, 0 10, 5 10, 10 10, 10 0, 0 0))