Revision 47652 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/gml/GeometryStrategiesGML3.java
GeometryStrategiesGML3.java | ||
---|---|---|
15 | 15 |
import com.vividsolutions.jts.geom.Polygon; |
16 | 16 |
import com.vividsolutions.jts.io.gml2.GMLConstants; |
17 | 17 |
import com.vividsolutions.jts.operation.linemerge.LineMerger; |
18 |
import java.util.ArrayList; |
|
18 | 19 |
import java.util.HashMap; |
19 | 20 |
import java.util.List; |
20 | 21 |
import org.apache.commons.collections4.CollectionUtils; |
... | ... | |
119 | 120 |
|
120 | 121 |
@Override |
121 | 122 |
public Object parse(GMLHandler.Handler arg, GeometryFactory gf) throws SAXException { |
122 |
Object exterior = arg.children.get(0); |
|
123 |
Object interior = null; |
|
124 |
if(arg.children.size() > 1){ //FIXME: Ver si se est? cogiendo solo un agujero |
|
125 |
interior = arg.children.get(1); |
|
123 |
LinearRing exterior = (LinearRing) arg.children.get(0); |
|
124 |
List<LinearRing> interior = null; |
|
125 |
int childrensCount = arg.children.size(); |
|
126 |
if(childrensCount == 2){ |
|
127 |
interior = (List<LinearRing>) arg.children.get(1); |
|
128 |
} else if(childrensCount > 2){ |
|
129 |
interior = new ArrayList<>(); |
|
130 |
for (int i = 1; i < childrensCount; i++) { |
|
131 |
Object child = arg.children.get(i); |
|
132 |
if(child instanceof List){ |
|
133 |
interior.add(((List<LinearRing>)child).get(0)); |
|
134 |
} else { |
|
135 |
interior.add(((LinearRing)child)); |
|
136 |
} |
|
137 |
} |
|
126 | 138 |
} |
127 | 139 |
return new ImmutablePair(exterior, interior); |
128 | 140 |
} |
Also available in: Unified diff