如何从CGSize计算MKMapSize

时间:2018-03-14 09:14:15

标签: ios mapkit coordinate-transformation

我正在使用MapKit,我跟随MKAnnotationView,其中绘制了一个CGSize(width: 26, height: 26)的红色圆圈。

enter image description here

如何从MKMapSizeCGSize计算尺寸MKAnnotationView

来源

我得到了MKMapView多个MKOverlay s,当用户点按任何叠加层以便将mapView s区域更改为该叠加边界时,这样可以正常工作,但我需要停止如果点击的坐标位于MKAnnotationView(红色圆圈)的坐标区域内,则更改区域。

我在这里寻找其他答案,但没有运气并尝试过:

let zoomLevel = log2(360 * ((Double(self.frame.size.width) / 256) / mapView.region.span.longitudeDelta)) - 1
MKMapSize(width: 26 * zoomLevel, height: 26 * zoomLevel)

1 个答案:

答案 0 :(得分:0)

以下MKMapView方法可以将CGSize转换为MKCoordinateRegion

mapView.convert(rect: CGRect, toRegionFrom: UIView?)

<强>用法:

let customAnnotationSize = CGSize(width: 26, height: 26)
let region = mapView.convert(CGRect(origin: .zero, size: customAnnotationSize), toRegionFrom: mapView)

拥有region是最重要的,最后我会检查注释的坐标是否在region范围内。