计算圆提供半径和中心的坐标

时间:2015-05-19 22:20:28

标签: geometry location

我希望计算一个圆形的lat和lng点,提供一个中心点和半径。我目前拥有的代码如下,结果总是呈椭圆形,而不是圆形。

            double val = 2 * Math.PI / points;
            for (int i = 0; i < points; i++)
            {
                double angle = val * i;
                double newX = (dCenterX  + radius * Math.Cos(angle));
                double newY = (dCenterY + radius * Math.Sin(angle));
            }

1 个答案:

答案 0 :(得分:1)

您可以使用Destination point given distance and bearing from start point

的公式计算这些点数
JavaScript:     (all angles  in radians) 

var φ2 = Math.asin( Math.sin(φ1)*Math.cos(d/R) +
                    Math.cos(φ1)*Math.sin(d/R)*Math.cos(brng) );

var λ2 = λ1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(φ1),
                         Math.cos(d/R)-Math.sin(φ1)*Math.sin(φ2));

其中φ是纬度,λ是经度,θ是轴承(从北到顺时针),δ是角距离d / R; d是行进的距离,R是地球的半径