使用swift

时间:2018-01-10 18:42:53

标签: ios swift mapkit

我无法为我的生活在继承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()
}

0 个答案:

没有答案