【发布时间】:2016-10-14 14:01:40
【问题描述】:
我正在尝试在 MKMapView 上绘制一个半球体,知道中心坐标、开始和结束角度以及以海里为单位的半径。
使用这个线程(How to draw UIBezierPath overlay on MKMapView?),我将 MKOverlayPathRenderer 子类化以绘制弧线:
import UIKit
import MapKit
class IGAAcarsDrawArc: MKOverlayPathRenderer
{
let PI = 3.14159265
let radius : CGFloat = 10.0
var startAngle: CGFloat = 0
var endAngle: CGFloat = 3.14159
var latitude = 25.96728611
var longitude = -80.453019440000006
override func createPath()
{
let line = MKPolyline()
let arcWidth: CGFloat = 5
let path = UIBezierPath(arcCenter: CGPointMake(CGFloat(latitude), CGFloat(longitude)),
radius: self.radius,
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)
path.lineWidth = arcWidth
path.stroke()
}
}
现在,我不清楚如何使用它来创建 MKPolyline 并在 mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) 中实现。
这个帖子 (How to draw arc/curve line with MKOverlayView on MKMapView) 也没有对这个问题提供太多的解释。
有人可以帮忙在 MKMapView 中画一条弧线吗?
编辑:
这不起作用:
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer
{
if overlay is IGAAcarsDrawArc
{
let arcLine = IGAAcarsDrawArc(overlay: overlay)
arcLine.lineWidth = 8
arcLine.strokeColor = UIColor.magentaColor()
}
return MKPolylineRenderer()
}
非常感谢!
【问题讨论】:
-
我找到了stackoverflow.com/questions/12062902/… 可能会给你一些提示
-
我找到了这个帖子:stackoverflow.com/questions/12062902/… 也许会给你一些提示