本文整理了Java中org.locationtech.jts.geom.Geometry.apply()
方法的一些代码示例,展示了Geometry.apply()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Geometry.apply()
方法的具体详情如下:
包路径:org.locationtech.jts.geom.Geometry
类名称:Geometry
方法名:apply
[英]Performs an operation with or on this Geometry
's coordinates. If this method modifies any coordinate values, #geometryChanged must be called to update the geometry state. Note that you cannot use this method to modify this Geometry if its underlying CoordinateSequence's #get method returns a copy of the Coordinate, rather than the actual Coordinate stored (if it even stores Coordinate objects at all).
[中]使用或在此Geometry
的坐标上执行操作。如果此方法修改任何坐标值,则必须调用#geometryChanged来更新几何体状态。请注意,如果基础CoordinateSequence的#get方法返回坐标的副本,而不是存储的实际坐标(如果它甚至存储坐标对象),则无法使用此方法修改此几何体。
代码示例来源:origin: com.h2database/h2
private static int getDimensionCount(Geometry geometry) {
ZVisitor finder = new ZVisitor();
geometry.apply(finder);
return finder.isFoundZ() ? 3 : 2;
}
代码示例来源:origin: geotools/geotools
private void collectLines(Geometry geometry, final List<LineString> lines) {
geometry.apply(
new GeometryComponentFilter() {
@Override
public void filter(Geometry geom) {
if (geom instanceof LineString && !geom.isEmpty()) {
lines.add((LineString) geom);
}
}
});
}
};
代码示例来源:origin: locationtech/spatial4j
private static void shiftGeomByX(Geometry geom, final int xShift) {
if (xShift == 0)
return;
geom.apply(new CoordinateSequenceFilter() {
@Override
public void filter(CoordinateSequence seq, int i) {
seq.setOrdinate(i, CoordinateSequence.X, seq.getX(i) + xShift );
}
@Override public boolean isDone() { return false; }
@Override public boolean isGeometryChanged() { return true; }
});
}
代码示例来源:origin: geotools/geotools
public void apply(CoordinateFilter filter) {
geometry.apply(filter);
}
代码示例来源:origin: geotools/geotools
public void apply(CoordinateSequenceFilter filter) {
geometry.apply(filter);
}
代码示例来源:origin: geotools/geotools
public void apply(GeometryComponentFilter filter) {
geometry.apply(filter);
}
代码示例来源:origin: geotools/geotools
public void apply(GeometryFilter filter) {
geometry.apply(filter);
}
代码示例来源:origin: geoserver/geoserver
} else {
final List<Polygon> accum = new ArrayList<Polygon>();
intersection.apply(
new GeometryComponentFilter() {
public void filter(Geometry geom) {
代码示例来源:origin: geotools/geotools
public LinearElevationInterpolator(Geometry original, CoordinateReferenceSystem crs) {
originalLines = new ArrayList<LineString>();
original.apply(
new GeometryComponentFilter() {
@Override
public void filter(Geometry geom) {
if (geom instanceof LineString) {
originalLines.add((LineString) geom);
}
}
});
}
代码示例来源:origin: geotools/geotools
private List<LinearRing> getRings(Geometry bounds) {
final ArrayList<LinearRing> rings = new ArrayList<LinearRing>();
bounds.apply(
new GeometryComponentFilter() {
@Override
public void filter(Geometry geom) {
if (geom instanceof LinearRing && !geom.isEmpty()) {
rings.add((LinearRing) geom);
}
}
});
return rings;
}
代码示例来源:origin: geotools/geotools
@Override
public void encodeGeometryValue(Geometry value, int dimension, int srid, StringBuffer sql)
throws IOException {
if (value == null) {
sql.append("NULL");
return;
}
GeometryDimensionFinder finder = new GeometryDimensionFinder();
value.apply(finder);
WKTWriter writer = new WKTWriter(finder.hasZ() ? 3 : 2);
String wkt = writer.write(value);
sql.append("geometry::STGeomFromText('").append(wkt).append("',").append(srid).append(")");
}
代码示例来源:origin: geotools/geotools
private static Polygon toPolygonInternal(Shape shape) {
Geometry geomROI = null;
if (shape != null) {
geomROI = ShapeReader.read(shape, 0, new GeometryFactory());
geomROI.apply(Y_INVERSION);
}
return (Polygon) geomROI;
}
}
代码示例来源:origin: geotools/geotools
public static CoordinateSequence find(Geometry g) {
CoordinateSequenceFinder finder = new CoordinateSequenceFinder();
g.apply(finder);
return finder.getSeq();
}
代码示例来源:origin: geotools/geotools
public static List<CoordinateSequence> find(Geometry g) {
CoordinateSequenceCollector finder = new CoordinateSequenceCollector();
g.apply(finder);
return finder.getSequences();
}
代码示例来源:origin: geotools/geotools
/**
* returns the coordinate dimension for a geometry
*
* @param Geometry g
* @return if there is one z value != NaN, then 3 else 2
*/
public static final int guessCoordinateDimension(Geometry g) {
DimensionCoordFilter filter = new DimensionCoordFilter();
g.apply(filter);
return filter.getDimension();
}
代码示例来源:origin: geotools/geotools
/**
* Looks up the geometry dimension by trying a number of heuristics. Returns 2 if all attempts
* at guessing the dimension failed.
*/
protected int getGeometryDimension(Geometry g, AttributeDescriptor descriptor)
throws IOException {
int dimension = getDescriptorDimension(descriptor);
if (g == null || dimension > 0) {
return dimension;
}
// check for dimension in the geometry coordinate sequences
CoordinateSequenceDimensionExtractor dex = new CoordinateSequenceDimensionExtractor();
g.apply(dex);
return dex.getDimension();
}
代码示例来源:origin: geotools/geotools
public Object evaluate(Object feature, Class context) {
Geometry g = getExpression(0).evaluate(feature, Geometry.class);
if (g == null) return null;
MultiPointExtractor filter = new MultiPointExtractor();
g.apply(filter);
return filter.getMultiPoint();
}
代码示例来源:origin: geotools/geotools
public static CoordinateSequence find(Geometry g) {
CoordinateSequenceFinder finder = new CoordinateSequenceFinder();
g.apply(finder);
return finder.getSeq();
}
代码示例来源:origin: geotools/geotools
public static boolean check(Geometry g, Class coordSeqClass, int dimension) {
CoordinateSequenceSchemaChecker checkCS =
new CoordinateSequenceSchemaChecker(coordSeqClass, dimension);
g.apply(checkCS);
return checkCS.isSame();
}
代码示例来源:origin: geotools/geotools
public Object evaluate(Object feature) {
Geometry geom = getExpression(0).evaluate(feature, Geometry.class);
Double offsetX = getExpression(1).evaluate(feature, Double.class);
if (offsetX == null) offsetX = 0d;
Double offsetY = getExpression(2).evaluate(feature, Double.class);
if (offsetY == null) offsetY = 0d;
if (geom != null) {
Geometry offseted = geom.copy();
offseted.apply(new OffsetOrdinateFilter(offsetX, offsetY));
return offseted;
} else {
return null;
}
}
内容来源于网络,如有侵权,请联系作者删除!