自带导航
// 使用系统自带的
NSString *destination = 地址;
if ((destination.length ==0)) return;
// 2.地理编码
CLGeocoder *geocoder = [[CLGeocoderalloc] init];
[geocoder geocodeAddressString:destinationcompletionHandler:^(NSArray *placemarks,NSError *error) {
if( placemarks.count ==0 || error) return ;
// 2.1 拿到 CLPlaceMark 对象
CLPlacemark *clpm = [placemarksfirstObject];
// 2.2 创建 MKPlacemark
MKPlacemark *mkpm = [[MKPlacemarkalloc] initWithPlacemark:clpm];
// 2.3 创建 MKMapItem 获取到目的地信息
MKMapItem *destionationItem = [[MKMapItemalloc] initWithPlacemark:mkpm];
// 2.4 获取起点信息
MKMapItem *sourceItem = [MKMapItemmapItemForCurrentLocation];
// 2.5 开始导航
[selfstartNavitionWithDestionationItem:destionationItemsourceItem:sourceItem];
导航方法:
/**
* 开始导航
*
* @param destionationItem 目的地
* @param sourceItem 起点
*/
- (void)startNavitionWithDestionationItem:(MKMapItem *)destionationItem sourceItem:(MKMapItem *) sourceItem
{
NSArray *items =@[sourceItem,destionationItem];
NSDictionary *options =@{
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,// 方式
MKLaunchOptionsShowsTrafficKey :@YES, //开启路况
MKLaunchOptionsMapTypeKey :@(MKMapTypeStandard) //地图模式
};
// 开始导航
[MKMapItemopenMapsWithItems:items launchOptions:options];
}
使用其他方式(调起其他app转载):
// 判断地图是不是存在
if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://map/"]]){
- }
- if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"iosamap://"]]){
- }
- // 进行导航
- if ([@"使用百度地图导航" isEqualToString:title])
- {
- NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:我的位置&destination=latlng:%f,%f|name:终点&mode=driving",currentLat, currentLon,_shopLat,_shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;
- [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];
- }
- else if ([@"使用高德地图导航" isEqualToString:title])
- {
- NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&poiname=%@&lat=%f&lon=%f&dev=1&style=2",@"app name", yourscheme, @"终点", _shopLat, _shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];
- }
附录:实用高德地图官方的api:http://lbs.amap.com/api/uri-api/ios-uri-explain/