美文网首页
绘制导航路线

绘制导航路线

作者: 翻这个墙 | 来源:发表于2017-11-23 10:36 被阅读32次

绘制导航路线

1. 理论支持

  1. 路线也是一个覆盖层
  2. 在地图上操作覆盖层,其实操作的是覆盖层的数据模型
    1. 添加覆盖层:在地图上添加覆盖层数据模型
    2. 删除覆盖层:在地图上移除覆盖层数据模型

2. 添加导航路线到地图

  1. 获取几何路线的数据模型 (id <MKOverlay>)overlay

  2. 地图添加覆盖层(几何路线也是一个覆盖层), 直接添加覆盖层数据模型

    [self.mapView addOverlay:overlay];
    
  3. 设置地图代理, 代理遵循协议 MKMapViewDelegate

  4. 实现地图添加覆盖层数据模型时, 回调的代理方法; 通过此方法, 返回对应的渲染图层

    - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
        {
            // 创建折线渲染对象
            if ([overlay isKindOfClass:[MKPolyline class]])
            {
                MKPolylineRenderer *lineRenderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
                // 设置线宽
                lineRenderer.lineWidth = 6;
                // 设置线颜色
                lineRenderer.strokeColor = [UIColor redColor];
                return lineRenderer;
            }
        }
    

3. 添加圆形覆盖层到地图

  1. 创建圆形区域覆盖层的数据模型

    MKCircle *circle = [MKCircle circleWithCenterCoordinate:self.mapView.centerCoordinate radius:1000000];
    
  2. 添加覆盖层数据模型

    [self.mapView addOverlay:circle];
    
  3. 实现代理方法

    - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay
        {
        // 创建圆形区域渲染对象
        if ([overlay isKindOfClass:[MKCircle class]])
        {
            MKCircleRenderer *circleRender = [[MKCircleRenderer alloc] initWithOverlay:overlay];
            circleRender.fillColor = [UIColor cyanColor];
            circleRender.alpha = 0.6;
            return circleRender;
        }
            return nil;
    }
    


### 4. 测试环境

        1. 地图加载需要联网
        2. XCode版本不限
        3. iOS系统版本不限

### 5. 常见问题总结

        1. 东西太多, 记不住?
            只需要记得一个思想, 按照MVC的原则, 我们操作覆盖层, 就是操作覆盖层数据模型; 然后地图, 会调用其对应的代理方法, 获取对应的覆盖层渲染层;
            类记不住没关系, 主要记住大致思路就可以.

----

相关文章

  • 绘制导航路线

    绘制导航路线 1. 理论支持 路线也是一个覆盖层 在地图上操作覆盖层,其实操作的是覆盖层的数据模型1. 添加覆盖层...

  • iOS 绘制导航路线

    一、简介 路线也是一个覆盖层 理论指导:在地图上操作覆盖层,其实操作的是覆盖层的数据模型 添加覆盖层:在地图上添加...

  • 地图和定位(五)

    一、导航 导航的三种方式: 1、使用系统APP导航 2、发送网络请求给苹果服务器获取导航路线 2.1、获取导航路线...

  • 在SwiftUI中使用地图以及生成导航路线

    在学习SwiftUI的过程中涉及到需要使用地图,并且在地图上绘制两点之间的导航路线。发现使用SwiftUI直接自带...

  • IOS的一些导航问题

    1.获取导航路线信息

  • 获取导航路线信息

    获取导航路线信息 1. 实现须知 获取导航路线, 需要向苹果服务器发送网络请求 记住关键对象MKDirection...

  • MKMapView绘制路线

  • 导航

    公交下来循着导航的提示 前行 往前 往后 往左 向右 都是 你已偏离路线 请重新规划路线 我 重新搭车 循着导航...

  • 我们总要学会转弯

    你紧握着手中的导航,百无聊赖的沿着导航路线走着 视线不敢离开导航路线图,生怕会走错 似乎你越怕什么,就会来什么 果...

  • 我们总要学会转弯

    你紧握着手中的导航,百无聊赖的沿着导航路线走着 视线不敢离开导航路线图,生怕会走错 似乎你越怕什么,就会来什么 果...

网友评论

      本文标题:绘制导航路线

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