首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JTS的最小外接矩形

使用JTS的最小外接矩形
EN

Stack Overflow用户
提问于 2011-12-15 21:15:01
回答 3查看 8.6K关注 0票数 9

我有一个几何体对象的集合。现在我想从整个集合中计算出最小边界矩形。我正在使用java拓扑套件,但是我不知道该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-15 21:25:08

看一看http://tsusiatsoftware.net/jts/javadoc/index.html

如果我假设您使用的是GeometryCollection实例。如果是真的,可以直接调用

代码语言:javascript
复制
geometry.getEnvelope();

代码语言:javascript
复制
geometry.getEnvelopeInternal();

如果你想要一个信封实例

它将返回GeometryCollection的最小矩形。

如果你有一个Geometries集合,你可以直接使用一个信封,并在每次处理集合的一个新的geometryc时展开它。

代码语言:javascript
复制
Envelope env = new Envelope();
for(Geometry g : mySet){
  env.expandToInclude(g.getEnvelopeInternal()):
}

代码语言:javascript
复制
Envelope env = new Envelope();
for(Geometry g : mySet){
  env.expandToInclude(g.getBoundary().getEnvelopeInternal()):
}
票数 9
EN

Stack Overflow用户

发布于 2014-01-24 00:56:17

我只是把一个像这样放在一起。

Geometry类有一个'getEnvelopeInternal()‘,它返回内切的信封,但'getEnvelope()’只返回另一个几何。

查看javadoc,似乎返回的Geometry对象是:

  1. 与空几何对象匹配的空点。
  2. 与传入的点匹配的单个点。
  3. 具有4个坐标的多边形,用于指定封闭包络。

看看信封上的其他笔记,我看到你可以‘展开’envelope....so这里是我构建来转换的静态util:

代码语言:javascript
复制
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;
} 
票数 2
EN

Stack Overflow用户

发布于 2011-12-15 21:22:30

我从来没有用过jts,但是用googled搜索了一下:

循环访问集合,并为每个对象调用getBoundary().getEnvelopeInternal()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8520692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档