int maxPoints = 0; Polygon maxPolygon = null; for (int j = 0; j < multiPolygon.getNumGeometries(); j++) { Polygon polygon = (Polygon) multiPolygon.getGeometryN(j); if (polygon.getNumPoints() > maxPoints) {
if (rasterFilter != null && rasterFilter.getNumGeometries() == 0) { readFilter = Filter.EXCLUDE; } else {
@Override public Object getProperty(Object object, QName name) throws Exception { if ("patches".equals(name.getLocalPart())) { MultiPolygon multiSurface = (MultiPolygon) object; Polygon[] members = new Polygon[multiSurface.getNumGeometries()]; for (int i = 0; i < members.length; i++) { members[i] = (Polygon) multiSurface.getGeometryN(i); } return members; } return null; } }
private static List<org.locationtech.jts.geom.Polygon> unrollGeometries(MultiPolygon mp) { List<org.locationtech.jts.geom.Polygon> ret = new ArrayList<Polygon>(); for (int i = 0; i < mp.getNumGeometries(); i++) { org.locationtech.jts.geom.Polygon g = (org.locationtech.jts.geom.Polygon) mp.getGeometryN(i); ret.add(g); } return ret; } }
public Object getProperty(Object object, QName name) throws Exception { if (GML.polygonMember.equals(name)) { MultiPolygon multiPolygon = (MultiPolygon) object; Polygon[] members = new Polygon[multiPolygon.getNumGeometries()]; for (int i = 0; i < members.length; i++) { members[i] = (Polygon) multiPolygon.getGeometryN(i); } GML3EncodingUtils.setChildIDs(multiPolygon); return members; } return null; }
public Object getProperty(Object object, QName name) throws Exception { if ("surfaceMember".equals(name.getLocalPart())) { MultiPolygon multiSurface = (MultiPolygon) object; Polygon[] members = new Polygon[multiSurface.getNumGeometries()]; for (int i = 0; i < members.length; i++) { members[i] = (Polygon) multiSurface.getGeometryN(i); } GML3EncodingUtils.setChildIDs(multiSurface); return members; } return null; } }
/** * TODO: Encode more then 1 * * @param line * @param srid */ private static String toSDOGeom(MultiPolygon polygon, int srid) { if (polygon.getNumGeometries() == 1) { return toSDOGeom(polygon.getGeometryN(0), srid); } throw new UnsupportedOperationException("Cannot encode MultiPolygon (yet)"); } /**
/** * Returns the perimeter of a MultiPolygon. * * @param multiPolygon the MultiPolygon for which the perimeter is calculated. * @return Total perimeter of all polygons in the multiPolygon. */ protected double getperimeter(MultiPolygon multiPolygon) { double perimeter = 0.0d; int numberOfGeometries = multiPolygon.getNumGeometries(); for (int i = 0; i < numberOfGeometries; i++) { perimeter += getPerimeter(multiPolygon.getGeometryN(i)); } return perimeter; }
/** * Like makeGoodShapePolygon, but applied towards a multi polygon. * * @param mp The MultiPolygon to "niceify". * @return The "nicified" MultiPolygon. */ public static final MultiPolygon makeGoodShapeMultiPolygon(MultiPolygon mp) { MultiPolygon result; Polygon[] ps = new Polygon[mp.getNumGeometries()]; // check each sub-polygon for (int t = 0; t < mp.getNumGeometries(); t++) { ps[t] = makeGoodShapePolygon((Polygon) mp.getGeometryN(t)); } result = mp.getFactory().createMultiPolygon(ps); return result; }
/** * Returns the area of a MultiPolygon. * * @param multiPolygon the MultiPolygon for which the area is calculated. * @return Total area of all polygons in multiPolygon. */ protected double getArea(MultiPolygon multiPolygon) { double area = 0.0d; int numberOfGeometries = multiPolygon.getNumGeometries(); for (int i = 0; i < numberOfGeometries; i++) { area += getArea(multiPolygon.getGeometryN(i)); } return area; }
private static void addCoordinates(List list, MultiPolygon polys) { for (int i = 0; i < polys.getNumGeometries(); i++) { Geometry geometryN = polys.getGeometryN(i); if (geometryN != null && !geometryN.isEmpty()) addCoordinates(list, (Polygon) geometryN); } }
public DBObject toObject(MultiPolygon mp) { if (opportunisticMultiGeometryCoversion && mp.getNumGeometries() == 1) { return toObject((Polygon) mp.getGeometryN(0)); } List<Object> l = new BasicDBList(); for (int i = 0; i < mp.getNumGeometries(); i++) { l.add(toList(((Polygon) mp.getGeometryN(i)))); } return BasicDBObjectBuilder.start().add("type", "MultiPolygon").add("coordinates", l).get(); }
@Override public void encode(MultiPolygon geometry, AttributesImpl atts, GMLWriter handler) throws Exception { handler.startElement(multiPolygon, atts); for (int i = 0; i < geometry.getNumGeometries(); i++) { handler.startElement(polygonMember, null); pe.encode((Polygon) geometry.getGeometryN(i), null, handler); handler.endElement(polygonMember); } handler.endElement(multiPolygon); } }
public void testParseWithSurfaceMembers() throws Exception { GML3MockData.multiSurface(document, document, false); MultiPolygon mpoly = (MultiPolygon) parse(); assertEquals(2, mpoly.getNumGeometries()); } }
public void testParseWithSurfaceMember() throws Exception { GML3MockData.multiSurface(document, document); MultiPolygon mpoly = (MultiPolygon) parse(); assertEquals(2, mpoly.getNumGeometries()); }
@Override public void encode(MultiPolygon geometry, AttributesImpl atts, GMLWriter handler, String gmlId) throws Exception { atts = cloneWithGmlId(atts, gmlId); handler.startElement(multiSurface, atts); for (int i = 0; i < geometry.getNumGeometries(); i++) { handler.startElement(surfaceMember, null); pe.encode((Polygon) geometry.getGeometryN(i), null, handler, gmlId + "." + (i + 1)); handler.endElement(surfaceMember); } handler.endElement(multiSurface); } }
public void test() throws Exception { GML3MockData.multiPolygon(document, document); MultiPolygon multiPolygon = (MultiPolygon) parse(); assertNotNull(multiPolygon); assertEquals(2, multiPolygon.getNumGeometries()); }
public void testMultiSurface() throws Exception { GMLConfiguration gml = new GMLConfiguration(true); Parser p = new Parser(gml); Object multiSurface = p.parse(getClass().getResourceAsStream("multisurface.xml")); assertTrue(multiSurface instanceof MultiPolygon); MultiPolygon mp = (MultiPolygon) multiSurface; assertEquals(1, mp.getNumGeometries()); Polygon poly = (Polygon) mp.getGeometryN(0); assertTrue(poly.getExteriorRing() instanceof CompoundRing); } }
public void testParse() throws Exception { GML3MockData.surface(document, document); MultiPolygon surface = (MultiPolygon) parse(); assertNotNull(surface); assertEquals(1, surface.getNumGeometries()); Polygon p = (Polygon) surface.getGeometryN(0); assertEquals(1, p.getNumInteriorRing()); } }
public void test3D() throws Exception { GML3MockData.multiPolygon3D(document, document); MultiPolygon multiPolygon = (MultiPolygon) parse(); assertNotNull(multiPolygon); assertEquals(2, multiPolygon.getNumGeometries()); Polygon polygon = (Polygon) multiPolygon.getGeometryN(0); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }