public Geometry buildGeometry(Collection geomList) { return delegate.buildGeometry(geomList); }
/** * Attempts to retype a geometry collection under the following circumstances, returning * null if the collection can not be retyped. * <ul> * <li>Single object collections are collapsed down to the object.</li> * <li>Homogenous collections are recast as the appropriate subclass.</li> * </ul> * * @see GeometryFactory#buildGeometry(Collection) */ private Geometry narrowCollectionIfPossible(GeometryCollection gc) { List<Geometry> geoms = new ArrayList<>(); for (int i = 0; i < gc.getNumGeometries(); i++) { geoms.add(gc.getGeometryN(i)); } Geometry result = gc.getFactory().buildGeometry(geoms); return !result.getClass().equals(GeometryCollection.class) ? result : null; }
@Override public Shape build() { Class<?> last = null; List<Geometry> geoms = new ArrayList<>(shapes.size()); for(Shape s : shapes) { if (last != null && last != s.getClass()) { return super.build(); } if (s instanceof JtsGeometry) { geoms.add(((JtsGeometry)s).getGeom()); } else if (s instanceof JtsPoint) { geoms.add(((JtsPoint)s).getGeom()); } else { return super.build(); } last = s.getClass(); } return makeShapeFromGeometry(geometryFactory.buildGeometry(geoms)); } }
private Geometry decodeGeometryCollection(int shapeIndex) throws SqlServerBinaryParseException { Collection<Geometry> geometries = new ArrayList<Geometry>(); for (int i = shapeIndex + 1; i < binary.getShapes().length; i++) { Shape subShape = binary.getShapes()[i]; if (subShape.getParentOffset() == shapeIndex) { geometries.add(decode(i, subShape.getType())); } } return gf.buildGeometry(geometries); }
private static final Geometry cloneGeometry(GeometryCollection geom, int dimension) { if (geom.getNumGeometries() == 0) { Geometry[] gs = new Geometry[0]; return geomFac.createGeometryCollection(gs); } ArrayList gs = new ArrayList(geom.getNumGeometries()); int n = geom.getNumGeometries(); for (int t = 0; t < n; t++) { gs.add(cloneGeometry(geom.getGeometryN(t), dimension)); } return geomFac.buildGeometry(gs); }
didUnwrap |= (geometryUnwrapped != geometryN); return !didUnwrap ? geom : geom.getFactory().buildGeometry(list);
pair.add(geometryFactory.toGeometry(new Envelope( ctx.getWorldBounds().getMinX(), r.getMaxX(), r.getMinY(), r.getMaxY()))); return geometryFactory.buildGeometry(pair);//a MultiPolygon or MultiLineString } else { return geometryFactory.toGeometry(new Envelope(r.getMinX(), r.getMaxX(), r.getMinY(), r.getMaxY()));
private Geometry bufferUnion(List geoms) { GeometryFactory factory = ((Geometry) geoms.get(0)).getFactory(); Geometry gColl = factory.buildGeometry(geoms); Geometry unionAll = gColl.buffer(0.0); return unionAll; }
public Geometry combine(Geometry orig, Geometry geom) { List origList = extractElements(orig, true); List geomList = extractElements(geom, true); origList.addAll(geomList); if (origList.size() == 0) { // return a clone of the orig geometry return (Geometry) orig.clone(); } // return the "simplest possible" geometry return geomFactory.buildGeometry(origList); }
public static Geometry extractLines(Geometry g) { List lines = LinearComponentExtracter.getLines(g); return g.getFactory().buildGeometry(lines); } public static Geometry extractSegments(Geometry g)
public static Geometry valid(Geometry a) { List selected = new ArrayList(); for (int i = 0; i < a.getNumGeometries(); i++ ) { Geometry g = a.getGeometryN(i); if (g.isValid()) { selected.add(g); } } return a.getFactory().buildGeometry(selected); } public static Geometry invalid(Geometry a)
public static Geometry invalid(Geometry a) { List selected = new ArrayList(); for (int i = 0; i < a.getNumGeometries(); i++ ) { Geometry g = a.getGeometryN(i); if (! g.isValid()) { selected.add(g); } } return a.getFactory().buildGeometry(selected); } public static Geometry lengthGreaterThan(Geometry a, final double minLen)
protected Geometry transformMultiPoint(MultiPoint geom, Geometry parent) { List transGeomList = new ArrayList(); for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry transformGeom = transformPoint((Point) geom.getGeometryN(i), geom); if (transformGeom == null) continue; if (transformGeom.isEmpty()) continue; transGeomList.add(transformGeom); } return factory.buildGeometry(transGeomList); }
private Object invokeRepeated(Geometry geom, Object[] args, double argStart) { List results = new ArrayList(); int repeatArgIndex = repeatableArgIndex(fun); for (int i = 1; i <= count; i++) { double val = argStart * i; Geometry result = (Geometry) fun.invoke(geom, copyArgs(args, repeatArgIndex, val)); if (result == null) continue; FunctionsUtil.showIndicator(result); results.add(result); } return geom.getFactory().buildGeometry(results); }
Geometry loadData(String file) throws Exception { List geoms = loadWKT(file); return geomFact.buildGeometry(geoms); }
public static Geometry toLines(Geometry g1, Geometry g2) { Geometry geoms = FunctionsUtil.buildGeometry(g1, g2); return FunctionsUtil.getFactoryOrDefault(g1, g2) .buildGeometry(LinearComponentExtracter.getLines(geoms)); }
public static Geometry strTreeBounds(Geometry geoms) { STRtree index = buildSTRtree(geoms); List bounds = new ArrayList(); addBounds(index.getRoot(), bounds, geoms.getFactory()); return geoms.getFactory().buildGeometry(bounds); }
public static Geometry polygonizeDangles(Geometry g) { List lines = LineStringExtracter.getLines(g); Polygonizer polygonizer = new Polygonizer(); polygonizer.add(lines); Collection geom = polygonizer.getDangles(); return g.getFactory().buildGeometry(geom); } public static Geometry polygonizeCutEdges(Geometry g)
public static Geometry polygonizeCutEdges(Geometry g) { List lines = LineStringExtracter.getLines(g); Polygonizer polygonizer = new Polygonizer(); polygonizer.add(lines); Collection geom = polygonizer.getCutEdges(); return g.getFactory().buildGeometry(geom); } public static Geometry polygonizeInvalidRingLines(Geometry g)
private Geometry dissolveLines(Geometry lines) { Geometry dissolved = lines.union(); LineMerger merger = new LineMerger(); merger.add(dissolved); Collection mergedColl = merger.getMergedLineStrings(); Geometry merged = lines.getFactory().buildGeometry(mergedColl); return merged; }