@Nullable public static <T extends Geometry> T extractGeometry(ResultSet rs, String columnName) throws SQLException { JtsGeometry geom = (JtsGeometry) rs.getObject(columnName); if (geom == null) { //info("no geometry found in column " + columnName); return null; } return (T) geom.getGeometry(); } }
public static GeometryPathIterator getPathIterator(Geometry geometry, AffineTransform _at) { if (geometry instanceof Point) { return new PointPathIterator((Point) geometry, _at); } else if (geometry instanceof LineString) { return new LineStringPathIterator((LineString) geometry, _at); } else if (geometry instanceof Polygon) { return new PolygonPathIterator((Polygon) geometry, _at); } else { return new GeometryCollectionPathIterator((GeometryCollection) geometry, _at); } }
public String getValue() { return bw.writeHexed(getGeometry()); }
public Object clone() { JtsGeometry obj = new JtsGeometry(geom); obj.setType(type); return obj; }
public void next() { current.next(); if (current.isDone()) { index++; if (index < coll.getNumGeometries()) { current = getPathIterator(coll.getGeometryN(index), at); } } }
private int estimateMultiPolygon(MultiPolygon geom) { // 4-byte count + subgeometries return 4 + estimateGeometryArray(geom); }
/** * Parse a geometry starting at offset. * @param data ValueGetter for the data to be parsed * @return The resulting Geometry */ protected Geometry parseGeometry(ValueGetter data) { return parseGeometry(data, 0, false); }
public PathIterator getPathIterator(AffineTransform at, double flatness) { // we don't have much work here, as we only have linear segments, no // "flattening" necessary. return getPathIterator(at); }
public int currentSegment(double[] coords) { return current.currentSegment(coords); } }
private void writeMultiLineString(MultiLineString geom, ValueSetter dest) { writeGeometryArray(geom, dest); }
/** Constructor called by JDBC drivers */ public JtsGeometry() { setType("geometry"); }
public JtsGeometry(String value) throws SQLException { this(); setValue(value); }
private int estimatePoint(Point geom) { return 8 * getCoordDim(geom); }
public void setValue(String value) throws SQLException { geom = geomFromString(value); }
private int estimateMultiLineString(MultiLineString geom) { // 4-byte count + subgeometries return 4 + estimateGeometryArray(geom); }
/** Parse an Array of "full" Geometries */ private void parseGeometryArray(ValueGetter data, Geometry[] container, int srid) { for (int i = 0; i < container.length; i++) { container[i] = parseGeometry(data, srid, true); } }
public PathIterator getPathIterator(AffineTransform at) { return getPathIterator(geom, at); }
public int currentSegment(float[] coords) { return current.currentSegment(coords); }
private void writeMultiPolygon(MultiPolygon geom, ValueSetter dest) { writeGeometryArray(geom, dest); }
private int estimateCollection(GeometryCollection geom) { // 4-byte count + subgeometries return 4 + estimateGeometryArray(geom); }