我的视图控制器有两个自定义注释视图作为源和&目的地。我成功地在它们之间建立了一条叠加路径,并将目标箭头图标的方向设置在同一条叠加路径中。现在,当我通过按键盘上的“Alt”键在模拟器上旋转地图时,箭头图标不会随着覆盖路径方向旋转。为了旋转箭头图标,我采取了地图视图摄像机角度,并尝试通过该摄像机角度更新箭头图标方向,但似乎无法正常工作。以下是代码段。我怎样才能做到这一点 ?有没有更好的解决方案?任何形式的帮助都会非常明显。感谢。
在我的ViewController.m文件中 -
#import "Annotation.h"
@implementation Annotation
@synthesize coordinate=_coordinate;
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate forTitle:(NSString *)title forSubTitle:(NSString *)territory {
self = [super init];
if (self != nil) {
_coordinate = coordinate;
_name = title;
_territory = territory;
}
return self;
}
-(CLLocation *) getLocation {
return [[CLLocation alloc] initWithLatitude: _coordinate.latitude longitude: _coordinate.longitude];
}
//Add a Callout
- (NSString*) title {
return self.name;
}
//Add a Callout
- (NSString*) subtitle {
return self.territory;
}
@end
和我的自定义注释文件 -
gblQnbVars
答案 0 :(得分:0)
哪种方式无效?
您的代码中至少有一个明显的错误。根据CoreLocation文档,CLLocationDirection必须为正数,负值表示无效方向。要在getDirection方法中强制替换字符串:
CLLocationDirection directionBetweenPoints = radiansBearing * 180.0 / M_PI;
有两个如下:
double angle = radiansBearing * 180.0 / M_PI;
CLLocationDirection directionBetweenPoints = (angle>=0)? angle : 360+angle;
希望这会有所帮助。