需要使用JTS库在坐标周围创建圆

时间:2017-11-08 19:10:44

标签: java jts

我正在尝试使用以下方法创建围绕特定坐标的圆圈,这是我从一些git hub repo获得的。

public static Geometry createCircle(Coordinate coordinate, double radius)
{
  GeometricShapeFactory shape = new GeometricShapeFactory(geomFactory);
  shape.setCentre(coordinate);
  shape.setSize(2 * radius);
  shape.setNumPoints(32);
  return shape.createCircle();
}

我希望以英里为单位传递半径,但是当我给出5作为半径时,它看起来像是在接收其他单位并且创建的圆是巨大的。在上面的例子中,有人可以解释如何在里程中使用半径参数吗?

1 个答案:

答案 0 :(得分:0)

JTS是几何/拓扑库。因此,它使用几何所在的任何单位。

假设您正在使用经度,纬度对的点,则单位是经度/纬度。在赤道,学位约为110公里/ 69英里。

作为一个非常快速的解决方案,您可以将半径设置为5/69。作为一个完整的解决方案,您可以将GeoTools(Java地理空间库)GeodeticCalculator类[1]应用于您建议的代码以获得更准确的圆。

这个解决方案会在两极之间产生一些问题,但这是另一个问题......

[1] http://docs.geotools.org/stable/userguide/library/referencing/calculator.html