Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MKMapViw方向说明

MKMapViw方向说明
EN

Stack Overflow用户
提问于 2017-10-30 19:43:37
回答 2查看 673关注 0票数 2

我在当前用户位置和地图上的某个点之间创建了一条路径。我可以从MKRoute那里得到方向的指示。问题是:我如何才能检测到在下一个十字路口需要左转或右转?它应该看起来像这样:“在下一个十字路口左转”。我很高兴在Swift或Objective C中看到解决方案。

EN

回答 2

Stack Overflow用户

发布于 2017-10-31 03:52:45

你可以用下面的代码做到这一点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MKDirections *directions = [[MKDirections alloc] initWithRequest:request];
[directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
    if (!error) {
        for (MKRoute *route in [response routes]) {
            [myMapView addOverlay:[route polyline] level:MKOverlayLevelAboveRoads]; // Draws the route above roads, but below labels.
            // You can also get turn-by-turn steps, distance, advisory notices, ETA, etc by accessing various route properties.
        }
    }
}];

通过不同的MKRoute属性来获取您想要的内容。

票数 0
EN

Stack Overflow用户

发布于 2017-10-31 07:13:41

您将看到您的自定义注释,其中显示了mapView上的源和目标坐标。

现在到了两个注解之间的方向。

点击此链接:- https://developer.apple.com/documentation/mapkit/mkroute

MKRoute对象定义管线的几何图形-即,它包含与特定地图坐标关联的线段。路线对象还可以包括其他信息,例如路线名称、路线距离和预期行进时间。例如,一个步骤可能涉及沿着一条道路行驶,直到需要转弯。

在您的viewController.m类中添加以下代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)viewDidAppear:(BOOL)animated
{
   MKPlacemark *source = [[MKPlacemark alloc]initWithCoordinate:sourceCoordinate.coordinate addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ];
   MKMapItem *sourceMapItem = [[MKMapItem alloc]initWithPlacemark:source];
   MKPlacemark *destination = [[MKPlacemark alloc]initWithCoordinate:destinationCoordinate.coordinate addressDictionary:[NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil] ];
   MKMapItem *distMapItem = [[MKMapItem alloc]initWithPlacemark:destination];
   MKDirectionsRequest *request = [[MKDirectionsRequest alloc]init];
   [request setSource:sourceMapItem];
   [request setDestination:distMapItem];
   [request setTransportType:MKDirectionsTransportTypeAutomobile];
   MKDirections *direction = [[MKDirections alloc]initWithRequest:request];
   [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) {
   if (!error) {
       for (MKRoute *route in [response routes]) {
            [_mMapView addOverlay:[route polyline] level:MKOverlayLevelAboveRoads];
       }
   }
 }];
}
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id)overlay
{
    if ([overlay isKindOfClass:[MKPolyline class]]) {
        MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
        [renderer setStrokeColor:[UIColor redColor]];
        [renderer setLineWidth:3.0];
         return renderer;
     }
   return nil;
}

对于Swift

更新

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
override func viewDidLoad() {
    super.viewDidLoad()

    let request = MKDirectionsRequest()
    request.source = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude:"", longitude: ""), addressDictionary: nil))
    request.destination = MKMapItem(placemark: MKPlacemark(coordinate: CLLocationCoordinate2D(latitude: "", longitude: ""), addressDictionary: nil))
    request.requestsAlternateRoutes = true
    request.transportType = .automobile

    let directions = MKDirections(request: request)

    directions.calculate { [unowned self] response, error in
        guard let unwrappedResponse = response else { return }

        for route in unwrappedResponse.routes {
            self.mapView.add(route.polyline)
            self.mapView.setVisibleMapRect(route.polyline.boundingMapRect, animated: true)
        }
    }
}

func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
    let renderer = MKPolylineRenderer(polyline: overlay as! MKPolyline)
    renderer.strokeColor = UIColor.blue
    return renderer
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47023052

