public Coordinate[] getCoordinates() { return linearize().getCoordinates(); }
public Coordinate[] getCoordinates() { return linearize().getCoordinates(); }
if (location == INNER_BOUNDARY) { LinearRing ring = (LinearRing) currentHandler.create(geometryFactory); Coordinate[] points = ring.getCoordinates(); Coordinate[] points = outerBoundary.getCoordinates();
Coordinate[] coordList = tryRing.getCoordinates();
@Test public void linearRingFromOrdinates() throws Exception { double[] closedOrdinates = new double[] {1, 1, 1, 2, 2, 2, 2, 1, 1, 1}; double[] openOrdinates = Arrays.copyOf(closedOrdinates, closedOrdinates.length - 2); LinearRing ring = builder.linearRing(openOrdinates); // ring should be closed even though ordinate sequence is not assertTrue(ring.isClosed()); assertCoordinates(ring.getCoordinates(), closedOrdinates, 2); }
@Test public void linearRingZFromOrdinates() throws Exception { double[] closedOrdinates = new double[] { 1, 1, -1, 1, 2, -2, 2, 2, -2, 2, 1, -1, 1, 1, -1 }; double[] openOrdinates = Arrays.copyOf(closedOrdinates, closedOrdinates.length - 3); LinearRing ring = builder.linearRingZ(openOrdinates); // ring should be closed even though ordinate sequence is not assertTrue(ring.isClosed()); assertCoordinates(ring.getCoordinates(), closedOrdinates, 3); }
if (Orientation.isCCW(ring.getCoordinates())) { // it is an Interior Hole rings.add(ring); i++;
/** * Computes whether this ring is a hole. * Due to the way the edges in the polygonization graph are linked, * a ring is a hole if it is oriented counter-clockwise. */ public void computeHole() { LinearRing ring = getRing(); isHole = Orientation.isCCW(ring.getCoordinates()); }
private LinearRing clean(LinearRing g) { Coordinate[] coords = removeDuplicatePoints(g.getCoordinates()); return fact.createLinearRing(coords); }
private void add(Polygon poly) { addShell(poly.getExteriorRing().getCoordinates()); for (int i = 0; i < poly.getNumInteriorRing(); i++) { addHole(poly.getInteriorRingN(i).getCoordinates()); } }
private void checkInvalidCoordinates(Polygon poly) { checkInvalidCoordinates(poly.getExteriorRing().getCoordinates()); if (validErr != null) return; for (int i = 0; i < poly.getNumInteriorRing(); i++) { checkInvalidCoordinates(poly.getInteriorRingN(i).getCoordinates()); if (validErr != null) return; } }
private boolean hasRepeatedPoint(Polygon p) { if (hasRepeatedPoint(p.getExteriorRing().getCoordinates())) return true; for (int i = 0; i < p.getNumInteriorRing(); i++) { if (hasRepeatedPoint(p.getInteriorRingN(i).getCoordinates())) return true; } return false; } private boolean hasRepeatedPoint(GeometryCollection gc)
private Shape toShape(Polygon p) { PolygonShape poly = new PolygonShape(); appendRing(poly, p.getExteriorRing().getCoordinates()); for (int j = 0; j < p.getNumInteriorRing(); j++) { appendRing(poly, p.getInteriorRingN(j).getCoordinates()); } return poly; }
private int locateInPolygonRing(Coordinate p, LinearRing ring) { // bounding-box check if (! ring.getEnvelopeInternal().intersects(p)) return Location.EXTERIOR; return PointLocation.locateInRing(p, ring.getCoordinates()); }
private Polygon clean(Polygon poly) { Coordinate[] shellCoords = removeDuplicatePoints(poly.getExteriorRing().getCoordinates()); LinearRing shell = fact.createLinearRing(shellCoords); List holes = new ArrayList(); for (int i = 0; i < poly.getNumInteriorRing(); i++) { Coordinate[] holeCoords = removeDuplicatePoints(poly.getInteriorRingN(i).getCoordinates()); holes.add(fact.createLinearRing(holeCoords)); } return fact.createPolygon(shell, GeometryFactory.toLinearRingArray(holes)); }
static Coordinate[] getRing(Geometry g) { Coordinate[] pts = null; if (g instanceof Polygon) { pts = ((Polygon) g).getExteriorRing().getCoordinates(); } else if (g instanceof LineString && ((LineString) g).isClosed()) { pts = g.getCoordinates(); } return pts; }
private void writeLinearRing(LinearRing lr, Writer writer, int level) throws IOException { startLine(level, writer); startGeomTag(GMLConstants.GML_LINEARRING, lr, writer); write(lr.getCoordinates(), writer, level + 1); startLine(level, writer); endGeomTag(GMLConstants.GML_LINEARRING, writer); }
private void writeLinearRing(LinearRing lr, String attributes, boolean writeModifiers, int level, StringBuffer buf) { // <LinearRing><coordinates>...</coordinates></LinearRing> startLine(geometryTag("LinearRing", attributes) + "\n", level, buf); if (writeModifiers) writeModifiers(level, buf); write(lr.getCoordinates(), level + 1, buf); startLine("</LinearRing>\n", level, buf); }
void checkAreaOfRing(String wkt, double expectedArea) { LinearRing ring = (LinearRing) read(wkt); Coordinate[] ringPts = ring.getCoordinates(); double actual1 = Area.ofRing(ringPts); assertEquals(actual1, expectedArea); CoordinateSequence ringSeq = ring.getCoordinateSequence(); double actual2 = Area.ofRing(ringSeq); assertEquals(actual2, expectedArea); }
void checkAreaOfRingSigned(String wkt, double expectedArea) { LinearRing ring = (LinearRing) read(wkt); Coordinate[] ringPts = ring.getCoordinates(); double actual1 = Area.ofRingSigned(ringPts); assertEquals(actual1, expectedArea); CoordinateSequence ringSeq = ring.getCoordinateSequence(); double actual2 = Area.ofRingSigned(ringSeq); assertEquals(actual2, expectedArea); } }