gpt4 book ai didi

iphone - 使用指南针指向实际坐标位置而不仅仅是北

转载 作者:行者123 更新时间:2023-12-03 21:08:07 27 4
gpt4 key购买 nike

我已经看过一些这样的例子,但不确定如何具体实现它,(例如 iPhone Compass GPS Direction )我需要在 (void)startup 中调用 calcBearingWithLatitude 吗?

我想做的就是让指南针从内存中提取一个点,并使用该点作为它的“北”,可以这么说并指向它,不需要距离或类似的东西。

我的实现文件现在看起来像

@implementation TrackerViewController

@synthesize locationManager;
@synthesize compass;
@synthesize headingLabel;

- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

if ([CLLocationManager headingAvailable]) {

} else {
[[[[UIAlertView alloc] initWithTitle:@"Error"
message:@"Device doesn't support heading updates"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
}
}

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
double heading = [newHeading magneticHeading] * M_PI / 180.0;
self.compass.transform = CGAffineTransformMakeRotation(-heading);
self.headingLabel.text = [NSString stringWithFormat:@"%d°", (int)[newHeading magneticHeading]];
NSLog(@"%d", (int)[newHeading magneticHeading]);
}


- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {

// NSLog(@"Error!");

if (error.code == kCLErrorDenied) {
[[[[UIAlertView alloc] initWithTitle:@"Error"
message:@"User didn't allow heading updates"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
[self.locationManager stopUpdatingHeading];
}
}

- (void)viewDidLoad {
locationManager=[[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate=self;
//Start the compass updates.
[locationManager startUpdatingHeading];
[super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)dealloc {
self.locationManager = nil;
self.compass = nil;
self.headingLabel = nil;
[super dealloc];
}

@end

最佳答案

我会找到从坐标 A 到坐标 B 的方位,然后使用该方位作为罗盘方位从坐标 A 到坐标 B 的偏移。

这里有两个用于查找坐标方位的链接

Calculating bearing between two CLLocationCoordinate2Ds

http://shawnsbits.com/blog/2011/07/07/calculating-heading-with-corelocation/

如果您希望罗盘方位在您移动时更新,以便它始终指向坐标 B,那么您可能需要在获得新方位或位置时重新计算。

关于iphone - 使用指南针指向实际坐标位置而不仅仅是北,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145465/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com