我需要使用现有的纬度/经度、距离和方向来计算纬度/经度

Posted

技术标签:

【中文标题】我需要使用现有的纬度/经度、距离和方向来计算纬度/经度【英文标题】:I need to calculate the latitude/longitude using existing lat/longitude , distance and direction 【发布时间】:2015-02-23 05:32:10 【问题描述】:

在 Java 中集成 google API 时,我需要使用现有的 lat/long、距离和方向来计算另一个地方的 lat/long。那个点怎么计算?

【问题讨论】:

您为什么要这样做?经纬度有变化吗? @SMA 我认为他的意思是,如果您从一个已知纬度/经度的点开始,然后朝某个方向走一定距离,那么您最终会到达的点的纬度/经度是多少在。 这是一道数学题,不是 Java 题,甚至不是编程题。如果你有你需要的公式,但不知道如何在 Java 程序中表达它们,那么你可以问一个 Java 问题。 是的,这只是数学逻辑......但是,我找不到任何确切的方法来找出答案......我想任何人之前都可能遇到过这个问题......所以只有我在发布这里... 【参考方案1】:

以下 php 代码提供了从 $lat1,$lng1 沿方位 $brng 距离 $dist (kms) 的点。

function destination($lat1,$lng1,$dist,$brng)
$alpha = $dist/6371; // km
$lat2 = asin((sin($lat1)*cos($alpha)) +(cos($lat1)*sin($alpha)*cos($brng)) );
$lng2 = $lng1 + atan2(sin($brng)*sin($alpha)*cos($lat1),cos($alpha)-sin($lat1)*sin($lat2));
return array(toDeg($lat2),toDeg($lng2));

$lat1,$lng1 & $brng 以弧度表示

function toRad($deg) 
// Converts numeric degrees to radians 
    return $deg * pi() / 180;

function toDeg($rad)
   return $rad * 180 / pi();

【讨论】:

以上是关于我需要使用现有的纬度/经度、距离和方向来计算纬度/经度的主要内容,如果未能解决你的问题,请参考以下文章

获取给定当前点、距离和方位的纬度/经度

在 MapKit / CoreLocation 中计算两个纬度/经度之间的距离

如何使用它们的经度和纬度值计算两个位置之间的距离

Nan在使用纬度和经度计算距离

从 lastKnownLocation() 获取经度和纬度?

计算给定2点,纬度和经度的距离[重复]