@Override public Coordinate[] getCoordinates() { com.vividsolutions.jts.geom.Coordinate[] coordinates = super.getCoordinates(); Coordinate[] cs = new Coordinate[coordinates.length]; int count = 0; for (com.vividsolutions.jts.geom.Coordinate c : coordinates) { cs[count++] = new Coordinate(c); } return cs; } }
public Coordinate[] getCoordinates() { return polygon.getCoordinates(); }
/** * Find pixel coordinates. * * @param resolutionX the resolution X * @param resolutionY the resolution Y * @param datasetBoundary the dataset boundary * @param spatialObject the spatial object * @param reverseSpatialCoordinate the reverse spatial coordinate * @return the list */ public static List<Tuple2<Pixel, Double>> FindPixelCoordinates(int resolutionX, int resolutionY, Envelope datasetBoundary, Polygon spatialObject, boolean reverseSpatialCoordinate) { List<Tuple2<Pixel, Double>> result = new ArrayList<Tuple2<Pixel, Double>>(); for (int i = 0; i < spatialObject.getCoordinates().length - 1; i++) { Tuple2<Integer, Integer> pixelCoordinate1 = null; Tuple2<Integer, Integer> pixelCoordinate2 = null; try { pixelCoordinate1 = FindOnePixelCoordinate(resolutionX, resolutionY, datasetBoundary, spatialObject.getCoordinates()[i], reverseSpatialCoordinate); pixelCoordinate2 = FindOnePixelCoordinate(resolutionX, resolutionY, datasetBoundary, spatialObject.getCoordinates()[i + 1], reverseSpatialCoordinate); } catch (Exception e) { // This pixel is out of boundary. Should be ignored. continue; } result.addAll(FindPixelCoordinates(resolutionX, resolutionY, pixelCoordinate1, pixelCoordinate2, reverseSpatialCoordinate)); } return result; }
@Override public Iterator<Tuple2<Object, Double>> call(Tuple2<Polygon, Long> spatialObject) throws Exception { GeometryFactory geometryFactory = new GeometryFactory(); List<Tuple2<Object, Double>> result = new ArrayList<Tuple2<Object, Double>>(); if (!datasetBoundary.covers(((Polygon) spatialObject._1()).getEnvelopeInternal())) { return result.iterator(); } Coordinate[] spatialCoordinates = RasterizationUtils.FindPixelCoordinates(resolutionX, resolutionY, datasetBoundary, ((Polygon) spatialObject._1()).getCoordinates(), reverseSpatialCoordinate, false, true); result.add(new Tuple2<Object, Double>(geometryFactory.createPolygon(spatialCoordinates), new Double(spatialObject._2()))); return result.iterator(); } });
public static org.geojson.Polygon toGeoJson(Polygon jtsPolygon) { if (jtsPolygon == null) return null; org.geojson.Polygon geoJsonPoly = new org.geojson.Polygon(Arrays.asList(jtsPolygon.getCoordinates()).stream() .map(p -> new LngLatAlt(p.x, p.y)).collect(Collectors.toList())); geoJsonPoly.setCrs(createCrsForEpsgCode(jtsPolygon.getSRID())); return geoJsonPoly; }
protected static Polygon transformPolygon(CoordinateTransform ct, Polygon polygon) { return polygon.getFactory().createPolygon(transformCoordinates(ct, polygon.getCoordinates())); }
public static Polygon addPoint2Polygon(Polygon aPoly, Point point2Add) { Coordinate[] oldCoordinates = aPoly.getCoordinates(); Coordinate[] newCoordinates = new Coordinate[oldCoordinates.length + 1]; System.arraycopy(oldCoordinates, 0, newCoordinates, 0, oldCoordinates.length - 1); newCoordinates[newCoordinates.length - 2] = point2Add.getCoordinate(); newCoordinates[newCoordinates.length - 1] = oldCoordinates[oldCoordinates.length - 1]; CoordinateSequence cSeq = csFactory.create(newCoordinates); return gFactory.createPolygon(new LinearRing(cSeq, gFactory), null); }
protected static Polygon transformPolygon(CoordinateTransform ct, Polygon polygon) { return polygon.getFactory().createPolygon(transformCoordinates(ct, polygon.getCoordinates())); }
protected static Polygon transformPolygon(CoordinateTransform ct, Polygon polygon) { return polygon.getFactory().createPolygon(transformCoordinates(ct, polygon.getCoordinates())); }
public void writePolygon(Polygon polygon, ObjectOutputStream out) throws IOException { for (Coordinate coordinate : polygon.getCoordinates()) { out.writeBoolean(true); out.writeDouble(coordinate.x); out.writeDouble(coordinate.y); } out.writeBoolean(false); for (int i = 0; i < polygon.getNumInteriorRing(); i++) { out.writeBoolean(true); LineString inner = polygon.getInteriorRingN(i); for (Coordinate coordinate : inner.getCoordinates()) { out.writeBoolean(true); out.writeDouble(coordinate.x); out.writeDouble(coordinate.y); } out.writeBoolean(false); } out.writeBoolean(false); }
Coordinate[] spatialCoordinates = RasterizationUtils.FindPixelCoordinates(resolutionX, resolutionY, datasetBoundary, ((Polygon) spatialObject).getCoordinates(), reverseSpatialCoordinate, false, true); result.add(new Tuple2<Object, Double>(geometryFactory.createPolygon(spatialCoordinates), new Double(1.0))); return result.iterator();
Coordinate center = new Coordinate(entity.getLongitude(), entity.getLatitude()); GeometricShapeFactory gsf = new GeometricShapeFactory(); gsf.setCentre(center); gsf.setNumPoints(20); gsf.setSize(10.2); Polygon poly = gsf.createCircle(); Coordinate[] coordArray = poly.getCoordinates();
public static Polygon createPolygonWithHoles(Polygon aPolygon, Geometry[] aHoles) { CoordinateSequence polygonSeq = csFactory.create(getPolygonShell(aPolygon).getCoordinates()); LinearRing shell = new LinearRing(polygonSeq, gFactory); List<LinearRing> holes = new ArrayList<>(); if (aHoles != null) { for (Geometry aHole : aHoles) { Coordinate[] coord = aHole.getCoordinates(); if (coord.length > 1) { CoordinateSequence holeSeq = csFactory.create(coord); holes.add(new LinearRing(holeSeq, gFactory)); } } } LinearRing[] arHoles = new LinearRing[0]; return gFactory.createPolygon(shell, holes.toArray(arHoles)); }
ArrayList<Coordinate> coordinatesList = new ArrayList<Coordinate>(); LinearRing linear; for (int i = 0; i < spatialObject.getCoordinates().length; i++) { Tuple2<Integer, Integer> pixelCoordinate = null; pixelCoordinate = FindOnePixelCoordinate(resolutionX, resolutionY, datasetBoundary, spatialObject.getCoordinates()[i], reverseSpatialCoordinate);
Polygon polygon = (Polygon) measurePointPolygons.get(measurePointId); Coordinate[] coordinates = polygon.getCoordinates(); Coordinate[] revisedCoordinates = new Coordinate[coordinates.length];
public Polygon moveJTSTo(double x, double y) throws CannotChangeGeometryException { Polygon p = (Polygon) geometry.clone(); Coordinate[] coords; if (holeIndex == -1) { coords = p.getCoordinates(); } else { coords = p.getInteriorRingN(holeIndex).getCoordinates(); } coords[vertexIndex].x = x; coords[vertexIndex].y = y; if (vertexIndex == 0) { coords[coords.length - 1].x = coords[0].x; coords[coords.length - 1].y = coords[0].y; } p.geometryChanged(); return p; }
Coordinate[] coordinates = polygon.getCoordinates(); Coordinate[] transformedCoordinates = new Coordinate[coordinates.length]; int i = 0;
Coordinate[] cords = p.getCoordinates(); triangles.add(new Triangle(toVector3f(cords[0]), toVector3f(cords[1]), toVector3f(cords[2])));
Coordinate[] cords = p.getCoordinates(); triangles.add(new Triangle(toVector3f(cords[0]), toVector3f(cords[1]), toVector3f(cords[2])));
public double calculate(Polygon polygon, Coordinate coordinate, double precisionKilometers, GeometryFactory geometryFactory) { Point point = new Point(new CoordinateArraySequence(new Coordinate[]{coordinate}), geometryFactory); if (polygon.contains(point)) { // todo distance to border? well if that should be the case then factor this method out of this class! return 0; } double smallestDistance = Double.MAX_VALUE; Coordinate[] coordinates = polygon.getCoordinates(); for (int i = 1; i < coordinates.length; i++) { for (Coordinate interpolated : new LineInterpolation().interpolate(precisionKilometers, coordinates[i - 1], coordinates[i])) { double distance = calculate(interpolated, coordinate); if (distance < smallestDistance) { smallestDistance = distance; } } } return smallestDistance; }