我一直在进行大量研究,但一无所获。使用MapKit,我有一个显示当前位置的地图和一个计算航向/方位值(不一定是实际航向)的函数。如何在地图上绘制一条从当前位置开始并指向给定标题方向的线? (无论线路有多长,因为它没有有意义的终点)。我不是要求你为我编写代码,而是希望得到一些详细的指导。希望这也有助于其他人。
干杯
答案 0 :(得分:2)
您的坐标为polar,表示您有方向和长度。您只需要将它们转换为笛卡尔坐标,它可以为您提供水平偏移和垂直偏移。你用一点三角法做到了。
let origin = CGPoint(x: 10, y: 10)
let heading: CGFloat = CGFloat.pi
let length: CGFloat = 20
let endpoint = CGPoint(x: origin.x + cos(heading)*length,
y: origin.y + sin(heading)*length)
let path = UIBezierPath()
path.move(to: origin)
path.addLine(to: endpoint)
请注意,三角函数通常以弧度为单位(2 * PI =一转)。轴承通常为度(360度=一转)。然而,转换很简单:
func radians(forDegrees angle: CGFloat) -> CGFloat {
return CGFloat.pi * angle / 180.0
}