美文网首页
swift3.0 高德地图驾车导航以及添加途径地

swift3.0 高德地图驾车导航以及添加途径地

作者: 雾雨落 | 来源:发表于2017-02-07 18:54 被阅读886次

最近项目有路线规划需求,以及可以添加1-3个途径地,先上个图.

有点粗糙,还没有仔细调整.

首先自己定义两个经纬度,一个是始发地经纬度和目的地经纬度.

let arr =starCoordinates?.components(separatedBy:",")

let endArr =endCoordinates?.components(separatedBy:",")

把分割好的经纬度转换成CLLocationCoordinate2D坐标

let locat =CLLocationCoordinate2D.init(latitude:Double(arr![0])!, longitude:Double(arr![1])!)

let endLocation =CLLocationCoordinate2D.init(latitude:Double(endArr![0])!, longitude:Double(endArr![1])!)

self.mapViewGD.setCenter(locat, animated:true)

mapViewGD.zoomLevel=12

let navi =AMapDrivingRouteSearchRequest.init()

navi.requireExtension=true

navi.strategy=2

设置起点

navi.origin=AMapGeoPoint.location(withLatitude:CGFloat(locat.latitude), longitude:CGFloat(locat.longitude))

设置终点

navi.destination=AMapGeoPoint.location(withLatitude:CGFloat(endLocation.latitude), longitude:CGFloat(endLocation.longitude))

//开始规划路径

search.aMapDrivingRouteSearch(navi)

starCoordinates和endCoordinates 是上个界面传入的经纬度

以上就是设置好了驾车导航的始发地和目的地

设置好了过后,有个驾车回调的协议方法,在里面解析出来起点到终点的所有路过经纬度线段,来画出来.

funconRouteSearchDone(_request:AMapRouteSearchBaseRequest!, response:AMapRouteSearchResponse!) 驾车回调路线方法

把解析好的所有中途路过的线段坐标放入到 MAPolyline里面,开始画线.实现画线协议方法

路线颜色大小之类的调整.高德API有说明.

以上就是 起点到终点的画线就完成了. 需要注意的是,在解析 起点到终点的 中途经过的坐标点的时候,你要遍历出来所有的路线,然后分割好,因为返回的 一段经纬度它是以 ; 来区分的,所以要分割一下,然后遍历你分割出来的 那个数组, 存入到 要放到 MAPolyline 里面的数组,代码都有写

接下来添加途经地. 可以添加一个 或者 二  三个 途经地

驾车导航类AMapDrivingRouteSearchRequest有提供添加途经地的接口

上代码

其他两个途经地都是类似 途经地坐标也是由上个界面传进来的 coordiateAry数组

添加大头针就很简单了. 实现大头针协议方法. 

我是根据大头针的title来区分 不同的图片的.

写的不好,大牛勿喷.

相关文章

网友评论

      本文标题:swift3.0 高德地图驾车导航以及添加途径地

      本文链接:https://www.haomeiwen.com/subject/edyndttx.html