我对objective-c不熟悉,所以如果我的问题太垃圾,我想道歉。
我正在编写一个指南针,但它正在工作(感谢教程)。
给出了实际位置(经度和格度)。
指南针内的箭头是否可以指示到特定位置(longitude2和lattictude2)的方向?
我读到我必须考虑到iphone的磁性和真正的标题。

最佳答案

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
    double heading = newHeading.trueHeading; //in degree relative to true north
    double bearing = ... //get current bearing in degree relative to true north
                         //with the JS library mentioned below it would be something like
                         //bearing = userLoc.bearingTo(destionation);

    //just two lines, the the sake of the example
    double rotationInDegree = (bearing - heading);  //the important line
    rotationInDegree = fmod((rotationInDegree + 360), 360);  //just to be on the safe side :-)
    compassViewPerhapsAsImage.transform=CGAffineTransformMakeRotation(DegreesToRadians(rotationInDegree));
}

计算轴承的良好链接:
http://www.movable-type.co.uk/scripts/latlong.html以eplanations和javascript为例,但非常容易转换!:-)
https://github.com/tadelv/CLLocation-Bearing作为目标c项目

10-08 16:59