RectF 数据中的 Rectangle Geometry 不包括 RectF 的中心
Rectangle Geometry from RectF's data does not include RectF's center
我无法将 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 创建具有 "can contain" 个点的几何体?
提前致谢!
GeometricShapeFactory.java 中的代码使用以下方法创建信封:
public Envelope getEnvelope() {
if (base != null) {
return new Envelope(base.x, base.x + width, base.y, base.y + height);
}
...
}
Android原点(0,0)在左边TOP;您必须将 RectF 的顶部与其高度相加以获得 RectF 的底部。所以基数必须是:
gsf.setBase(new Coordinate(r.left, r.top));
我无法将 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 创建具有 "can contain" 个点的几何体?
提前致谢!
GeometricShapeFactory.java 中的代码使用以下方法创建信封:
public Envelope getEnvelope() {
if (base != null) {
return new Envelope(base.x, base.x + width, base.y, base.y + height);
}
...
}
Android原点(0,0)在左边TOP;您必须将 RectF 的顶部与其高度相加以获得 RectF 的底部。所以基数必须是:
gsf.setBase(new Coordinate(r.left, r.top));