首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从方位角和距离计算经度和经度

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

Stack Overflow用户
提问于 2012-04-12 15:45:19
回答 1查看 17.2K关注 0票数 22

我很难把我的头包裹在三角函数上。我正在试着从起点、纬度、原木、距离和方位推断出目的地的纬度和经度。

幸运的是,我找到了一个令人惊叹的网站,它准确地描述了我所需要的功能:“Destination point http://www.movable-type.co.uk/scripts/latlong.html Destination point it point”我在我的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

我没有得到我正在做的错误的地方。任何人都可以帮我找出问题所在。

提前谢谢。:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-12 15:50:33

你的问题在你的第一行。

试一试

double dist = 150.0 / 6371.0;

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

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10119479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档