0

私はiphoneアプリケーションを開発しています。そのアプリでは、MKMapViewのさまざまな場所にあるクライアントの駐車場を表示しています。次に、MKMapViewでコンパスモードを使用して、特定の方向(SE、SW、NE、NW)のクライアントの駐車場所を表示する必要があります。そのために、以下のコードを実行します。

-(void)updateHeading:(CLHeading *) newHeading  
{ 

  NSLog(@"New magnetic heading: %f", newHeading.magneticHeading);
  NSLog(@"New true heading: %f", newHeading.trueHeading);

  double rotation = newHeading.magneticHeading * 3.14159/-180;

  [mapView setTransform:CGAffineTransformMakeRotation(-rotation)];

  [[mapView annotations] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
 {
    MKAnnotationView * view = [mapView viewForAnnotation:obj];

    [view setTransform:CGAffineTransformMakeRotation(rotation)];

 }];  
}

MKMapViewではすべてが正常に機能しますが、MKMapViewは逆の順序で表示されます。デバイスが回転を開始すると、ios5とios6でもこの問題が発生します。注:このアプリをアメリカでテストすると、地図が正しく表示されますが、自分の場所(インド)でアプリをテストすると、地図が逆になります。

MKMapViewは、デバイスが回転を開始している間、逆マップを表示します。 `

助けてくれてありがとう。

4

1 に答える 1

1

マップは、回転中にユーザーの中心に配置されるように意図されていますか? その場合は、MKMapView の userTrackingMode を MKUserTrackingModeFollowWithHeading に設定できます。

そうでない場合は、magneticHeading、trueHeading、および回転で、物事がうまくいったときとうまくいかなかったときに何が見えるかを教えてください。

于 2012-10-13T23:33:59.647 に答える