如何计算路径上的点数?

时间:2014-02-16 11:39:29

标签: c# algorithm

我有一个纬度/经度点阵列,正在形成路径。

enter image description here

以上路径由5个点组成。我想要的是创建一个需要一些速度值的函数,每次调用该函数时它将根据速度返回新的高级点。不需要平滑角落或其他东西,只是为了获得给定路径上的点。

enter image description here

在创建此类功能方面需要一些帮助...

1 个答案:

答案 0 :(得分:1)

计算一组两点角度的方位。

var y = Math.sin(dLon) * Math.cos(lat2);
var x = Math.cos(lat1)*Math.sin(lat2) -
        Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon);
var brng = Math.atan2(y, x).toDeg();

然后计算“目的地点给定距离并从起点承载”

var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + 
              Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), 
                     Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));

此处提供了更多信息,http://www.movable-type.co.uk/scripts/latlong.html 我认为你需要使用弧度来进行角度输入。