利用系统自带App导航
来源:互联网 发布:linux 图形安装 kvm 编辑:程序博客网 时间:2024/05/01 03:37
- (void)startNavigation{
// 1.获取用户输入的起点和终点
NSString *startStr = self.startField.text;
NSString *endStr = self.endField.text;
if (startStr == nil || startStr.length == 0 ||
endStr == nil || endStr.length == 0) {
NSLog(@”请输入起点或者终点”);
return;
}
// 2.利用GEO对象进行地理编码获取到地标对象(CLPlacemark )
// 2.1获取开始位置的地标
[self.geocoder geocodeAddressString:startStr completionHandler:^(NSArray *placemarks, NSError *error){
if (placemarks.count == 0) return;
// 开始位置的地标
CLPlacemark *startCLPlacemark = [placemarks firstObject];
// 3. 获取结束位置的地标
[self.geocoder geocodeAddressString:endStr completionHandler:^(NSArray *placemarks, NSError *error){
if (placemarks.count == 0) return;
// 结束位置的地标
CLPlacemark *endCLPlacemark = [placemarks firstObject];
// 开始导航
[self startNavigationWithstartCLPlacemark:startCLPlacemark endCLPlacemark:endCLPlacemark];
}];
}];
}
/**
* 开始导航
*
* @param startCLPlacemark 起点的地标
* @param endCLPlacemark 终点的地标
*/
- (void)startNavigationWithstartCLPlacemark:(CLPlacemark )startCLPlacemark endCLPlacemark:(CLPlacemark )endCLPlacemark{
// 0.创建起点和终点
// 0.1创建起点
MKPlacemark *startPlacemark = [[MKPlacemark alloc] initWithPlacemark:startCLPlacemark];
MKMapItem *startItem = [[MKMapItem alloc] initWithPlacemark:startPlacemark];;
// 0.2创建终点
MKPlacemark *endPlacemark = [[MKPlacemark alloc] initWithPlacemark:endCLPlacemark];
MKMapItem *endItem = [[MKMapItem alloc] initWithPlacemark:endPlacemark];
// 1. 设置起点和终点数组
NSArray *items = @[startItem, endItem];
// 2.设置启动附加参数
NSMutableDictionary *md = [NSMutableDictionary dictionary];
// 导航模式(驾车/走路)
md[MKLaunchOptionsDirectionsModeKey] = MKLaunchOptionsDirectionsModeDriving;
// 地图显示模式
// md[MKLaunchOptionsMapTypeKey] = @(MKMapTypeHybrid);
// 只要调用MKMapItem的open方法, 就可以打开系统自带的地图APP进行导航
// Items: 告诉系统地图APP要从哪到哪
// launchOptions: 启动系统自带地图APP的附加参数(导航的模式/是否需要先交通状况/地图的模式/..)
[MKMapItem openMapsWithItems:items launchOptions:md];
}
//pragma mark - 懒加载
- (CLGeocoder *)geocoder{
if (!_geocoder) {
self.geocoder = [[CLGeocoder alloc] init];
}
return _geocoder;
}
- 利用系统自带App导航
- (八十一)利用系统自带App来实现导航
- iOS APP利用系统自带库监听网络状态
- iOS调用系统自带地图导航
- 系统自带导航栏的注意事项
- 去掉webview自带导航栏 使用系统导航栏
- Android系统自带App分析(短信App)
- 删除Android系统的所有自带的APP
- 使用系统自带ScreenLock来保护你的App
- Android如何调试更新系统自带的app
- android系统添加内置APP(自带.so)
- 关于自带地图导航
- iOS自带地图导航
- ViewPager的自带导航
- 利用系统自带命令杀毒——手动杀毒
- 利用系统自带命令搞定手工杀毒
- 利用Windows系统自带命令手工搞定病毒
- 利用Windows自带磁盘清理工具给系统“瘦身”
- 使用Redis的Java客户端Jedis
- Keymob发力程序化交易 拥抱移动广告未来
- Java编程思想读书笔记(一)
- 畅想“互联网 + ”,畅想未来
- Python文件夹与文件的操作
- 利用系统自带App导航
- java.lang.NoClassDefFoundError
- [Android实例] 两边都能滑动的数据间隔选择SpaceBar
- failed to load sql modules into the database cluster
- mycat安装需要的常用命令
- Netty实现HTTP服务器端(处理POST和GET请求) 发表于2年前(2014-05-27 16:25) 阅读(7385) | 评论(0) 11人收藏此文章, 我要收藏 赞2 1月16日厦门
- Keymob移动DSP:无移动,不营销
- Hibernate的merge和saveOrUpdate对比
- JAVA安装串口包