private Geometry convertToJTSGeometry(PolygonPropertyType polygon) { LinearRingType outerRing = polygon.getPolygon().getOuterBoundaryIs().getLinearRing(); LinearRing jtsOuterRing = convertToJTSLinearRing(outerRing); LinearRingMemberType[] innerRings = polygon.getPolygon().getInnerBoundaryIsArray(); List<LinearRing> jtsInnerRings = new ArrayList<LinearRing>(); for(LinearRingMemberType ring : innerRings) { if(ring.getLinearRing() != null) { jtsInnerRings.add(convertToJTSLinearRing(ring.getLinearRing())); } } return geomFactory.createPolygon(jtsOuterRing, (LinearRing[])jtsInnerRings.toArray(new LinearRing[jtsInnerRings.size()])); }
private LinearRingMemberType convertToXMLLinearRing(LineString ls) { LinearRingMemberType ringMember = LinearRingMemberType.Factory.newInstance(); LinearRingType ring = LinearRingType.Factory.newInstance(); CoordType[] coords = convertToXMLCoordType(ls.getCoordinates()); if(coords == null) { return null; } ring.setCoordArray(coords); ringMember.setLinearRing(ring); return ringMember; }
LinearRingMemberType innerBoundary = xmlPolygon.addNewInnerBoundaryIs(); for(int i = 0; i < polygon.getNumInteriorRing(); i++) { LinearRingType innerRing = innerBoundary.addNewLinearRing(); innerRing.setCoordArray(convertToXMLCoordType(polygon.getInteriorRingN(i).getCoordinates())); LinearRingMemberType innerBoundary = pType.addNewInnerBoundaryIs(); for(int j = 0; j < p.getNumInteriorRing(); j++) { LinearRingType innerRing = innerBoundary.addNewLinearRing(); innerRing.setCoordArray(convertToXMLCoordType(p.getInteriorRingN(j).getCoordinates()));