本文整理了Java中org.locationtech.jts.geom.GeometryFactory.createMultiPolygon()
方法的一些代码示例,展示了GeometryFactory.createMultiPolygon()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。GeometryFactory.createMultiPolygon()
方法的具体详情如下:
包路径:org.locationtech.jts.geom.GeometryFactory
类名称:GeometryFactory
方法名:createMultiPolygon
[英]Creates a MultiPolygon using the given Polygons; a null or empty array will create an empty Polygon. The polygons must conform to the assertions specified in the OpenGIS Simple Features Specification for SQL.
[中]使用给定多边形创建多多边形;空数组或空数组将创建空多边形。多边形必须符合OpenGIS Simple Features Specification for SQL中指定的断言。
代码示例来源:origin: prestodb/presto
if (partCount == 0) {
if (multitype) {
return GEOMETRY_FACTORY.createMultiPolygon();
return GEOMETRY_FACTORY.createMultiPolygon(polygons.toArray(new Polygon[0]));
代码示例来源:origin: graphhopper/graphhopper
return geometryFactory.createMultiPolygon(isolinePolygons.toArray(new Polygon[isolinePolygons.size()]));
代码示例来源:origin: geoserver/geoserver
/**
* Crops the coverage to the specified bounds
*
* @param coverage
* @param bounds
*/
public static GridCoverage2D crop(final GridCoverage2D coverage, final Envelope bounds) {
// checks
final ReferencedEnvelope cropBounds = new ReferencedEnvelope(bounds);
final ReferencedEnvelope coverageBounds = new ReferencedEnvelope(coverage.getEnvelope());
if (cropBounds.contains((org.locationtech.jts.geom.Envelope) coverageBounds)) {
return coverage;
}
Polygon polygon = JTS.toGeometry(cropBounds);
Geometry roi = polygon.getFactory().createMultiPolygon(new Polygon[] {polygon});
// perform the crops
final ParameterValueGroup param = PROCESSOR.getOperation("CoverageCrop").getParameters();
param.parameter("Source").setValue(coverage);
param.parameter("Envelope").setValue(bounds);
param.parameter("ROI").setValue(roi);
return (GridCoverage2D) PROCESSOR.doOperation(param);
}
代码示例来源:origin: geotools/geotools
/**
* Creates a MultiPolygon from a set of Polygons.
*
* @param polys the component polygons
* @return A MultiPolygon
*/
public MultiPolygon multiPolygon(Polygon... polys) {
return geomFact.createMultiPolygon(polys);
}
代码示例来源:origin: geoserver/geoserver
geomFactory.createMultiPolygon(
accum.toArray(new Polygon[accum.size()]));
代码示例来源:origin: geotools/geotools
@Override
protected Geometry getEmpty() {
if (EMPTY == null) {
EMPTY = new GeometryFactory().createMultiPolygon(null);
}
return EMPTY;
}
代码示例来源:origin: geotools/geotools
private MultiPolygon createMulti(LinearRing single, List holes) {
return geometryFactory.createMultiPolygon(
new Polygon[] {
geometryFactory.createPolygon(
single, (LinearRing[]) holes.toArray(new LinearRing[holes.size()]))
});
}
代码示例来源:origin: geotools/geotools
/**
*
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @generated modifiable
*/
public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
List polys = node.getChildValues(Polygon.class);
return gFactory.createMultiPolygon((Polygon[]) polys.toArray(new Polygon[polys.size()]));
}
代码示例来源:origin: geotools/geotools
public MultiPolygon toMultiPolygon(List<?> list) {
List<Polygon> polys = new ArrayList<Polygon>();
for (Object o : list) {
polys.add(toPolygon((List<?>) o));
}
return geometryFactory.createMultiPolygon(polys.toArray(new Polygon[polys.size()]));
}
代码示例来源:origin: geotools/geotools
@Override
public Geometry getGeometry() {
if (parts.length > 0) {
parts[parts.length - 1] = polygonFactory.getGeometry();
}
MultiPolygon mp = gf.createMultiPolygon(parts);
return mp;
}
代码示例来源:origin: geotools/geotools
private Geometry toPolygon(GeometryFactory gf, final List<Polygon> polygons) {
if (polygons.size() == 0) {
return gf.createGeometryCollection(null);
} else if (polygons.size() == 1) {
return polygons.get(0);
} else {
return gf.createMultiPolygon(
(Polygon[]) polygons.toArray(new Polygon[polygons.size()]));
}
}
代码示例来源:origin: geotools/geotools
@Override
public MultiPolygon createMultiPolygon(Polygon[] polygons) {
if (polygons != null && polygons.length == 1) {
return new SinglePolygonCollection(polygons, this);
} else {
return super.createMultiPolygon(polygons);
}
}
代码示例来源:origin: locationtech/spatial4j
@Override
public Shape build() {
return makeShape(geometryFactory.createMultiPolygon(geoms.toArray(new Polygon[geoms.size()])));
}
}
代码示例来源:origin: geotools/geotools
/**
* Build a {@link MultiPolygon} using the polygon node made in previous steps of the parsing
* process.
*/
@Override
public Geometry build(int polygonNode) throws CQLException {
List<Geometry> polygonList = popGeometry(polygonNode);
Polygon[] polygons = polygonList.toArray(new Polygon[polygonList.size()]);
MultiPolygon multiPolygon = getGeometryFactory().createMultiPolygon(polygons);
return multiPolygon;
}
}
代码示例来源:origin: geotools/geotools
@Override
public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
Polygon polygon = (Polygon) node.getChildValue(Polygon.class);
MultiPolygon surface = (MultiPolygon) node.getChildValue(MultiPolygon.class);
if (polygon != null) {
return gf.createMultiPolygon(new Polygon[] {polygon});
} else {
return surface;
}
}
代码示例来源:origin: geotools/geotools
private Geometry decodeMultiPolygon(int shapeIndex) {
Collection<Geometry> polygons = new ArrayList<Geometry>();
for (int i = shapeIndex; i < binary.getShapes().length; i++) {
if (binary.getShape(i).getParentOffset() == shapeIndex) {
polygons.add(decodePolygon(i));
}
}
return gf.createMultiPolygon(polygons.toArray(new Polygon[polygons.size()]));
}
代码示例来源:origin: geotools/geotools
public MultiPolygon createMultiPolygon(Polygon[] polygons) {
if (containsCurves(polygons)) {
return new MultiSurface(polygons, this, tolerance);
}
return delegate.createMultiPolygon(polygons);
}
代码示例来源:origin: geotools/geotools
private static Geometry smoothMultiPolygon(
GeometryFactory factory, GeometrySmoother smoother, Geometry geom, double fit) {
final int N = geom.getNumGeometries();
Polygon[] smoothed = new Polygon[N];
for (int i = 0; i < N; i++) {
smoothed[i] = smoother.smooth((Polygon) geom.getGeometryN(i), fit);
}
return factory.createMultiPolygon(smoothed);
}
代码示例来源:origin: geotools/geotools
private MultiPolygon readMultiPolygon() throws IOException, ParseException {
int numGeom = dis.readInt();
Polygon[] geoms = new Polygon[numGeom];
for (int i = 0; i < numGeom; i++) {
Geometry g = readGeometry();
if (!(g instanceof Polygon))
throw new ParseException(INVALID_GEOM_TYPE_MSG + "MultiPolygon");
geoms[i] = (Polygon) g;
}
return factory.createMultiPolygon(geoms);
}
代码示例来源:origin: geotools/geotools
private GeometryCollection wrap(Geometry geometry) {
if (geometry instanceof Point) {
return geometry.getFactory().createMultiPoint(new Point[] {(Point) geometry});
} else if (geometry instanceof LineString) {
return geometry.getFactory()
.createMultiLineString(new LineString[] {(LineString) geometry});
} else if (geometry instanceof Polygon) {
return geometry.getFactory().createMultiPolygon(new Polygon[] {(Polygon) geometry});
}
throw new IllegalArgumentException("Unable to create multi geometry from " + geometry);
}
}
内容来源于网络,如有侵权,请联系作者删除!