java求另外一点的经纬度_已知一点的经纬度和该点到另一点的距离,求另一点的经纬度...
时间: 2023-08-29 07:07:28 浏览: 105
矢量数据批量转换经纬.zip_矢量数据批量转换经纬度_经纬度 坐标
5星 · 资源好评率100%
可以使用 Haversine 公式来计算另外一点的经纬度。Haversine 公式是基于球面距离的公式,假设地球是一个完美的球体。
首先,需要知道已知点的经纬度、距离和方位角。方位角是从已知点到目标点的方向角度,以正北方向为0度,顺时针方向为正方向。
以下是 Java 代码示例:
```java
public static double[] calculateDestinationPoint(double lat, double lon, double distance, double bearing) {
double R = 6371.0; // 地球半径,单位千米
double d = distance / 1000.0 / R; // 距离转换成弧度
double lat1 = Math.toRadians(lat);
double lon1 = Math.toRadians(lon);
double brng = Math.toRadians(bearing);
double lat2 = Math.asin(Math.sin(lat1) * Math.cos(d) + Math.cos(lat1) * Math.sin(d) * Math.cos(brng));
double lon2 = lon1 + Math.atan2(Math.sin(brng) * Math.sin(d) * Math.cos(lat1), Math.cos(d) - Math.sin(lat1) * Math.sin(lat2));
lat2 = Math.toDegrees(lat2);
lon2 = Math.toDegrees(lon2);
return new double[]{lat2, lon2};
}
```
其中,参数 `lat` 和 `lon` 是已知点的经纬度,`distance` 是已知点到目标点的距离(单位为米),`bearing` 是方位角(单位为度)。函数返回一个包含目标点经纬度的数组,数组的第一个元素是纬度,第二个元素是经度。
阅读全文