java - 如何找到距已知位置 90° 方向 100m 处的坐标(纬度、经度)?

标签 java gps

37.545892, 126.978445 如何找到 90° 方向 100m 处的坐标(纬度、经度)?

最佳答案

找出结论。

public static double[] moveLocation(double latitude, double longitude, double direction, double length){

    double distRadians = length / (6372797.6);

    double rbearing = direction * Math.PI / 180.0;

    double lat1 = latitude * Math.PI / 180;
    double lon1 = longitude * Math.PI / 180;

    double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distRadians) + Math.cos(lat1)
            * Math.sin(distRadians) * Math.cos(rbearing));
    double lon2 = lon1 + Math.atan2(Math.sin(rbearing) * Math.sin(distRadians) * Math.cos(lat1),
            Math.cos(distRadians) - Math.sin(lat1) * Math.sin(lat2));

    lat2 = lat2 * 180 / Math.PI;
    lon2 = lon2 * 180 / Math.PI;

    return new double[]{ lat2, lon2 };

}

关于java - 如何找到距已知位置 90° 方向 100m 处的坐标(纬度、经度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642073/

相关文章:

java - 使用Java无法保存到文本文件

android - 我如何在android中获取当前城市名称?

android - GpsSatellite.getSnr() - 取值范围是多少?

java - 函数式方法与类中的普通方法

mapping - 如何获得特定地标的纬度和经度?

c - 使用指向字符串的指针解析字符串而不使用 strdup 和 strtok 函数

android - 如何从android获取新的经纬度坐标

java - 如何在 JSF 中显示服务器生成的消息?

java - 在 View 显示或更改后执行一些代码

java - filterWhen 与 flatMap 结合使用时会在 Reactor 中抛出异常