复制
相关文章
机器人方向毕业设计的相关补充说明
之前写过多篇有关毕业设计课题的博文,第一年毕业设计使用RDS和ROS作为平台工具,第二年主要为ROS,目前是第三年依然以ROS为主,毕业设计的博文可以参考链接:http://blog.csdn.net/zhangrelay/article/details/53640060,里面包括流程、各部分的注意事项、撰写要点、PPT以及一些常见问题。虽然机器人技术突飞猛进,但是每一届学生都是新的,基础年年重新学一遍,错误也通常有着惊人的相似。
zhangrelay
2019/01/23
6830
【方向】开启您的数据科学方向
如果您对数据科学感兴趣,但不知道从何处开始,这边文章适合您。 本文对数据科学众多方向进行简要描述,您不需要全部学习,只需要选择一个,从第一步开始执行,您将会学到更多东西。您不要犹豫应该选择那一个,这里
陆勤_数据人网
2018/02/28
9730
【方向】开启您的数据科学方向
现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版)
版权声明:本文为zhangrelay原创文章,有错请轻拍,转载请注明,谢谢... https://blog.csdn.net/ZhangRelay/article/details/89325679
zhangrelay
2019/04/25
9230
现代控制理论(机器人方向)习题与实践补充资料和复习说明(2019版)
方向余弦
设 其中 、 、 是一组标准正交基的单位基底向量, 、 、 分别为 在 、 、 上的分量,则 对于 、 、 的方向余弦 、 、 分别为
hotarugali
2022/03/17
1.7K0
旋转方向
单个返回值形式: retval= ((226.83999633789062, 62.23775100708008), (103.79611206054688, 110.34321594238281), 80.08370208740234) 三个返回值形式: (x,y)=( 226.83999633789062 62.23775100708008 ) (MA, ma)=( 103.79611206054688 110.34321594238281 ) angle= 80.08370208740234
裴来凡
2022/05/28
1.3K0
旋转方向
计算机控制技术(机器人方向)开放实验说明(Cozmo智能机器人)
通过PBL项目学习法,深入理解人机交互接口,数字量,模拟量,相互转换,控制器设计等实现。
zhangrelay
2019/04/29
3880
计算机控制技术(机器人方向)开放实验说明(Cozmo智能机器人)
[强网杯2021-线上赛] Pwn方向writeup
堆有rwx权限,下标溢出写got函数为堆地址,在两个堆块上拼接shellcode调用read读入shellcode进行orw拿flag
赤道企鹅
2022/08/01
6400
[starCTF / *CTF 2021] Pwn方向writeup
白给题,触发malloc_consolidate就可以leak+overlapping了
赤道企鹅
2022/08/01
5340
说明
基于微服务项目,产生的的多项目仓库管理脚本。可直接保存 shell 脚本后酌情修改后试用
易墨
2022/12/21
3630
解析 WebMvcConfigurerAdapter类说明:方法说明
类说明: abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer 用于定制 springMvc 的一些配置,该抽象类继承了 WebMvcConfigurer 接口的所有方法,但是都是一些空实现,是 springMvc 为定制配置提供的入口。 方法说明 public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers
JavaEdge
2018/05/16
1.1K0
PC和移动端判断鼠标(手指)滑动方向(touch方向)
//移动端 $(".demo").on("touchstart", function(e) {     e.preventDefault();     startX = e.originalEvent.changedTouches[0].pageX,     startY = e.originalEvent.changedTouches[0].pageY;   });   $(".demo").on("touchmove", function(e) {     e.preventDefault();   
IT工作者
2022/02/24
1.6K0
Recommendation方向学习
目前推荐上研究的方向有这样几个方向: 1.Temporal Context-Aware Recommendation 2.Spatial Recommendation for Out-of-Town Users 3.Location-based and Real-time Recommendation 4.Efficiency of Online Recommendation
DuncanZhou
2018/09/04
6070
是否需要转方向 ?
这类问题没有标准的答案,每个人的理解也不一样,我写下的也只是我个人的想法,仅供大家参考。
五分钟学算法
2019/10/15
5820
图像垂直方向投影
算法:图像垂直方向投影是以x轴为轴投影,图像垂直方向投影(即计算目标图像在垂直方向的像素点个数,然后显示出来),进行图像投影的主要目标是要对其中的缺陷进行分割出来。投影是将场景投影到摄像机的像平面上,如透视投影、仿射投影、弱透视投影和类透视投影等。
裴来凡
2022/05/29
5090
图像垂直方向投影
【移动端网页布局】flex 弹性布局 ⑥ ( 设置主轴方向和是否自动换行 | flex-flow 样式说明 | 代码示例 )
flex-flow 样式 是 flex-direction 属性和 flex-wrap 属性的 复合写法 ;
韩曙亮
2023/05/09
5200
【移动端网页布局】flex 弹性布局 ⑥ ( 设置主轴方向和是否自动换行 | flex-flow 样式说明 | 代码示例 )
测试说明
测试仪表必须具有满足测试要求的显示速度、准确度,同时还应具有携带方便、耗电小、适应测试环境的特点。对所用的测试仪表,必须按国家现行标准的有关规定进行校验。
刘珍
2022/09/13
3630
测试说明
博客说明
如以上都有还有问题请参考 使用jekyll搭建个人博客 jekyll-theme-H2O_README
tea9
2022/07/16
8500
QListWidget 布局方向设定
// 假如 m_list 添加了很多子项 (一个子项由 一个图片和一段文字组成) // 如果设置为 m_second_list->setViewMode(QListView::IconMode); // 那么m_list 子项就会从左到右横向的排列 图片和文字是上下排列.
全栈程序员站长
2022/09/06
1.4K0
QListWidget 布局方向设定
IT软件的编程方向
IT软件的编程方向 - 进阶者系列 - 学习者系列文章 IT软件经过了这么些年的发展,已经形成了很多的软件公司和开发团队,而且当前编程语言也有很多种,让开发人员能够有很大的选择。现在国际上的开发阵营基本分为ASP.NET、JAVA和PHP三种,但是每种开发语言能够进行的开发问题是统一的,本文就从IT软件的编程方向出发,介绍下当前主流的开发方向。 一、网站; 现在的互联网,随着电子商务的发展和企业内部办公系统的应用,以及编程语言的三大阵营的发展,已经形成了很多具体应用的网站系统。但是,在企业内部,很多还是使用
L宝宝聊IT
2018/06/20
1.4K0
[ByteCTF 2021 Quals] Pwn方向几个题解
C++下的堆利用,对于有C++基础的人来说应该很快看出要点在于错误的使用了shared_ptr的裸指针,形成悬挂指针,进而UAF
赤道企鹅
2022/08/01
3200

相似问题

所有google方向说明的列表

11

以公制表示的Mapbox方向说明

22

从说明API结果启动带有特定方向覆盖的Android意图

12

使用一个带有说明API的请求获取多个方向

14

LDA / ROL / STA -说明说明

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文