1

我的应用程序目前使用带有自定义叠加层的相机来拍摄和保存照片。

理想情况下,我还想在拍摄照片时收集以下 3 个参数:

  1. 精确的 GPS 定位
  2. 指南针方向
  3. 手机倾斜

我主要专注于获取项目 1 和 2。关于如何做到这一点的任何想法?

4

1 回答 1

1

您应该在 viewController 的 .h 文件中声明几个变量

float locLat;   //for latitude
float locLon;   //for longitude
float direction;  // for angle in radian
CLLocationManager *Manager; 

在 viewdidload 方法的 .m 文件中

Manager = [[CLLocationManager alloc] init];
Manager.delegate = self; 
Manager.desiredAccuracy = kCLLocationAccuracyBest; 
Manager.distanceFilter = 1.0; 
[Manager startUpdatingLocation];
[Manager startUpdatingHeading];

这些委托方法将在您获取位置更新的位置调用

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{
    userlat = newLocation.coordinate.latitude;
    userlon = newLocation.coordinate.longitude;
}

这将为您提供指南针值更新

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{
    float direction = newHeading.trueHeading;    
}

您可以在 imagepicker 的 didFinishPickingMediaWithInfo 委托方法中使用这三个值。

于 2012-07-21T06:37:59.167 回答