我需要使用现有的纬度/经度、距离和方向来计算纬度/经度
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 中计算两个纬度/经度之间的距离