Revision 2999 trunk/extensions/extGeoProcessing/src/com/iver/gvsig/geoprocessing/gui/GeoProcessingPanel.java

View differences:

GeoProcessingPanel.java
1032 1032
                    }
1033 1033
                }
1034 1034
            }
1035
            // Al meter rowj.length en vez de rowj.length-1 se anula esta parte
1036
            /*Vector resultGeometries = new Vector();
1037
            for (int i=0;i<values.size();i++) {
1038
                Value[] rowi = ((Value[])values.get(i));
1039
                Geometry geometryi = ((Geometry)geometriesClipped.get(i));
1040
                for (int j=0;j<values.size();j++) {
1041
                    if (j>i) {
1042
                    //if (j!=i) {
1043
                        Value[] rowj = ((Value[])values.get(j));
1044
                        boolean areTheSameElement = true;
1045
                        //for (int k=0;k<rowj.length;k++) {
1046
                        for (int k=0;k<rowj.length-1;k++) {
1047
                            //Value valuei = ds.getFieldValue(i, k);
1048
                            //Value valuej = ds.getFieldValue(j, k);
1049
                            Value valuei = rowi[k];
1050
                            Value valuej = rowj[k];
1051
                            if (!((BooleanValue)(valuej.equals(valuei))).getValue()) {
1052
                                areTheSameElement = false;
1053
                                break;
1054
                            }
1055
                        }
1056
                        if (areTheSameElement) {
1057
                            Geometry geometryj = ((Geometry)geometriesClipped.get(j));
1058
                            geometryi = geometryj.union(geometryi);
1059
                            //values.remove(j); // igual esto peta ...
1060
                        }
1061
                    }
1062
                }
1063
                resultGeometries.add(geometryi);
1064
            }
1065
            for (int i=0;i<resultGeometries.size();i++) {
1066
                for (int j=0;j<resultGeometries.size();j++) {
1067
                    if (j>i) {
1068
                        if (((Geometry)resultGeometries.get(i)).contains((Geometry)resultGeometries.get(j))) resultGeometries.remove(j);
1069
                    }
1070
                }
1071
            }*/
1072 1035
            Vector resultGeometries = new Vector();
1073 1036
            for (int i=0;i<values.size();i++) {
1074
                //Value valuei = fieldValues[i];
1075 1037
                Value[] rowi = ((Value[])values.get(i));
1076 1038
                Geometry geometryi = ((Geometry)geometriesClipped.get(i));
1077 1039
                for (int j=0;j<values.size();j++) {
1078 1040
                    if (j!=i) {
1079
                        //Value valuej = fieldValues[j];
1080 1041
                        Value[] rowj = ((Value[])values.get(j));
1081
                        /*if (((BooleanValue)(valuej.equals(valuei))).getValue()) {
1082
                            Geometry geometryj = geometriesToDissolve[j];
1083
                                geometryi = geometryj.union(geometryi);
1084
                        }*/
1085 1042
                        boolean areTheSameElement = true;
1086
                        //for (int k=0;k<rowj.length;k++) {
1087
                        for (int k=0;k<rowj.length-1;k++) {
1043
                        for (int k=0;k<rowj.length;k++) {
1044
                        //for (int k=0;k<rowj.length-1;k++) {
1088 1045
                            Value valuei = rowi[k];
1089 1046
                            Value valuej = rowj[k];
1090 1047
                            if (!((BooleanValue)(valuej.equals(valuei))).getValue()) {
......
1095 1052
                        if (areTheSameElement) {
1096 1053
                            Geometry geometryj = ((Geometry)geometriesClipped.get(j));
1097 1054
                            geometryi = geometryj.union(geometryi);
1098
                            //values.remove(j); // igual esto peta ...
1099 1055
                        }
1100 1056
                    }
1101 1057
                }
......
1111 1067
                    }
1112 1068
                }
1113 1069
            }
1114
            //
1115
            /*for (int i=0;i<values.size();i++) {
1116
                Value[] rowi = ((Value[])values.get(i));
1117
                for (int j=0;j<values.size();j++) {
1118
                    if (j!=i) {
1119
                        Value[] rowj = ((Value[])values.get(j));
1120
                        boolean areTheSameElement = true;
1121
                        //for (int k=0;k<rowj.length;k++) {
1122
                        for (int k=0;k<rowj.length-1;k++) {
1123
                            Value valuei = rowi[k];
1124
                            Value valuej = rowj[k];
1125
                            if (!((BooleanValue)(valuej.equals(valuei))).getValue()) {
1126
                                areTheSameElement = false;
1127
                            }
1128
                        }
1129
                        if (areTheSameElement) {
1130
                            values.remove(j);
1131
                        }
1132
                    }
1133
                }
1134
            }*/
1135 1070
            for (int i=0;i<values.size();i++) {
1136 1071
                Value[] rowi = ((Value[])values.get(i));
1137 1072
                for (int j=0;j<values.size();j++) {
1138 1073
                    if (j>i) {
1139 1074
                        Value[] rowj = ((Value[])values.get(j));
1140 1075
                        boolean areTheSameElement = true;
1141
                        for (int k=0;k<rowj.length-1;k++) {
1076
                        for (int k=0;k<rowj.length;k++) {
1077
                        //for (int k=0;k<rowj.length-1;k++) {
1142 1078
                            Value valuei = rowi[k];
1143 1079
                            Value valuej = rowj[k];
1144 1080
                            if (!((BooleanValue)(valuej.equals(valuei))).getValue()) {
......
1152 1088
                    }
1153 1089
                }
1154 1090
            }
1155
            //
1156 1091
            Geometry[] dissolvedGeometries = new Geometry[resultGeometries.size()];
1157 1092
            for (int i=0;i<resultGeometries.size();i++) {
1158 1093
                dissolvedGeometries[i] = (Geometry)resultGeometries.get(i);

Also available in: Unified diff