美文网首页
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