从方位角和距离计算纬度和经度

我很难缠一些三角学。我正在尝试根据起始纬度,对数,距离和方位来推论目标纬度和经度。

幸运的是,我找到了一个令人惊叹的网站,该网站准确地描述了我需要的功能:http : //www.movable-

type.co.uk/scripts/latlong.html

“给定目标点的距离并与起点保持距离”我尝试了java程序,但对我不起作用。我按照网站所述部署它。这是我的代码:

double dist = 150/6371;

double brng = Math.toRadians(90);

double lat1 = Math.toRadians(26.88288045572338);

double lon1 = Math.toRadians(75.78369140625);

double lat2 = Math.asin( Math.sin(lat1)*Math.cos(dist) + Math.cos(lat1)*Math.sin(dist)*Math.cos(brng) );

double a = Math.atan2(Math.sin(brng)*Math.sin(dist)*Math.cos(lat1), Math.cos(dist)-Math.sin(lat1)*Math.sin(lat2));

System.out.println("a = " + a);

double lon2 = lon1 + a;

lon2 = (lon2+ 3*Math.PI) % (2*Math.PI) - Math.PI;

System.out.println("Latitude = "+Math.toDegrees(lat2)+"\nLongitude = "+Math.toDegrees(lon2));

但它显示的输出是:

a = 0.0

Latitude = 26.882880455723377

Longitude = 75.78369140625

我没有走错地方。请任何人都可以帮助我找出问题所在。

提前感谢。:-)

回答:

您的问题在第一行。

尝试

double dist = 150.0 / 6371.0;

原因是150/6371将其计算为0,因为它执行整数除法(而不是浮点除法)。即使结果存储在中也是如此double。您可以通过将两个数字之一设为浮点文字来强制进行浮点除法。

以上是 从方位角和距离计算纬度和经度 的全部内容, 来源链接: utcz.com/qa/405201.html

回到顶部