AR - 修复位置的注释

时间:2013-01-23 09:28:22

标签: iphone

我制作了一个增强现实应用程序,我在z轴上有一个箭头指向一个商店的位置(经度和纬度)现在我想在“天空”中进行注释直接指向在店铺坐标上。我在github上找到了一些项目,比如iPhone-AR-Toolkit,但我不明白这一点。 有没有一种简单的方法可以在位置上方添加这样的注释?

修改 在搜索了很多之后,我在de web中找到了一个pdf文档,其中包含了我想要的一些代码,但问题是,我不理解它并且它没有做正确的事情。 守则:

// Artificial Horizon - compensate for rotation along x-axis
// need to know the field of view of the camera to find horizon position inside of camera view
// about 53 degrees vertical and 37.5 degrees horizontal

// for directional Horizon - artificial horizon pegged to a specific cardinal direction (North)

// in (void)viewDidAppear
// Load the image to show in the overlay
UIImage *overlayGraphic = [UIImage imageNamed:@"Punkt.png"];
overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic];
overlayGraphicView.frame = CGRectMake(30, 100, 50, 50);
[self addSubview:overlayGraphicView];

[[UIAccelerometer sharedAccelerometer] setDelegate:self];

locationManager = [[CoreLocationMangager alloc] init];
[locationManager setDelegate:self];
[locationManager startUpdatingHeading];

- (void) updateUI {
    CGPoint overlayCenter = [overlayGraphicView center];
    overlayCenter.y = 240.0 - 537.8 * sin(vertAngle);
    overlayCenter.x = 160.0 - 497.8 * sin((magCompassHeadingInDeg) * (M_PI / 180.0));
    [overlayGraphicView setCenter:overlayCenter];
    overlayGraphicView.transform = CGAffineTransformMakeRotation(angle);
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    vertAngle = -atan2(acceleration.y, acceleration.z) - M_PI/2.0;
    vertAngleInDeg = vertAngle * 180.0f/M_PI;

    angle = -atan2(acceleration.y, acceleration.x) - M_PI/2.0;
    angleInDeg = angle * 180.0f / M_PI;

    [self updateUI];
}

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
    magCompassHeadingInDeg = [newHeading magneticHeading];
    [self updateUI];
}

图像视图被添加到相机覆盖图中,此图像应指向北方 - 但我的问题是它也指向南方。我该如何解决这个问题?并且任何人都可以从overlayCenter.y和.x解释我的thr值 - 我不理解它们。

1 个答案:

答案 0 :(得分:0)

您需要指定海拔高度以指定海平面z轴的高度。

Mixare SDK允许您指定并加载纬度,经度和海拔高度的 POI。

您可以从here

中引用它

我已经使用过这个sdk,效果很好,可以让你指定Altitude。

希望这会有所帮助:)