List of usage examples for com.google.common.geometry S2LatLng S2LatLng
public S2LatLng(S2Point p)
From source file:org.esa.beam.occci.MerisCoverageMain.java
public static void main(String[] args) throws ParseException { S2Polygon polygon = S2EoProduct.createPolygon(poly); // System.out.println("polygon = " + polygon); S2RegionCoverer coverer = new S2RegionCoverer(); coverer.setMinLevel(0);/*ww w . j a v a2 s . c o m*/ coverer.setMaxLevel(5); coverer.setMaxCells(500); S2CellUnion covering = coverer.getCovering(polygon); final GeometryFactory factory = new GeometryFactory(); List<S2CellId> s2CellIds = covering.cellIds(); System.out.println("s2CellIds.size() = " + s2CellIds.size()); List<Polygon> polys = new ArrayList<>(); for (S2CellId s2CellId : s2CellIds) { // System.out.println("s2CellId = " + s2CellId); ArrayList<double[]> coordList = new ArrayList<double[]>(); //System.out.println("s2CellId = " + s2CellId); S2Cell s2Cell = new S2Cell(s2CellId); //System.out.println("s2Cell = " + s2Cell); S2LatLng s2LatLng = new S2LatLng(s2Cell.getVertex(0)); coordList.add(new double[] { s2LatLng.lat().degrees(), s2LatLng.lng().degrees() }); s2LatLng = new S2LatLng(s2Cell.getVertex(1)); coordList.add(new double[] { s2LatLng.lat().degrees(), s2LatLng.lng().degrees() }); s2LatLng = new S2LatLng(s2Cell.getVertex(2)); coordList.add(new double[] { s2LatLng.lat().degrees(), s2LatLng.lng().degrees() }); s2LatLng = new S2LatLng(s2Cell.getVertex(3)); coordList.add(new double[] { s2LatLng.lat().degrees(), s2LatLng.lng().degrees() }); s2LatLng = new S2LatLng(s2Cell.getVertex(0)); coordList.add(new double[] { s2LatLng.lat().degrees(), s2LatLng.lng().degrees() }); final Coordinate[] coordinates = new Coordinate[coordList.size()]; for (int i1 = 0; i1 < coordinates.length; i1++) { final double[] coord = coordList.get(i1); coordinates[i1] = new Coordinate(coord[1], coord[0]); } Polygon p = factory.createPolygon(factory.createLinearRing(coordinates)); //System.out.println(p); polys.add(p); } MultiPolygon multiPolygon = factory.createMultiPolygon(polys.toArray(new Polygon[polys.size()])); Geometry simplify = TopologyPreservingSimplifier.simplify(multiPolygon, 0.01); System.out.println(multiPolygon); System.out.println(simplify); Geometry origin = new WKTReader().read(poly); Geometry both = multiPolygon.union(origin); System.out.println(both); }
From source file:com.bc.geometry.s2.S2WKTWriter.java
@SuppressWarnings("StringBufferReplaceableByString") private static String writePointWkt(S2Point geometry) { final S2LatLng s2LatLng = new S2LatLng(geometry); return writePointWkt(s2LatLng); }
From source file:com.bc.fiduceo.geometry.s2.BcS2Point.java
static BcS2Point createFrom(S2Point s2Point) { return new BcS2Point(new S2LatLng(s2Point)); }
From source file:com.bc.geometry.s2.S2WKTWriter.java
private static void appendWktPoint(S2Point vertex, StringBuilder builder) { final S2LatLng latLng = new S2LatLng(vertex); builder.append(latLng.lngDegrees()); builder.append(" "); builder.append(latLng.latDegrees()); }