0

ユーザーが移動している方向に車/自転車を表示したいので、コース プロパティを使用しましたが、その値は常に -1 です。以下は、特定の場所の NSLog 値です。

2013-09-09 11:05:09.930 MapApp[143:907] <+23.05910024,+72.53762685> +/- 65.00m (速度 -1.00 mps / コース -1.00) @ 09/09/13 11:05:00 AMインド標準時

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *AnnotationViewID = @"annotationViewID";

    annotationView = (MKAnnotationView *)[map dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];

    if (annotationView == nil)
    {
        annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID] autorelease];
    }
    annotationView.image = [UIImage imageNamed:@"Bike.png"];


    NSLog(@"%@",currentLocation);


    annotationView.transform = CGAffineTransformMakeRotation(45);

    return annotationView;
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    if (newLocation.horizontalAccuracy < 0)
        return;
    if  (!newLocation)
        return;


    currentLocation = newLocation;
    previousLocation = oldLocation;
    if(currentLocation != nil)
    {
        if (myAnnotation)
        {
            [self.myMapView removeAnnotation:myAnnotation];
        }
        CLLocationCoordinate2D location = CLLocationCoordinate2DMake(currentLocation.coordinate.latitude, currentLocation.coordinate.longitude);
        myAnnotation = [[MyAnnotation alloc] initWithCoordinates:location title:@"Current Location" subTitle:nil];
        [self.myMapView addAnnotation:myAnnotation];
    }
}
4

1 に答える 1

0

こちらのドキュメントを参照してください。

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/GettingHeadings/GettingHeadings.html#//apple_ref/doc/uid/TP40009497-CH5-SW1

デバイスの方向またはコースを取得することは簡単ではありませんが、私が考えることができる -1 である可能性が最も高い理由は、GPS または磁力計を含むようにアプリの必要なデバイス機能を設定していないことです。デバイスは、電力を節約するためにどちらも計算しないことを決定できます。これが厳密な要件として実際に必要かどうかを検討する価値があります。

于 2013-09-09T06:46:14.740 に答える