, route.expectedTravelTime)
// 添加覆盖层数据模型,路线对应的几何线路模型(由很多点组成)
// 当我们添加一个覆盖层数据模型时, 系统绘自动查找对应的代理方法, 找到对应的覆盖层"视图"
self.mapView.add(route.polyline) // 添加折线
// 遍历每一种路线的每一个步骤(MKRouteStep对象)
for step in route.steps {
print(step.instructions) // 打印步骤说明
}
}
}
}
}
}
extension ViewController: MKMapViewDelegate {
// MARK: - ③ 添加导航路线到地图
// MARK: - 当添加一个覆盖层数据模型到地图上时, 地图会调用这个方法, 查找对应的覆盖层"视图"(渲染图层)
// 参数1(mapView):地图 参数2(overlay):覆盖层"数据模型" returns: 覆盖层视图
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
var resultRender = MKOverlayRenderer()
// 折线覆盖层
if overlay.isKind(of: MKPolyline.self) {
// 创建折线渲染对象 (不同的覆盖层数据模型, 对应不同的覆盖层视图来显示)
let render: MKPolylineRenderer = MKPolylineRenderer(overlay: overlay)
render.lineWidth = 6 // 设置线宽
render.strokeColor = UIColor.red // 设置颜色
resultRender = render
}
// 圆形覆盖层
if overlay.isKind(of: MKCircle.self) {
let circleRender: MKCircleRenderer = MKCircleRenderer(overlay: overlay)
circleRender.fillColor = UIColor.black // 设置填充颜色
circleRender.alpha = 0.5 // 设置透明色
resultRender = circleRender
}
return resultRender
}
}
运行效果:
方案3:第三方SDK(百度地图)集成实现导航
疯狂整理中。。。。。!!!!!!
本文源码 Demo 详见 Github https://github.com/shorfng/iOS_7.0_Device-Tools
作者:蓝田(Loto)
【作品发布平台】
① 简书 ② 博客园 ③ Gitbook(如果觉得文章太长,请阅读此平台发布的文章)
【代码托管平台】
Github
【如有疑问,请通过以下方式交流】
① 评论区回复 ② 发送邮件 至 shorfng@126.c |