我有一个几何体对象的集合。现在我想从整个集合中计算出最小边界矩形。我正在使用java拓扑套件,但是我不知道该怎么做?
发布于 2011-12-15 21:25:08
看一看http://tsusiatsoftware.net/jts/javadoc/index.html
如果我假设您使用的是GeometryCollection实例。如果是真的,可以直接调用
geometry.getEnvelope();或
geometry.getEnvelopeInternal();如果你想要一个信封实例
它将返回GeometryCollection的最小矩形。
如果你有一个Geometries集合,你可以直接使用一个信封,并在每次处理集合的一个新的geometryc时展开它。
Envelope env = new Envelope();
for(Geometry g : mySet){
env.expandToInclude(g.getEnvelopeInternal()):
}或
Envelope env = new Envelope();
for(Geometry g : mySet){
env.expandToInclude(g.getBoundary().getEnvelopeInternal()):
}发布于 2014-01-24 00:56:17
我只是把一个像这样放在一起。
Geometry类有一个'getEnvelopeInternal()‘,它返回内切的信封,但'getEnvelope()’只返回另一个几何。
查看javadoc,似乎返回的Geometry对象是:
看看信封上的其他笔记,我看到你可以‘展开’envelope....so这里是我构建来转换的静态util:
public static Envelope enclosingEnvelopFromGeometry(Geometry geometry) {
final Envelope envelope = new Envelope();
final Geometry enclosingGeometry = geometry.getEnvelope();
final Coordinate[] enclosingCoordinates = enclosingGeometry.getCoordinates();
for (Coordinate c : enclosingCoordinates) {
envelope.expandToInclude(c);
}
return envelope;
} 发布于 2011-12-15 21:22:30
我从来没有用过jts,但是用googled搜索了一下:
循环访问集合,并为每个对象调用getBoundary().getEnvelopeInternal()
https://stackoverflow.com/questions/8520692
复制相似问题