0

注釈の座標をマップ座標系からマップ ビュー座標系に変換する必要があります。このために、convertPoint:FromView: メソッドを使用しています。

動作していますが、時々間違った値を返します。

これは私のコードです

- (CGFloat)relativeParentXPosition {
  NSLog(@"Point Origin: %@", NSStringFromCGPoint(self.parentAnnotationView.frame.origin));

  CGPoint parentOrigin = [self.mapView convertPoint:self.parentAnnotationView.frame.origin 
                                         fromView:self.parentAnnotationView.superview];

  NSLog(@"NEW PARENT Origin: %@", NSStringFromCGPoint(parentOrigin));

  return parentOrigin.x + self.offsetFromParent.x;
}

そして、これは出力です:

  • 働く

ポイント原点: {9.92118e+06, 1.2004e+07}

新しい親元: {39, 218}

  • 機能していません - 間違った値を返します

ポイント原点: {9.92138e+06, 1.20039e+07}

新しい親元: {9.92138e+06, 1.20037e+07}

誰かがこの問題を抱えていますか?なぜそれが起こっているのか理解できませんか?それはAppleのバグですか?ありがとう

4

1 に答える 1

0

悪いことに、私は間違った方法を使用していました。ビュー座標で注釈の座標を取得するには、convertCoordinate: toPointToView: メソッドを使用する必要があります。

CGPoint parentOrigin = [self.mapView convertCoordinate:self.parentAnnotationView.annotation.coordinate toPointToView:self.mapView];

私を正しい軌道に乗せてくれた@Jeffery Thomasに感謝します

于 2012-05-31T19:16:01.507 に答える