MapKit研究

计算从一个位置到另一个位置的时间和距离

位置1:漕河泾,经纬度:(31.0930043380, 121.3221189118)

位置2:上海体育馆,经纬度:(31.1814714883, 121.4383290964)

1、生成各自的MapItem

MKPlacemark *sourcePlacemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(31.0930043380, 121.3221189118) addressDictionary:nil];
MKMapItem *sourceItem = [[MKMapItem alloc] initWithPlacemark:sourcePlacemark];
sourceItem.name = @"漕河泾";

MKPlacemark *destinationPlacemark = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(31.1814714883, 121.4383290964) addressDictionary:nil];
MKMapItem *destinationItem = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark];
destinationItem.name = @"上海体育馆";

2、创建计算请求

MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
request.source = sourceItem;
request.destination = destinationItem;
request.transportType = MKDirectionsTransportTypeWalking;//步行模式

transportType有四种模式:

  • MKDirectionsTransportTypeWalking;//步行模式
  • MKDirectionsTransportTypeAutomobile//车行模式
  • MKDirectionsTransportTypeTransit//公交模式

MKDirectionsRequest可以设置离开时间和到达时间,处理请求时会考虑这些因素,选择最合适的路径进行计算。

3、使用MKDirections对请求进行处理

MKDirections *walkingDirections = [[MKDirections alloc] initWithRequest:request];
[walkingDirections calculateETAWithCompletionHandler:^(MKETAResponse * _Nullable response, NSError * _Nullable error) {
    
}];

MKETAResponse有以下属性可以供我们使用:

  • expectedTravelTime//持续的时长,单位:秒
  • distance//距离,单位:米
  • expectedDepartureDate//出发时间
  • expectedArrivalDate//预计到达时间

2、在官方地图应用中展示两点间最佳路径及导航

[MKMapItem openMapsWithItems:@[sourceItem, destinationItem] launchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeWalking}];

MKLaunchOptionsDirectionsModeKey有三种选择:

  • MKLaunchOptionsDirectionsModeWalking//步行路线
  • MKLaunchOptionsDirectionsModeDriving//车行路线
  • MKLaunchOptionsDirectionsModeTransit//公交路线
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【 申请密钥AndroidSDK:应用程序包名+数字签名 As查看数字签名:cmd-----cd .android...
    征程_Journey阅读 2,471评论 0 5
  • 简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 周边:找餐馆、找KTV、找电影院等等 导航:根据...
    JonesCxy阅读 1,537评论 1 1
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,409评论 6 13
  • avaScript中getBoundingClientRect()方法详解 getBoundingClientRe...
    codeSirCao阅读 513评论 0 0
  • 妈妈是世上最伟大的职业,妈妈是世上最辛苦的职业,妈妈是世上最艰难的职业,妈妈是世上最幸福的职业。妈妈的身份带着血和...
    秋棉阅读 383评论 0 0

友情链接更多精彩内容