我对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项目