1

我无法将 RectF 转换为 Geometry 然后检测其中的一个点:

public static Geometry RectFtoGeometry(RectF r) {
    GeometricShapeFactory gsf = new GeometricShapeFactory();
    gsf.setBase(new Coordinate(r.left, r.bottom));
    gsf.setNumPoints(4);
    gsf.setWidth(r.width());
    gsf.setHeight(r.height());

    Geometry rect = gsf.createRectangle(), 
        point = new GeometryFactory().createPoint(new Coordinate(r.centerX(), r.centerY()));

    if(!rect.contains(point))
        throw new IllegalArgumentException();//This gets thrown

    return gsf.createRectangle();
}

如何从“可以包含”其点的 RectF 创建几何?

提前致谢!

4

1 回答 1

0

GeometricShapeFactory.java 中的代码使用以下方法创建信封:

public Envelope getEnvelope() {
  if (base != null) {
    return new Envelope(base.x, base.x + width, base.y, base.y + height);
  }
  ...
}

Android在左边TOP有原点(0,0);您必须将 RectF 的 TOP 与其高度相加才能得到 RectF 的底部。所以基础必须是:

gsf.setBase(new Coordinate(r.left, r.top));
于 2015-09-20T17:02:24.047 回答