for (int i = 0; i < mls.getNumGeometries(); ++i) { LineString segment = (LineString) mls.getGeometryN(i); if (segment.contains(startPoint)
MultiLineString mls = (MultiLineString) lineParts; boolean found = false; for (int i = 0; i < mls.getNumGeometries(); ++i) { LineString segment = (LineString) mls.getGeometryN(i); if (found) {
private GeneralPath toShape(MultiLineString mls) { GeneralPath path = new GeneralPath(); for (int i = 0; i < mls.getNumGeometries(); i++) { LineString lineString = (LineString) mls.getGeometryN(i); path.append(toShape(lineString), false); } return path; }
protected Geometry transformMultiLineString(MultiLineString geom, Geometry parent) { List transGeomList = new ArrayList(); for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry transformGeom = transformLineString((LineString) geom.getGeometryN(i), geom); if (transformGeom == null) continue; if (transformGeom.isEmpty()) continue; transGeomList.add(transformGeom); } return factory.buildGeometry(transGeomList); }
/** * Converts a <code>MultiLineString</code> to <MultiLineString Text> * format, then appends it to the writer. * *@param multiLineString the <code>MultiLineString</code> to process *@param writer the output writer to append to */ private void appendMultiLineStringText(MultiLineString multiLineString, int level, boolean indentFirst, Writer writer) throws IOException { if (multiLineString.isEmpty()) { writer.write("EMPTY"); } else { int level2 = level; boolean doIndent = indentFirst; writer.write("("); for (int i = 0; i < multiLineString.getNumGeometries(); i++) { if (i > 0) { writer.write(", "); level2 = level + 1; doIndent = true; } appendLineStringText((LineString) multiLineString.getGeometryN(i), level2, doIndent, writer); } writer.write(")"); } }
private Coordinate[] computeBoundaryCoordinates(MultiLineString mLine) { List bdyPts = new ArrayList(); endpointMap = new TreeMap(); for (int i = 0; i < mLine.getNumGeometries(); i++) { LineString line = (LineString) mLine.getGeometryN(i); if (line.getNumPoints() == 0) continue; addEndpoint(line.getCoordinateN(0)); addEndpoint(line.getCoordinateN(line.getNumPoints() - 1)); } for (Iterator it = endpointMap.entrySet().iterator(); it.hasNext(); ) { Map.Entry entry = (Map.Entry) it.next(); Counter counter = (Counter) entry.getValue(); int valence = counter.count; if (bnRule.isInBoundary(valence)) { bdyPts.add(entry.getKey()); } } return CoordinateArrays.toCoordinateArray(bdyPts); }
for (int i = 0; i < mls.getNumGeometries(); i++) { LineString line = (LineString) mls.getGeometryN(i); Coordinate startNode = line.getCoordinateN(0);
public static Geometry getEndPoints(Geometry g) { List endPtList = new ArrayList(); if (g instanceof LineString) { LineString line = (LineString) g; endPtList.add(line.getCoordinateN(0)); endPtList.add(line.getCoordinateN(line.getNumPoints() - 1)); } else if (g instanceof MultiLineString) { MultiLineString mls = (MultiLineString) g; for (int i = 0; i < mls.getNumGeometries(); i++) { LineString line = (LineString) mls.getGeometryN(i); endPtList.add(line.getCoordinateN(0)); endPtList.add(line.getCoordinateN(line.getNumPoints() - 1)); } } Coordinate[] endPts = CoordinateArrays.toCoordinateArray(endPtList); return (new GeometryFactory()).createMultiPoint(endPts); }
private boolean isWithinToleranceOfBoundary(Coordinate pt) { for (int i = 0; i < linework.getNumGeometries(); i++) { LineString line = (LineString) linework.getGeometryN(i); CoordinateSequence seq = line.getCoordinateSequence(); for (int j = 0; j < seq.size() - 1; j++) { seq.getCoordinate(j, seg.p0); seq.getCoordinate(j + 1, seg.p1); double dist = seg.distance(pt); if (dist <= boundaryDistanceTolerance) return true; } } return false; } }
private void writeMultiLineString(MultiLineString mls, Writer writer, int level) throws IOException { startLine(level, writer); startGeomTag(GMLConstants.GML_MULTI_LINESTRING, mls, writer); for (int t = 0; t < mls.getNumGeometries(); t++) { startLine(level + 1, writer); startGeomTag(GMLConstants.GML_LINESTRING_MEMBER, null, writer); writeLineString((LineString) mls.getGeometryN(t), writer, level + 2); startLine(level + 1, writer); endGeomTag(GMLConstants.GML_LINESTRING_MEMBER, writer); } startLine(level, writer); endGeomTag(GMLConstants.GML_MULTI_LINESTRING, writer); }
for (int i = 0; i < ml.getNumGeometries(); i++) { LineString l = (LineString) ml.getGeometryN(i); updateLocationInfo(locate(p, l));
private TopoGeom.MultiLineString createMultiLineString(MultiLineString geom) { List<TopoGeom.LineString> arcs = new ArrayList<>(geom.getNumGeometries()); for (int n = 0; n < geom.getNumGeometries(); n++) { arcs.add(createLineString((LineString) geom.getGeometryN(n))); } return new TopoGeom.MultiLineString(arcs); }
protected ObjectNode encode(MultiLineString geometry, int parentSrid) { ObjectNode json = jsonFactory.objectNode(); ArrayNode list = json.put(JSONConstants.TYPE, JSONConstants.MULTI_LINE_STRING) .putArray(JSONConstants.COORDINATES); for (int i = 0; i < geometry.getNumGeometries(); ++i) { list.add(encodeCoordinates((LineString) geometry.getGeometryN(i))); } encodeCRS(json, geometry, parentSrid); return json; }
protected ObjectNode encode(MultiLineString geometry, int parentSrid) { ObjectNode json = jsonFactory.objectNode(); ArrayNode list = json.put(JSONConstants.TYPE, JSONConstants.MULTI_LINE_STRING) .putArray(JSONConstants.COORDINATES); for (int i = 0; i < geometry.getNumGeometries(); ++i) { list.add(encodeCoordinates((LineString) geometry.getGeometryN(i))); } encodeCRS(json, geometry, parentSrid); return json; }
private GeneralPath toShape(MultiLineString mls) { GeneralPath path = new GeneralPath(); for (int i = 0; i < mls.getNumGeometries(); i++) { LineString lineString = (LineString) mls.getGeometryN(i); path.append(toShape(lineString), false); } return path; }
protected Geometry transformMultiLineString(MultiLineString geom, Geometry parent) { List transGeomList = new ArrayList(); for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry transformGeom = transformLineString((LineString) geom.getGeometryN(i), geom); if (transformGeom == null) continue; if (transformGeom.isEmpty()) continue; transGeomList.add(transformGeom); } return factory.buildGeometry(transGeomList); }
@Override public MultiPolyLine backwardConvert(final MultiLineString multiLineString) { final List<PolyLine> polyLineList = new ArrayList<>(); for (int i = 0; i < multiLineString.getNumGeometries(); i++) { final LineString lineString = (LineString) multiLineString.getGeometryN(i); polyLineList.add(new PolyLine(COORDINATE_ARRAY_CONVERTER .backwardConvert(lineString.getCoordinateSequence()))); } return new MultiPolyLine(polyLineList); }
private static void addElemInfo(List elemInfoList, MultiLineString lines, final int STARTING_OFFSET, final int GTYPE) { LineString line; int offset = STARTING_OFFSET; int LEN = D(GTYPE) + L(GTYPE); for (int i = 0; i < lines.getNumGeometries(); i++) { line = (LineString) lines.getGeometryN(i); addElemInfo(elemInfoList, line, offset); offset += (line.getNumPoints() * LEN); } }
protected static Geometry transformMultiLineString(CoordinateTransform ct, MultiLineString multiLineString) { LineString[] lineString = new LineString[multiLineString.getNumGeometries()]; for (int i = 0; i < lineString.length; ++i) { lineString[i] = multiLineString.getFactory() .createLineString(transformCoordinates(ct, multiLineString.getGeometryN(i).getCoordinates())); } return multiLineString.getFactory().createMultiLineString(lineString); }
protected static Geometry transformMultiLineString(CoordinateTransform ct, MultiLineString multiLineString) { LineString[] lineString = new LineString[multiLineString.getNumGeometries()]; for (int i = 0; i < lineString.length; ++i) { lineString[i] = multiLineString.getFactory() .createLineString(transformCoordinates(ct, multiLineString.getGeometryN(i).getCoordinates())); } return multiLineString.getFactory().createMultiLineString(lineString); }