public void visit(MultiLineString collection, int parent) { Shape shape = new Shape(); shape.type = MULTI_LINESTRING; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); parent = shapes.size() - 1; for (int i = 0; i < collection.getNumGeometries(); i++) { visit(collection.getGeometryN(i), parent); } }
public void visit(MultiLineString collection, int parent) { Shape shape = new Shape(); shape.type = MULTI_LINESTRING; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); parent = shapes.size() - 1; for (int i = 0; i < collection.getNumGeometries(); i++) { visit(collection.getGeometryN(i), parent); } }
@SuppressWarnings("unchecked") private <T extends C2D & Measured> MultiLineString<T> measure(MultiLineString<T> geometry) { LineString<T>[] measuredParts = (LineString<T>[]) new LineString[geometry.getNumGeometries()]; for (int part = 0; part < geometry.getNumGeometries(); part++) { LineString<T> lineString = geometry.getGeometryN(part); measuredParts[part] = measure(lineString); } return new MultiLineString<T>(measuredParts); }
private static <P extends Position> MultiLineString to(org.geolatte.geom.MultiLineString<P> multiLineString, GeometryFactory gFact) { LineString[] lineStrings = new LineString[multiLineString.getNumGeometries()]; for (int i = 0; i < multiLineString.getNumGeometries(); i++) { lineStrings[i] = to(multiLineString.getGeometryN(i), gFact); } return gFact.createMultiLineString(lineStrings); }
private static org.postgis.MultiLineString convert(MultiLineString multiLineString) { org.postgis.LineString[] pgLineStrings = new org.postgis.LineString[multiLineString.getNumGeometries()]; for (int i = 0; i < pgLineStrings.length; i++) { pgLineStrings[i] = convert(multiLineString.getGeometryN(i)); } org.postgis.MultiLineString pgMultiLineString = new org.postgis.MultiLineString(pgLineStrings); pgMultiLineString.haveMeasure = multiLineString.isMeasured(); pgMultiLineString.setSrid(multiLineString.getSRID()); return pgMultiLineString; }
private static org.postgis.MultiLineString convert(MultiLineString multiLineString) { org.postgis.LineString[] pgLineStrings = new org.postgis.LineString[multiLineString.getNumGeometries()]; for (int i = 0; i < pgLineStrings.length; i++) { pgLineStrings[i] = convert(multiLineString.getGeometryN(i)); } org.postgis.MultiLineString pgMultiLineString = new org.postgis.MultiLineString(pgLineStrings); pgMultiLineString.haveMeasure = multiLineString.isMeasured(); pgMultiLineString.setSrid(multiLineString.getSRID()); return pgMultiLineString; }
private static JGeometry convert(MultiLineString geometry) { int srid = geometry.getSRID(); int dim = geometry.getCoordinateDimension(); double[] points = getPoints(geometry.getPoints()); int[] elemInfo = new int[geometry.getNumGeometries() * 3]; int offset = 0; int pointOffset = 1; for (int i = 0; i < geometry.getNumGeometries(); i++) { elemInfo[offset++] = pointOffset; elemInfo[offset++] = 2; elemInfo[offset++] = 1; pointOffset += geometry.getGeometryN(i).getNumPoints() * dim; } int gtype = dim * 1000 + (geometry.isMeasured() ? dim : 0) * 100 + GTYPE_MULTICURVE; return new JGeometry(gtype, srid, elemInfo, points); }
private static JGeometry convert(MultiLineString geometry) { int srid = geometry.getSRID(); int dim = geometry.getCoordinateDimension(); double[] points = getPoints(geometry.getPoints()); int[] elemInfo = new int[geometry.getNumGeometries() * 3]; int offset = 0; int pointOffset = 1; for (int i = 0; i < geometry.getNumGeometries(); i++) { elemInfo[offset++] = pointOffset; elemInfo[offset++] = 2; elemInfo[offset++] = 1; pointOffset += geometry.getGeometryN(i).getNumPoints() * dim; } int gtype = dim * 1000 + (geometry.isMeasured() ? dim : 0) * 100 + GTYPE_MULTICURVE; return new JGeometry(gtype, srid, elemInfo, points); }
@Override @SuppressWarnings("unchecked") public <P extends Position, G extends Geometry<P>> SDOGeometry encode(G geom) { MultiLineString<P> multiLineString = (MultiLineString<P>)geom; final int dim = multiLineString.getCoordinateDimension(); final int lrsDim = getLRSDim(multiLineString); final boolean isLrs = (lrsDim != 0); SDOGType sdoGtype = new SDOGType(dim, lrsDim, TypeGeometry.MULTILINE); final ElemInfo info = new ElemInfo(multiLineString.getNumGeometries()); int oordinatesOffset = 1; Double[] ordinates = new Double[]{}; for (int i = 0; i < multiLineString.getNumGeometries(); i++) { info.setElement(i, oordinatesOffset, ElementType.LINE_STRAITH_SEGMENTS, 0); ordinates = addOrdinates(ordinates, convertPositionSequence(multiLineString.getGeometryN(i).getPositions())); oordinatesOffset = ordinates.length + 1; } return new SDOGeometry(sdoGtype, geom.getSRID(), null, info, new Ordinates(ordinates)); }