【问题标题】:How can I Resize the MKCircleView?如何调整 MKCircleView 的大小?
【发布时间】:2013-09-17 10:18:37
【问题描述】:

我正在尝试通过手指触摸来调整 MkCircle 的大小。我该如何开始呢?谁能推荐我?

感谢您的提前。

【问题讨论】:

    标签: iphone ios mkmapview mapkit mkoverlay


    【解决方案1】:

    我在地图视图上方绘制了具有相同半径的自定义圆,看起来像圆。

    寻找MKcircle的边缘点

    1. 将中心点CLLocationCoordinate2D转换为MKMapPoint

    MKMapPoint centerMapPoint = MKMapPointForCoordinate(centerCoordinate)

    1. 计算圆的MKMapSize并得到宽度

      double circleMapSize = mkCircle.boundingMapRect.size.width

    3.在圆的周长上创建一个点。

    MKMapPoint leftMostPoint = MKMapPointMake(centerMapPoint.x - circleMapSize/2.0, centerMapPoint.y)
    
    1. 现在从 leftMostPoint 获取 CLLocationCoordinate2D 点

      CLLocationCoordinate2D leftMostCoordinateOnCircle = MKCoordinateForMapPoint(leftMostPoint)

    所以现在我有了中心点和边缘点,然后将其转换为 ios 坐标的 (x,y)。

    CGPoint myPoint = [self.MapView convertCoordinate:originalCoordinate toPointToView:self.MapView];
    
    CGPoint edgePoint = [self.MapView convertCoordinate:originalCoordinate toPointToView:self.MapView];
    

    然后我使用毕达哥拉斯定理计算这两个点的黑白距离

    int distnce1=sqrt(powf(edgePoint.x- myPoint.x, 2) + powf(edgePoint.y-myPoint.y, 2));
    
                int finalWidth=2*distnce1;
    

    然后我将距离设置为自定义圆的宽度和高度

    pich Gesture 再次结束后,我尝试使用圆数学来获取自定义圆的边缘纬度和经度

    float x = circleView.frame.size.width/2 * sin(0)+circleView.center.x;
            float y = circleView.frame.size.width/2 * cos(0)+circleView.center.y;
    

    将x,y转换为坐标

    CLLocationCoordinate2D select_coordinate = [self.MapView convertPoint:point toCoordinateFromView:self.view];

    然后我找到距离 b/w 新坐标和 MKCircle 的中心点,然后将 MKCircle 的半径更改为距离。

    【讨论】:

      【解决方案2】:

      一种可能最简单的方法是自己在地图视图上方实际绘制圆圈,在响应触摸事件的单独透明视图上。然后,绘制完成后,隐藏该视图,但将实际的MKCircle 添加到具有相同图形设置的地图视图中。

      通常,在地图视图之外处理此类绘图/手势会更容易。

      【讨论】:

      • 感谢您的回复。是的,offCourse 我正在尝试这种方式,但是如何将 MKCircle 半径转换为自定义视图宽度。你能建议我吗。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多