public Geoshape geoshape(org.locationtech.jts.geom.Geometry geometry) { return new Geoshape(context.getShapeFactory().makeShapeFromGeometry(geometry)); }
@Override public Shape build() { return makeShapeFromGeometry(buildPolygonGeom()); }
/** * INTERNAL Usually creates a JtsGeometry, potentially validating, repairing, and indexing ("preparing"). This method * is intended for use by {@link ShapeReader} instances. * * If given a direct instance of {@link GeometryCollection} then it's contents will be * recursively converted and then the resulting list will be passed to * {@link SpatialContext#makeCollection(List)} and returned. * * If given a {@link org.locationtech.jts.geom.Point} then {@link SpatialContext#makePoint(double, double)} * is called, which will return a {@link JtsPoint} if {@link JtsSpatialContext#useJtsPoint()}; otherwise * a standard Spatial4j Point is returned. * * If given a {@link LineString} and if {@link JtsSpatialContext#useJtsLineString()} is true then * then the geometry's parts are exposed to call {@link SpatialContext#makeLineString(List)}. */ @Deprecated public Shape makeShapeFromGeometry(Geometry geom) { return getShapeFactory().makeShapeFromGeometry(geom); }
@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)); } }
@Override public Shape buildOrRect() { Polygon geom = buildPolygonGeom(); if (geom.isRectangle()) { return makeRectFromRectangularPoly(geom); } return makeShapeFromGeometry(geom); }
for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry geomN = geom.getGeometryN(i); shapes.add(makeShapeFromGeometry(geomN));//recursion
/** * Reads WKT from the {@code str} via JTS's {@link org.locationtech.jts.io.WKTReader}. * @param str * @param reader <pre>new WKTReader(ctx.getGeometryFactory()))</pre> * @return Non-Null */ protected Shape parseIfSupported(String str, WKTReader reader) throws ParseException { try { Geometry geom = reader.read(str); //Normalizes & verifies coordinates checkCoordinates(geom); if (geom instanceof org.locationtech.jts.geom.Point) { org.locationtech.jts.geom.Point ptGeom = (org.locationtech.jts.geom.Point) geom; if (getShapeFactory().useJtsPoint()) return new JtsPoint(ptGeom, (JtsSpatialContext) ctx); else return getShapeFactory().pointXY(ptGeom.getX(), ptGeom.getY()); } else if (geom.isRectangle()) { return getShapeFactory().makeRectFromRectangularPoly(geom); } else { return getShapeFactory().makeShapeFromGeometry(geom); } } catch (InvalidShapeException e) { throw e; } catch (Exception e) { throw new InvalidShapeException("error reading WKT: "+e.toString(), e); } }
public Shape convexHull(Shape s) { return shapeFactory.makeShapeFromGeometry(shapeFactory.getGeometryFrom(s).convexHull()); }
public Shape envelope(Shape s) { return shapeFactory.makeShapeFromGeometry(shapeFactory.getGeometryFrom(s).getEnvelope()); }
public Shape convexHull(Shape s) { return shapeFactory.makeShapeFromGeometry(shapeFactory.getGeometryFrom(s).convexHull()); }
@Override public Shape buffer(Shape s, double distance) { return shapeFactory.makeShapeFromGeometry(shapeFactory.getGeometryFrom(s).buffer(distance)); }
public Shape boundary(Shape s) { return shapeFactory.makeShapeFromGeometry(shapeFactory.getGeometryFrom(s).getBoundary()); }
public Shape union(Shape s1, Shape s2) { return shapeFactory.makeShapeFromGeometry( shapeFactory.getGeometryFrom(s1).union(shapeFactory.getGeometryFrom(s2))); }
public Shape union(Shape s1, Shape s2) { return shapeFactory.makeShapeFromGeometry( shapeFactory.getGeometryFrom(s1).union(shapeFactory.getGeometryFrom(s2))); }
public Shape difference(Shape s1, Shape s2) { Geometry difference = shapeFactory.getGeometryFrom(s1).difference(shapeFactory.getGeometryFrom(s2)); if (difference.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(difference); }
public Shape symDifference(Shape s1, Shape s2) { Geometry symDiff = shapeFactory.getGeometryFrom(s1).symDifference(shapeFactory.getGeometryFrom(s2)); if (symDiff.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(symDiff); }
public Shape intersection(Shape s1, Shape s2) { Geometry intersection = shapeFactory.getGeometryFrom(s1).intersection(shapeFactory.getGeometryFrom(s2)); if (intersection.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(intersection); }
public Shape intersection(Shape s1, Shape s2) { Geometry intersection = shapeFactory.getGeometryFrom(s1).intersection(shapeFactory.getGeometryFrom(s2)); if (intersection.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(intersection); }
public Shape symDifference(Shape s1, Shape s2) { Geometry symDiff = shapeFactory.getGeometryFrom(s1).symDifference(shapeFactory.getGeometryFrom(s2)); if (symDiff.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(symDiff); }
public Shape difference(Shape s1, Shape s2) { Geometry difference = shapeFactory.getGeometryFrom(s1).difference(shapeFactory.getGeometryFrom(s2)); if (difference.isEmpty()) { return shapeFactory.pointXY(Double.NaN, Double.NaN); } return shapeFactory.makeShapeFromGeometry(difference); }