public Geobuf.Data.Geometry geomToGeobuf(Geometry geometry) { if (geometry instanceof Point) return pointToGeobuf((Point) geometry); else if (geometry instanceof Polygon) return polyToGeobuf((Polygon) geometry); else if (geometry instanceof MultiPolygon) return multiPolyToGeobuf((MultiPolygon) geometry); else throw new UnsupportedOperationException( "Unsupported geometry type " + geometry.getGeometryType()); }
public static KPolygon calcConvexHullPolygon(ArrayList<KPoint> array) { Coordinate[] coordinateArray = new Coordinate[array.size()]; for (int i = 0; i < array.size(); i++) { KPoint p = array.get(i); coordinateArray[i] = new Coordinate(p.x, p.y); } com.vividsolutions.jts.algorithm.ConvexHull convexHull = new com.vividsolutions.jts.algorithm.ConvexHull(coordinateArray, new GeometryFactory()); Geometry geometry = convexHull.getConvexHull(); if (geometry.getGeometryType() == "Polygon") { Polygon jtsPolygon = (Polygon) geometry; PolygonConverter polygonConverter = new PolygonConverter(); KPolygon convexHullKPolygon = polygonConverter.makeKPolygonFromExterior(jtsPolygon); return convexHullKPolygon; } else { System.out.println(": geometry.getGeometryType() == " + geometry.getGeometryType()); throw new RuntimeException("Unknown JTS geometry type: " + geometry.getGeometryType()); } }