我无法为我的生活在继承MKOverlay
并在draw(_mapRect..
方法中尝试它时在两点之间画一条线。
我在做子类而不是折线的原因是我需要稍后添加一些额外的项目(图像等)。所以决定子类化。
然而,对于简单的概念证明,我可以拍摄图像,但不能使用任何线条。下面是一个基本的例子,我确信这是我不包括的内容。我已经验证在控制器中调用mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay)
后,该委托总是被命中。任何见解都会有所帮助。
override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext) {
var coordinate1 = CLLocationCoordinate2DMake(37.204082,-86.660156);
var coordinate2 = CLLocationCoordinate2DMake(37.762030,-100.019531);
var p1 = MKMapPointForCoordinate(coordinate1)
var p2 = MKMapPointForCoordinate(coordinate2)
context.saveGState()
let green = UIColor.green
context.setStrokeColor(UIColor.green.cgColor)
context.setLineWidth(800.0)
context.beginPath()
let point1 = self.point(for: p1)
let point2 = self.point(for: p2)
context.move(to: point1)
context.addLine(to: point2)
context.drawPath(using: .fillStroke)
context.restoreGState()
}