我想创建一个应用程序,显示屏幕上的位置。
我将在相机图像上显示一个文本,指示用户是否正在查看它。例如,如果用户正在寻找位于其位置北部的城镇,那么当他向北看时,它会看到一个文字。
我还想显示用户和位置之间的距离。
了解用户位置,我必须显示用户正在寻找其他位置。例如,我在纽约,我想知道自由女神像在哪里。我必须知道它的经度和经度,以便在用户查看时在屏幕上显示。
有没有SDK可以做到这一点?
您需要更多详情吗?对不起,我说英语不太好。
答案 0 :(得分:3)
步骤应该是:
获取lat和long并将它们设置为两个标签,self.label1和self.label2
使用transparentColor background创建一个空视图。
使用addSubview:将标签添加到第2步中的视图。
将cameraOverlayView设置为在步骤2中创建的视图。
展示您的选择器。
在代码中:
在您的.h:CLLocationManager *locationManager
中定义并实施委托:<CLLocationManagerDelegate>
- (void)viewDidLoad {
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; //How often do you want to update your location, this sets every small change should fire an update.
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
}
然后执行:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSString *lat = [NSString stringWithFormat:@"%d", newLocation.coordinate.latitude];
self.label1.text = lat;
NSString *long = [NSString stringWithFormat:@"%d", newLocation.coordinate.longitude];
self.label2.text = long;
}
然后,无论您想在哪里展示带有坐标的相机:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
emptyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; //This frame will make it fullscreen...
emptyView.backgroundColor = [UIColor transparentColor];
[emptyView setAlpha:1.0]; //I think it is not necessary, but it wont hurt to add this line.
self.label1.frame = CGRectMake(100, 100, self.label1.frame.size.width, self.label1.frame.size.height); //Here you can specify the position in this case 100x 100y of your label1 preserving the width and height.
[emptyView addSubview:self.label1];
//Repeat for self.label2
self.picker.cameraOverlayView = emptyView; //Which by the way is not empty any more..
[emptyView release];
[self presentModalViewController:self.picker animated:YES];
[self.picker release];
希望它足够清楚,并且没有任何遗漏,因为我没有测试过这个。
答案 1 :(得分:0)
另一个解决方案是建立一个opnengl世界,将你的兴趣点放入你的OpenGL世界,将他们的lat / lon值转换为你的OpenGL坐标。
第一个更容易,我认为第二个选项更灵活。