iPhone AR Toolkit上的真实标题和磁性标题不能正确显示标签

时间:2011-10-14 14:29:48

标签: iphone augmented-reality compass-geolocation artoolkit iphone-ar-toolkit

我正在尝试使用iOS 4编写增强现实应用程序。为了测试这个应用程序,我有一个iPhone 3GS。

我将用一个例子解释我的问题:

我想在设备上看到山顶的名字。当我在设备屏幕上看到那座山时,我看到一个带有名字的标签。

我的想法是看到山上或前面的标签,但我看到了山右边的标签。

如果我有更多的位置(例如两座山和一座教堂),我也有同样的问题。 我总是看到右边的标签。

我正在使用iPhone AR Toolkit。

我的iPhone指南针有问题吗?你知道为什么我有这个问题吗?

调用此方法开始收听GPS:

- (void)startListening
{   
    // start our heading readings and our accelerometer readings.
    if (![self locationManager]) {
        CLLocationManager *newLocationManager = [[CLLocationManager alloc] init];
        [self setLocationManager: newLocationManager];
        [newLocationManager release];
        [[self locationManager] setHeadingFilter: 1.0];
        [[self locationManager] setDistanceFilter:2.0];
        [[self locationManager] setDesiredAccuracy: kCLLocationAccuracyNearestTenMeters];
        [[self locationManager] startUpdatingHeading];
        [[self locationManager] startUpdatingLocation];
        [[self locationManager] setDelegate: self];
    }

    if (![self accelerometerManager])
    {
        [self setAccelerometerManager: [UIAccelerometer sharedAccelerometer]];
        [[self accelerometerManager] setUpdateInterval: 0.75];
        [[self accelerometerManager] setDelegate: self];
    }

    if (![self centerCoordinate]) 
        [self setCenterCoordinate:[ARCoordinate coordinateWithRadialDistance:1.0 inclination:0 azimuth:0]];
}

您可以找到完整的源代码here

更新

我还修改了以下内容以使用真正的标题,但我遇到了同样的问题:

- (void)locationManager:(CLLocationManager *)manager
       didUpdateHeading:(CLHeading *)newHeading
{
    //latestHeading = degreesToRadian(newHeading.magneticHeading);
    latestHeading = degreesToRadian(newHeading.trueHeading);

    if (prevHeading == -1)  
        prevHeading = newHeading.magneticHeading;

    [self updateCenterCoordinate];
}

0 个答案:

没有答案