地图根据起点和终点计算中心点角度来绘制弧线 iOS

-(CLLocationCoordinate2D)sin:(CLLocationCoordinate2D)start End:(CLLocationCoordinate2D)end{

    double t, t2, h,h2;

    double lng1 = start.longitude;

    double lng2 = end.longitude;

    double lat1 = start.latitude;

    double lat2 = end.latitude;

    

    if (lng2 > lng1) {

        if ((lng2 - lng1) > 180) {

            if (lng1 < 0) {

                lng1 = (180 + 180 + lng1);

            }

        }

    }

    if (lng1 > lng2) {

        if ((lng1 - lng2) > 180) {

            if (lng2 < 0) {

                lng2 = (180 + 180 + lng2);

            }

        }

    }

    if (lat2 == lat1) {

        t = 0;

        h = lng1 - lng2;

    } else {

        if (lng2 == lng1) {

            t = M_PI / 2;

            h = lat1 - lat2;

        } else {

            t = atan((lat2 - lat1) / (lng2 - lng1));

            h = (lat2 - lat1) / sin(t);

        }

    }

    t2 = (t + (M_PI / 8));

    h2 = h / 2;

    double lng3 = h2 * cos(t2) + lng1;

    double lat3 = h2 * sin(t2) + lat1;

    CLLocationCoordinate2D returnL = CLLocationCoordinate2DMake(lat3, lng3);

    return returnL;

 

}

posted @ 2019-07-15 14:40  港吧休  阅读(453)  评论(0编辑  收藏  举报