如何找到两个纬度经度的中心点?

时间:2013-03-21 11:03:06

标签: php

我有两个纬度,经度,现在我怎么能找到中纬度,经纬度为两个纬度。  有人能帮助我吗?

3 个答案:

答案 0 :(得分:3)

为您定义什么是“中心”。大多数情况下,我使用简单平均值。更好的解决方案是计算两个向量(来自地球中心),添加它们并归一化结果。 Calculate the center point of multiple latitude/longitude coordinate pairs

答案 1 :(得分:2)

另外,要小心经度。 170°E和170°W两点之间的中点应为180°E (或W),但最终可能为0°E。

下载来自USGS的John P. Snyder的地图预测:工作手册http://pubs.er.usgs.gov/publication/pp1395。它是免费的。

答案 2 :(得分:1)

将纬度和经度转换为弧度,然后

$deltaLongitude = $endPointLongitude - $startPointlongitude;

$xModified = cos($endPointLatitude) * cos($deltaLongitude);
$yModified = cos($endPointLatitude) * sin($deltaLongitude);

$midpointLatitude = atan2(
    sin($startPointlatitude) + sin($endPointLatitude),
    sqrt((cos($startPointLatitude) + $xModified) * (cos($startPointLatitude) + $xModified) + 
         $yModified * $yModified
    )
);
$midpointLongitude = $startPointLongitude +
    atan2($yModified, 
        cos($startPointLatitude) + $xModified
    );