iphone - 如何调整 MKCircleView 的大小?

标签 iphone ios mkmapview mapkit mkoverlay

我正在尝试通过手指触摸调整 MkCircle 的大小。我该如何开始呢?任何人都可以建议我吗?

感谢提前。

最佳答案

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

寻找MKcirlce的边缘点

  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 的中心点,然后将 MKCirlce 的半径更改为等于距离。

关于iphone - 如何调整 MKCircleView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847190/

相关文章:

ios - 防止 NSUserDefaults 来自 iCloud 备份

iphone - 无法理解 MKMapPoint(s)

ios - 如何在 UITextView 上添加省略号?

iphone - NSFetchedResultsController 具有基于依赖属性的谓词

javascript - 如何在uiwebview中使用显示nsstring内容?

ios - 如何从 Swift 调用 NSOperations 子类的 Obj C 自定义 Init 方法

ios - MKMapSnapshotter 有效,但我无法共享 UIImage

iphone - 无法使用 UILongTouchGestureRecognizer 从 MKMapView 获取坐标

iphone - 通用应用程序设计 1 个表格 View ,根据 iPad 或 iPhone 打开不同的单元格点击 View

iphone - 离线正向地理编码