我正在尝试计算两个坐标之间的位移,以米为单位。here
地图中是否有一个函数可以进行此计算?
如果没有,我如何有效地计算JavaScript中两个坐标点之间的距离。
答案 0 :(得分:2)
我认为您正在寻找nokia.maps.geo.Coordinate
课程中的distance()方法。可以在GitHub上的HERE Maps Community页面上的查找最近标记示例中找到使用示例。
答案 1 :(得分:2)
我找到了这个php函数(基于Vincenty的算法),它在计算2个坐标之间的位移方面效果很好,
<?php
function vincentyGreatCircleDistance($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000){
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$lonDelta = $lonTo - $lonFrom;
$a = pow(cos($latTo) * sin($lonDelta), 2) +
pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
$b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);
$angle = atan2(sqrt($a), $b);
return $angle * $earthRadius;
}
?>
拨打:强>
<?php $distance_in_meters = vincentyGreatCircleDistance(53.6235,-1.34307, 51.6554, -2.3445 ); ?>