【问题标题】: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 问题。
  • 是的,这只是数学逻辑......但是,我找不到任何确切的方法来找出答案......我想任何人之前都可能遇到过这个问题......所以只有我在发布这里...

标签: java geolocation geometry google-places-api


【解决方案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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多