我希望计算一个圆形的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));
}
答案 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是地球的半径