我已经在一个平面内加载了一组巨大的点,需要从给定的点和半径距离(以米为单位)开始画一个圆形/椭圆形,然后检查哪些点在圆内。
我已经使用within()方法通过多边形完成了这个过程,但是我找不到一种方法可以在不指定多边形周围每个点的情况下绘制圆形/椭圆形。
是否有一种方法可以在JTS上实现这一点,或者我需要另一个Java库?
如果我理解正确,您已经有了半径和圆心,因此您可以使用JTS绘制一个圆形,如下所示:
public static Geometry createCircle(double x, double y, final double RADIUS) {
GeometricShapeFactory shapeFactory = new GeometricShapeFactory();
shapeFactory.setNumPoints(32);
shapeFactory.setCentre(new Coordinate(x, y));
shapeFactory.setSize(RADIUS * 2);
return shapeFactory.createCircle();
}
buffer
。Point centerPoint = ...;
Polygon circle = (Polygon) centerPoint.buffer(0.1);