在地图上逐点,角度和距离计算

时间:2015-01-06 14:58:28

标签: c# math

我的任务是在地图上计算点数。我有起点,角度和距离点的距离。我该怎么做 ?我搜索了很多我找到的东西,但它不能正常工作 - 我的意思是它不能计算出正确的点。谢谢所有。

我的尝试:

public Point MesPoint(double x1, double x2, double y1, double y2, double distance, double x) // X is the angle
{
    double xEndP, yEndP;
    var angularDistance = distance / c_EarthRadiusInKilometers; // angular distance in radians
    var lat = ToRadian(y2);
    var lon = ToRadian(x2);
    var angel = ToRadian(x);

    double latRadians = Math.Asin((Math.Sin(lat) * Math.Cos(angularDistance)) + (Math.Cos(lat) * Math.Sin(angularDistance) * Math.Cos(angel)));
    double lngRadians = Math.Atan2(
                            Math.Sin(angel) * Math.Sin(angularDistance) * Math.Cos(lat),
                            Math.Cos(angularDistance) - (Math.Sin(lat) * Math.Sin(latRadians)));


    double lon1 = (lon + lngRadians + Math.PI) % (2 * Math.PI) - Math.PI; // normalise to -180..+180º

    yEndP = ToDegrees(latRadians);
    xEndP = ToDegrees(lon1);
    return (new Point(xEndP, yEndP));
}

0 个答案:

没有答案