Java 矩形几何体,来自RectF';s数据不包括RectF';s中心
我无法将RectF转换为几何体,然后检测其中的点:Java 矩形几何体,来自RectF';s数据不包括RectF';s中心,java,android,measure,jts,Java,Android,Measure,Jts,我无法将RectF转换为几何体,然后检测其中的点: 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.
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创建几何体
提前谢谢 GeometricShapeFactory.java中的代码使用以下方法创建信封:
public Envelope getEnvelope() {
if (base != null) {
return new Envelope(base.x, base.x + width, base.y, base.y + height);
}
...
}
Android的原点(0,0)位于左上方;您必须将RectF的顶部与其高度相加,才能得到RectF的底部。因此,基础必须是:
gsf.setBase(new Coordinate(r.left, r.top));
GeometricShapeFactory.java中的代码通过以下方式创建信封:
public Envelope getEnvelope() {
if (base != null) {
return new Envelope(base.x, base.x + width, base.y, base.y + height);
}
...
}
Android的原点(0,0)位于左上方;您必须将RectF的顶部与其高度相加,才能得到RectF的底部。因此,基础必须是:
gsf.setBase(new Coordinate(r.left, r.top));