0

我正在开发一种用于 Java 中 GPS 精度的工具。我对 Lat Lon 有意见,需要建立一个具有一定半径的圆。

有很多这样的问题,但在我的情况下,半径通常在 10 米左右,+-5 米,我需要它非常精确。

为了建立一个圈子,我使用JTS

有一个代码示例:

    import com.vividsolutions.jts.geom.*;



    public static final int SRID = 4326;
    public static PrecisionModel precisionModel = new PrecisionModel(PrecisionModel.maximumPreciseValue);
    public static GeometryFactory geometryFactory = new GeometryFactory(precisionModel, SRID);

    public static Polygon createCircle(Point initialPoint, int coverArea){

    GeometricShapeFactory gsf = new GeometricShapeFactory(geometryFactory);
    ArrayList<Point> pointsOfIntersection = new ArrayList<>();

       // double radius = getRadius(point);
        double size = 0.0001 * coverArea/100;

        gsf.setSize(size);
        gsf.setNumPoints(50);
        gsf.setCentre(point.getCoordinate());
        Polygon circle = gsf.createCircle();

       return circle;
      }

基本上我有一个带坐标的中心点,并将获得基于该点的直径(5 - 20 米),之后我需要将该半径调整为coverArea系数(1 - 100 %)并以十进制度数设置圆的大小.

现在我使用 0.0001 值进行测试,根据维基百科给出的值约为 10.247 米。

所以我需要一个简单有效的公式来将米转换为十进制度。

4

1 回答 1

0

十进制度的精度取决于您使用的小数点数。

https://en.wikipedia.org/wiki/Decimal_degrees

只需使用更多来实现您正在寻找的东西(5-15 米长)。

于 2016-06-14T14:19:16.730 回答