Example usage for com.google.common.geometry S2LatLng S2LatLng

List of usage examples for com.google.common.geometry S2LatLng S2LatLng

Introduction

In this page you can find the example usage for com.google.common.geometry S2LatLng S2LatLng.

Prototype

public S2LatLng(S2Point p) 

Source Link

Document

Convert a point (not necessarily normalized) to an S2LatLng.

Usage

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());
}