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 回答