private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) { double X = data.getDouble(); double Y = data.getDouble(); Point result; if (haveZ) { double Z = data.getDouble(); result = new Point(X, Y, Z); } else { result = new Point(X, Y); } if (haveM) { result.setM(data.getDouble()); } return result; }
private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) { double X = data.getDouble(); double Y = data.getDouble(); Point result; if (haveZ) { double Z = data.getDouble(); result = new Point(X, Y, Z); } else { result = new Point(X, Y); } if (haveM) { result.setM(data.getDouble()); } return result; }
/** * Parse an Array of "slim" Points (without endianness and type, part of * LinearRing and Linestring, but not MultiPoint! * * @param data ValueGetter containing the value to be parsed * @param haveZ flag indicating if Z values exist * @param haveM flag indicating if M values exist * @param path GeneralPath to provide the parsed value to */ private void parseCS(ValueGetter data, boolean haveZ, boolean haveM, GeneralPath path) { int count = data.getInt(); if (count > 0) { path.moveTo((float) data.getDouble(), (float) data.getDouble()); skipZM(data, haveZ, haveM); for (int i = 1; i < count; i++) { path.lineTo((float) data.getDouble(), (float) data.getDouble()); skipZM(data, haveZ, haveM); } } }
/** * Parse the given {@link org.postgis.binary.ValueGetter} into a JTS {@link org.locationtech.jts.geom.Point}. * * @param data {@link org.postgis.binary.ValueGetter} to parse. * @param haveZ True if the {@link org.locationtech.jts.geom.Point} has a Z component. * @param haveM True if the {@link org.locationtech.jts.geom.Point} has a M component. * * @return The parsed {@link org.locationtech.jts.geom.Point}. */ private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) { double X = data.getDouble(); double Y = data.getDouble(); Point result; if (haveZ) { double Z = data.getDouble(); result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y, Z)); } else { result = JtsGeometry.geofac.createPoint(new Coordinate(X, Y)); } if (haveM) { data.getDouble(); } return result; }
private Point parsePoint(ValueGetter data, boolean haveZ, boolean haveM) { double X = data.getDouble(); double Y = data.getDouble(); Point result; if (haveZ) { double Z = data.getDouble(); result = jtsFactory.getGeometryFactory().createPoint(new Coordinate(X, Y, Z)); } else { result = jtsFactory.getGeometryFactory().createPoint(new Coordinate(X, Y)); } if (haveM) { // skip M value data.getDouble(); } return result; }
/** * Parse an Array of "slim" Points (without endianness and type, part of * LinearRing and Linestring, but not MultiPoint! * * @param haveZ * @param haveM */ private CoordinateSequence parseCS(ValueGetter data, boolean haveZ, boolean haveM) { int count = data.getInt(); int dims = haveZ ? 3 : 2; CoordinateSequence cs = new PackedCoordinateSequence.Double(count, dims); for (int i = 0; i < count; i++) { for (int d = 0; d < dims; d++) { cs.setOrdinate(i, d, data.getDouble()); } if (haveM) { // skip M value data.getDouble(); } } return cs; }
/** * Parse the given {@link org.postgis.binary.ValueGetter} into a JTS * {@link org.locationtech.jts.geom.CoordinateSequence}. * * @param data {@link org.postgis.binary.ValueGetter} to parse. * @param haveZ True if the {@link org.locationtech.jts.geom.CoordinateSequence} has a Z component. * @param haveM True if the {@link org.locationtech.jts.geom.CoordinateSequence} has a M component. * * @return The parsed {@link org.locationtech.jts.geom.CoordinateSequence}. */ private CoordinateSequence parseCS(ValueGetter data, boolean haveZ, boolean haveM) { int count = data.getInt(); int dims = haveZ ? 3 : 2; CoordinateSequence cs = new Double(count, dims); for(int i = 0; i < count; ++i) { for(int d = 0; d < dims; ++d) { cs.setOrdinate(i, d, data.getDouble()); } if (haveM) { data.getDouble(); } } return cs; }