package geodb; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.LinearRing; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; import com.vividsolutions.jts.geom.impl.CoordinateArraySequence; /** * Various utilities for test classes. */ public class GeoDBTestUtils { static GeometryFactory factory = new GeometryFactory(); public static Point createPoint(double x, double y) { return factory.createPoint(new Coordinate(x, y)); } public static LineString createLineString(double... xyPairs) { return factory.createLineString(coordinates(xyPairs)); } public static Polygon createPolygon(double... xyPairs) { return factory.createPolygon(new LinearRing(new CoordinateArraySequence(coordinates(xyPairs)), factory), null); } static Coordinate[] coordinates(double... xyPairs) { if (xyPairs.length % 2 != 0) { throw new IllegalArgumentException("Even number of arguments required"); } Coordinate[] coords = new Coordinate[xyPairs.length/2]; for (int i = 0; i < xyPairs.length; i += 2) { coords[i/2] = new Coordinate(xyPairs[i], xyPairs[i+1]); } return coords; } }